From 01b9036e38d6b2654d488041abb18a1daf6b52ca Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Wed, 27 Aug 2025 22:02:20 +0200 Subject: [PATCH] Berry animation allow reference to other instances and check parameters (#23843) --- .../compiled/computed_values_demo.be | 10 +- .../anim_examples/compiled/cylon_red_eye.be | 2 +- .../anim_examples/compiled/cylon_red_green.be | 63 + .../compiled/user_functions_demo.be | 10 +- .../anim_examples/cylon_red_green.anim | 23 + .../berry_animation/docs/DSL_REFERENCE.md | 19 +- .../berry_animation/docs/DSL_TRANSPILATION.md | 20 +- .../berry_animation/src/dsl/transpiler.be | 207 +- .../src/providers/closure_value_provider.be | 16 +- .../src/providers/value_provider.be | 2 - .../src/solidify/solidified_animation.h | 63 +- .../src/solidify/solidified_animation_dsl.h | 12754 ++++++++-------- .../src/tests/dsl_core_processing_test.be | 8 +- .../tests/dsl_parameter_validation_test.be | 150 +- .../src/tests/dsl_transpiler_test.be | 18 +- .../src/tests/parameter_validation_test.be | 259 + .../tests/test_math_method_transpilation.be | 6 +- .../src/tests/user_functions_test.be | 2 +- 18 files changed, 7364 insertions(+), 6268 deletions(-) create mode 100644 lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_green.be create mode 100644 lib/libesp32/berry_animation/anim_examples/cylon_red_green.anim diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be index 3104cfde3..6f274acbb 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be @@ -16,20 +16,20 @@ var strip_len_ = animation.strip_length(engine) # Create animation with computed values var stream1_ = animation.comet_animation(engine) stream1_.color = 0xFFFF0000 -stream1_.tail_length = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.abs(self.resolve(strip_len_, param_name, time_ms) / 4)) end) # computed value +stream1_.tail_length = animation.create_closure_value(engine, def (self) return self.abs(self.resolve(strip_len_) / 4) end) # computed value stream1_.speed = 1.5 stream1_.priority = 10 # More complex computed values var base_speed_ = 2.0 var stream2_ = animation.comet_animation(engine) stream2_.color = 0xFF0000FF -stream2_.tail_length = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.resolve(strip_len_, param_name, time_ms) / 8 + (2 * self.resolve(strip_len_, param_name, time_ms)) - 10) end) # computed with addition -stream2_.speed = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.resolve(base_speed_, param_name, time_ms) * 1.5) end) # computed with multiplication +stream2_.tail_length = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) / 8 + (2 * self.resolve(strip_len_)) - 10 end) # computed with addition +stream2_.speed = animation.create_closure_value(engine, def (self) return self.resolve(base_speed_) * 1.5 end) # computed with multiplication stream2_.direction = (-1) stream2_.priority = 5 # Property assignment with computed values -stream1_.tail_length = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.resolve(strip_len_, param_name, time_ms) / 5) end) -stream2_.opacity = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.resolve(strip_len_, param_name, time_ms) * 4) end) +stream1_.tail_length = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) / 5 end) +stream2_.opacity = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) * 4 end) # Run both animations engine.add_animation(stream1_) engine.add_animation(stream2_) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be index e2bb4e0d2..ecc8c5be1 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be @@ -18,7 +18,7 @@ red_eye_.color = 0xFFFF0000 red_eye_.pos = (def (engine) var provider = animation.cosine_osc(engine) provider.min_value = 0 - provider.max_value = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.resolve(strip_len_, param_name, time_ms) - 2) end) + provider.max_value = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) - 2 end) provider.duration = 5000 return provider end)(engine) diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_green.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_green.be new file mode 100644 index 000000000..b964d4684 --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_green.be @@ -0,0 +1,63 @@ +# Generated Berry code from Animation DSL +# Source: cylon_red_green.anim +# +# This file was automatically generated by compile_all_examples.sh +# Do not edit manually - changes will be overwritten + +import animation + +# Cylon Red Eye +# Automatically adapts to the length of the strip +# Auto-generated strip initialization (using Tasmota configuration) +var engine = animation.init_strip() + +var strip_len_ = animation.strip_length(engine) +var red_eye_ = animation.beacon_animation(engine) +red_eye_.color = 0xFFFF0000 +red_eye_.pos = (def (engine) + var provider = animation.cosine_osc(engine) + provider.min_value = 0 + provider.max_value = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) - 2 end) + provider.duration = 5000 + return provider +end)(engine) +red_eye_.beacon_size = 3 # small 3 pixels eye +red_eye_.slew_size = 2 # with 2 pixel shading around +red_eye_.priority = 10 +var green_eye_ = animation.beacon_animation(engine) +green_eye_.color = 0xFF008000 +green_eye_.pos = animation.create_closure_value(engine, def (self) return self.resolve(strip_len_) - self.resolve(red_eye_, 'pos') end) +green_eye_.beacon_size = 3 # small 3 pixels eye +green_eye_.slew_size = 2 # with 2 pixel shading around +green_eye_.priority = 15 # behind red eye +engine.add_animation(red_eye_) +engine.add_animation(green_eye_) +engine.start() + + +#- Original DSL source: +# Cylon Red Eye +# Automatically adapts to the length of the strip + +set strip_len = strip_length() + +animation red_eye = beacon_animation( + color = red + pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s) + beacon_size = 3 # small 3 pixels eye + slew_size = 2 # with 2 pixel shading around + priority = 10 +) + +animation green_eye = beacon_animation( + color = green + pos = strip_len - red_eye.pos + beacon_size = 3 # small 3 pixels eye + slew_size = 2 # with 2 pixel shading around + priority = 15 # behind red eye +) + +run red_eye +run green_eye + +-# diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be index 24f876f7c..cf6ab6de0 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/user_functions_demo.be @@ -18,31 +18,31 @@ var random_base_ = animation.solid(engine) random_base_.color = 0xFF0000FF random_base_.priority = 10 # Use user function in property assignment -random_base_.opacity = animation.create_closure_value(engine, def (self, param_name, time_ms) return (animation.get_user_function('rand_demo')(self.engine)) end) +random_base_.opacity = animation.create_closure_value(engine, def (self) return animation.get_user_function('rand_demo')(self.engine) end) # Example 2: User function with mathematical operations var random_bounded_ = animation.solid(engine) random_bounded_.color = 0xFFFFA500 random_bounded_.priority = 8 # User function with bounds using math functions -random_bounded_.opacity = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.max(50, self.min(255, animation.get_user_function('rand_demo')(self.engine) + 100))) end) +random_bounded_.opacity = animation.create_closure_value(engine, def (self) return self.max(50, self.min(255, animation.get_user_function('rand_demo')(self.engine) + 100)) end) # Example 3: User function in arithmetic expressions var random_variation_ = animation.solid(engine) random_variation_.color = 0xFF800080 random_variation_.priority = 15 # Mix user function with arithmetic operations -random_variation_.opacity = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.abs(animation.get_user_function('rand_demo')(self.engine) - 128) + 64) end) +random_variation_.opacity = animation.create_closure_value(engine, def (self) return self.abs(animation.get_user_function('rand_demo')(self.engine) - 128) + 64 end) # Example 4: User function affecting different properties var random_multi_ = animation.solid(engine) random_multi_.color = 0xFF00FFFF random_multi_.priority = 12 # Use user function for multiple properties -random_multi_.opacity = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.max(100, animation.get_user_function('rand_demo')(self.engine))) end) +random_multi_.opacity = animation.create_closure_value(engine, def (self) return self.max(100, animation.get_user_function('rand_demo')(self.engine)) end) # Example 5: Complex expression with user function var random_complex_ = animation.solid(engine) random_complex_.color = 0xFFFFFFFF random_complex_.priority = 20 # Complex expression with user function and math operations -random_complex_.opacity = animation.create_closure_value(engine, def (self, param_name, time_ms) return (self.round((animation.get_user_function('rand_demo')(self.engine) + 128) / 2 + self.abs(animation.get_user_function('rand_demo')(self.engine) - 100))) end) +random_complex_.opacity = animation.create_closure_value(engine, def (self) return self.round((animation.get_user_function('rand_demo')(self.engine) + 128) / 2 + self.abs(animation.get_user_function('rand_demo')(self.engine) - 100)) end) # Run all animations to demonstrate the effects engine.add_animation(random_base_) engine.add_animation(random_bounded_) diff --git a/lib/libesp32/berry_animation/anim_examples/cylon_red_green.anim b/lib/libesp32/berry_animation/anim_examples/cylon_red_green.anim new file mode 100644 index 000000000..8d9615622 --- /dev/null +++ b/lib/libesp32/berry_animation/anim_examples/cylon_red_green.anim @@ -0,0 +1,23 @@ +# Cylon Red Eye +# Automatically adapts to the length of the strip + +set strip_len = strip_length() + +animation red_eye = beacon_animation( + color = red + pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s) + beacon_size = 3 # small 3 pixels eye + slew_size = 2 # with 2 pixel shading around + priority = 10 +) + +animation green_eye = beacon_animation( + color = green + pos = strip_len - red_eye.pos + beacon_size = 3 # small 3 pixels eye + slew_size = 2 # with 2 pixel shading around + priority = 15 # behind red eye +) + +run red_eye +run green_eye diff --git a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md index 8539e38bf..918053015 100644 --- a/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md +++ b/lib/libesp32/berry_animation/docs/DSL_REFERENCE.md @@ -767,6 +767,8 @@ The DSL validates class and parameter existence during compilation, catching err - **Parameter Names**: Checks that all named parameters are valid for the specific class - **Parameter Constraints**: Validates parameter values against defined constraints (min/max, enums, types) - **Nested Validation**: Validates parameters in nested function calls and value providers +- **Property Assignment Validation**: Validates parameter names in property assignments (e.g., `animation.invalid_param = value`) against the actual class parameters +- **Object Reference Validation**: Validates that referenced objects exist in `run` statements and sequence `play` statements ### Common Errors @@ -774,15 +776,28 @@ The DSL validates class and parameter existence during compilation, catching err # Invalid: Redefining predefined color color red = 0x800000 # Error: Cannot redefine 'red' -# Invalid: Unknown parameter +# Invalid: Unknown parameter in constructor animation bad = pulsating_animation(invalid_param=123) # Error: Unknown parameter -# Invalid: Undefined reference +# Invalid: Unknown parameter in property assignment +animation pulse = pulsating_animation(color=red, period=2s) +pulse.wrong_arg = 15 # Error: Parameter 'wrong_arg' not valid for PulseAnimation + +# Invalid: Undefined reference in color definition animation ref = solid(color=undefined_color) # Error: Undefined reference +# Invalid: Undefined reference in run statement +run undefined_animation # Error: Undefined reference 'undefined_animation' in run + +# Invalid: Undefined reference in sequence +sequence demo { + play undefined_animation for 5s # Error: Undefined reference 'undefined_animation' in sequence play +} + # Valid alternatives color my_red = 0x800000 # OK: Different name animation good = pulsating_animation(color=red, period=2s) # OK: Valid parameters +good.priority = 10 # OK: Valid parameter assignment ``` ## Formal Grammar (EBNF) diff --git a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md index ea7f951f7..33a4e15bf 100644 --- a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md +++ b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md @@ -292,10 +292,15 @@ animation bad2 = math_function(value=10) **Parameter Validation:** ```berry -# Error: Invalid parameter name +# Error: Invalid parameter name in constructor animation pulse = pulsating_animation(invalid_param=123) # Transpiler error: "Parameter 'invalid_param' is not valid for pulsating_animation" +# Error: Invalid parameter name in property assignment +animation pulse = pulsating_animation(color=red, period=2s) +pulse.wrong_arg = 15 +# Transpiler error: "Animation 'PulseAnimation' does not have parameter 'wrong_arg'" + # Error: Parameter constraint violation animation comet = comet_animation(tail_length=-5) # Transpiler error: "Parameter 'tail_length' value -5 violates constraint: min=1" @@ -318,16 +323,23 @@ color bad2 = pulsating_animation(color=red) animation pulse = pulsating_animation(color=undefined_color) # Transpiler error: "Undefined reference: 'undefined_color'" -# Error: Undefined animation reference +# Error: Undefined animation reference in run statement run nonexistent_animation -# Transpiler error: "Undefined reference: 'nonexistent_animation'" +# Transpiler error: "Undefined reference 'nonexistent_animation' in run" + +# Error: Undefined animation reference in sequence +sequence demo { + play nonexistent_animation for 5s +} +# Transpiler error: "Undefined reference 'nonexistent_animation' in sequence play" ``` ### Error Categories - **Syntax errors**: Invalid DSL syntax (lexer/parser errors) - **Factory validation**: Non-existent or invalid animation/color provider factories -- **Parameter validation**: Invalid parameter names or constraint violations +- **Parameter validation**: Invalid parameter names in constructors or property assignments +- **Constraint validation**: Parameter values that violate defined constraints (min/max, enums, types) - **Reference validation**: Using undefined colors, animations, or variables - **Type validation**: Incorrect parameter types or incompatible assignments - **Runtime errors**: Errors during Berry code execution (rare with good validation) diff --git a/lib/libesp32/berry_animation/src/dsl/transpiler.be b/lib/libesp32/berry_animation/src/dsl/transpiler.be index 685a33ba5..9c0bef8e9 100644 --- a/lib/libesp32/berry_animation/src/dsl/transpiler.be +++ b/lib/libesp32/berry_animation/src/dsl/transpiler.be @@ -25,6 +25,7 @@ class SimpleDSLTranspiler var first_statement # Track if we're processing the first statement var strip_initialized # Track if strip was initialized var sequence_names # Track which names are sequences + var symbol_table # Track created objects: name -> instance # Static color mapping for named colors (helps with solidification) static var named_colors = { @@ -52,6 +53,7 @@ class SimpleDSLTranspiler self.first_statement = true # Track if we're processing the first statement self.strip_initialized = false # Track if strip was initialized self.sequence_names = {} # Track which names are sequences + self.symbol_table = {} # Track created objects: name -> instance end # Main transpilation method - single pass @@ -191,14 +193,36 @@ class SimpleDSLTranspiler # Generate the base function call immediately self.add(f"var {name}_ = animation.{func_name}(engine){inline_comment}") + # Track this symbol in our symbol table + var instance = self._create_instance_for_validation(func_name) + if instance != nil + self.symbol_table[name] = instance + end + # Process named arguments with validation self._process_named_arguments_for_color_provider(f"{name}_", func_name) end else + # Check if this is a simple identifier reference before processing + var current_tok = self.current() + var is_simple_identifier = (current_tok != nil && current_tok.type == animation_dsl.Token.IDENTIFIER && + (self.peek() == nil || self.peek().type != animation_dsl.Token.LEFT_PAREN)) + var ref_name = is_simple_identifier ? current_tok.value : nil + # Regular value assignment (simple color value) var value = self.process_value("color") var inline_comment = self.collect_inline_comment() self.add(f"var {name}_ = {value}{inline_comment}") + + # If this is an identifier reference to another color provider in our symbol table, + # add this name to the symbol table as well for compile-time validation + if is_simple_identifier && ref_name != nil && self.symbol_table.contains(ref_name) + var ref_instance = self.symbol_table[ref_name] + # Only copy instances, not sequence markers + if type(ref_instance) != "string" + self.symbol_table[name] = ref_instance + end + end end end @@ -323,15 +347,37 @@ class SimpleDSLTranspiler # Generate the base function call immediately self.add(f"var {name}_ = animation.{func_name}(engine){inline_comment}") + # Track this symbol in our symbol table + var instance = self._create_instance_for_validation(func_name) + if instance != nil + self.symbol_table[name] = instance + end + # Process named arguments with validation self._process_named_arguments_for_animation(f"{name}_", func_name) end else + # Check if this is a simple identifier reference before processing + var current_tok = self.current() + var is_simple_identifier = (current_tok != nil && current_tok.type == animation_dsl.Token.IDENTIFIER && + (self.peek() == nil || self.peek().type != animation_dsl.Token.LEFT_PAREN)) + var ref_name = is_simple_identifier ? current_tok.value : nil + # Regular value assignment (identifier, color, etc.) var value = self.process_value("animation") var inline_comment = self.collect_inline_comment() self.add(f"var {name}_ = {value}{inline_comment}") + # If this is an identifier reference to another animation in our symbol table, + # add this name to the symbol table as well for compile-time validation + if is_simple_identifier && ref_name != nil && self.symbol_table.contains(ref_name) + var ref_instance = self.symbol_table[ref_name] + # Only copy instances, not sequence markers + if type(ref_instance) != "string" + self.symbol_table[name] = ref_instance + end + end + # Note: For identifier references, type checking happens at runtime via animation.global() end end @@ -380,6 +426,10 @@ class SimpleDSLTranspiler # Track that this name is a sequence self.sequence_names[name] = true + # Also add to symbol table with a special marker for sequences + # We use a string marker since sequences don't have real instances + self.symbol_table[name] = "sequence" + self.expect_left_brace() # Generate anonymous closure that creates and returns sequence manager @@ -431,6 +481,10 @@ class SimpleDSLTranspiler else # This is an identifier reference - sequences need runtime resolution var anim_name = self.expect_identifier() + + # Validate that the referenced object exists + self._validate_object_reference(anim_name, "sequence play") + anim_ref = f"animation.global('{anim_name}_')" end @@ -486,6 +540,10 @@ class SimpleDSLTranspiler else # This is an identifier reference - sequences need runtime resolution var anim_name = self.expect_identifier() + + # Validate that the referenced object exists + self._validate_object_reference(anim_name, "sequence play") + anim_ref = f"animation.global('{anim_name}_')" end @@ -518,6 +576,10 @@ class SimpleDSLTranspiler def process_run() self.next() # skip 'run' var name = self.expect_identifier() + + # Validate that the referenced object exists + self._validate_object_reference(name, "run") + var inline_comment = self.collect_inline_comment() # Store run statement for later processing @@ -535,6 +597,23 @@ class SimpleDSLTranspiler if self.current() != nil && self.current().type == animation_dsl.Token.DOT self.next() # skip '.' var property_name = self.expect_identifier() + + # Validate parameter if we have this object in our symbol table + if self.symbol_table.contains(object_name) + var instance = self.symbol_table[object_name] + + # Only validate parameters for actual instances, not sequence markers + if type(instance) != "string" + var class_name = classname(instance) + + # Use the existing parameter validation logic + self._validate_single_parameter(class_name, property_name, instance) + else + # This is a sequence marker - sequences don't have properties + self.error(f"Sequences like '{object_name}' do not have properties. Property assignments are only valid for animations and color providers.") + end + end + self.expect_assign() var value = self.process_value("property") var inline_comment = self.collect_inline_comment() @@ -703,11 +782,46 @@ class SimpleDSLTranspiler return self.process_array_literal() end - # Identifier - could be color, animation, or variable + # Identifier - could be color, animation, variable, or object property reference if tok.type == animation_dsl.Token.IDENTIFIER var name = tok.value self.next() + # Check if this is an object property reference (identifier.property) + if self.current() != nil && self.current().type == animation_dsl.Token.DOT + self.next() # consume '.' + var property_name = self.expect_identifier() + + # Validate that the property exists on the referenced object + if self.symbol_table.contains(name) + var instance = self.symbol_table[name] + # Only validate parameters for actual instances, not sequence markers + if type(instance) != "string" + var class_name = classname(instance) + self._validate_single_parameter(class_name, property_name, instance) + else + # This is a sequence marker - sequences don't have properties + self.error(f"Sequences like '{name}' do not have properties. Property references are only valid for animations and color providers.") + return "nil" + end + end + + # Create a closure that resolves the object property at runtime + # Use symbol resolution logic for the object reference + import introspect + var object_ref = "" + if introspect.contains(animation, name) + # Symbol exists in animation module, use it directly + object_ref = f"animation.{name}" + else + # Symbol doesn't exist in animation module, use underscore suffix + object_ref = f"{name}_" + end + + # Return a closure expression that will be wrapped by the caller if needed + return f"self.resolve({object_ref}, '{property_name}')" + end + # Check for palette constants import string if string.startswith(name, "PALETTE_") @@ -823,7 +937,7 @@ class SimpleDSLTranspiler transformed_expr = string.replace(transformed_expr, " ", " ") end - var closure_code = f"def (self, param_name, time_ms) return ({transformed_expr}) end" + var closure_code = f"def (self) return {transformed_expr} end" # Return a closure value provider instance return f"animation.create_closure_value(engine, {closure_code})" @@ -848,7 +962,7 @@ class SimpleDSLTranspiler right_expr = string.replace(right_expr, " ", " ") end - var closure_code = f"def (self, param_name, time_ms) return ({left_expr} {op} {right_expr}) end" + var closure_code = f"def (self) return {left_expr} {op} {right_expr} end" # Return a closure value provider instance return f"animation.create_closure_value(engine, {closure_code})" @@ -947,7 +1061,7 @@ class SimpleDSLTranspiler var end_pos = underscore_pos + 1 if end_pos >= size(result) || !self.is_identifier_char(result[end_pos]) # Replace the variable with the resolve call - var replacement = f"self.resolve({var_name}, param_name, time_ms)" + var replacement = f"self.resolve({var_name})" var before = start_pos > 0 ? result[0..start_pos-1] : "" var after = end_pos < size(result) ? result[end_pos..] : "" result = before + replacement + after @@ -1019,7 +1133,7 @@ class SimpleDSLTranspiler if has_underscore && !has_operators && !has_paren && !has_animation_prefix # This looks like a simple user variable that might be a ValueProvider - return f"self.resolve({operand}, param_name, time_ms)" + return f"self.resolve({operand})" else # For other expressions (literals, animation module calls, complex expressions), use as-is return operand @@ -1401,11 +1515,47 @@ class SimpleDSLTranspiler return f'"{value}"' end - # Identifier - variable reference + # Identifier - variable reference or object property reference if tok.type == animation_dsl.Token.IDENTIFIER var name = tok.value self.next() - return f"self.resolve({name}_, param_name, time_ms)" + + # Check if this is an object property reference (identifier.property) + if self.current() != nil && self.current().type == animation_dsl.Token.DOT + self.next() # consume '.' + var property_name = self.expect_identifier() + + # Validate that the property exists on the referenced object + if self.symbol_table.contains(name) + var instance = self.symbol_table[name] + # Only validate parameters for actual instances, not sequence markers + if type(instance) != "string" + var class_name = classname(instance) + self._validate_single_parameter(class_name, property_name, instance) + else + # This is a sequence marker - sequences don't have properties + self.error(f"Sequences like '{name}' do not have properties. Property references are only valid for animations and color providers.") + return "nil" + end + end + + # Use symbol resolution logic for the object reference + import introspect + var object_ref = "" + if introspect.contains(animation, name) + # Symbol exists in animation module, use it directly + object_ref = f"animation.{name}" + else + # Symbol doesn't exist in animation module, use underscore suffix + object_ref = f"{name}_" + end + + # Return a resolve call for the object property + return f"self.resolve({object_ref}, '{property_name}')" + end + + # Regular variable reference + return f"self.resolve({name}_)" end self.error(f"Unexpected token in expression: {tok.value}") @@ -1483,7 +1633,7 @@ class SimpleDSLTranspiler # Create animation instance once for parameter validation var animation_instance = nil if func_name != "" - animation_instance = self._create_animation_instance_for_validation(func_name) + animation_instance = self._create_instance_for_validation(func_name) end while !self.at_end() && !self.check_right_paren() @@ -1982,7 +2132,7 @@ class SimpleDSLTranspiler self.expect_left_paren() # Create animation instance once for parameter validation - var animation_instance = self._create_animation_instance_for_validation(func_name) + var animation_instance = self._create_instance_for_validation(func_name) while !self.at_end() && !self.check_right_paren() self.skip_whitespace_including_newlines() @@ -2051,11 +2201,6 @@ class SimpleDSLTranspiler end end - # Create animation instance for parameter validation - def _create_animation_instance_for_validation(func_name) - return self._create_instance_for_validation(func_name) - end - # Validate a single parameter immediately as it's parsed # # @param func_name: string - Name of the animation function @@ -2079,6 +2224,38 @@ class SimpleDSLTranspiler end end + # Validate that a referenced object exists in the symbol table or animation module + # + # @param object_name: string - Name of the object being referenced + # @param context: string - Context where the reference occurs (for error messages) + def _validate_object_reference(object_name, context) + try + import introspect + + # Check if object exists in symbol table (user-defined) + if self.symbol_table.contains(object_name) + return # Object exists, validation passed + end + + # Check if object exists in animation module (built-in) + if introspect.contains(animation, object_name) + return # Object exists, validation passed + end + + # Check if it's a sequence name + if self.sequence_names.contains(object_name) + return # Sequence exists, validation passed + end + + # Object not found - report error + self.error(f"Undefined reference '{object_name}' in {context}. Make sure the object is defined before use.") + + except .. as e, msg + # If validation fails for any reason, just continue + # This ensures the transpiler is robust even if validation has issues + end + end + # Validate factory function at transpile time by creating instance and checking type def _validate_factory_function(func_name, expected_base_class) try @@ -2223,7 +2400,7 @@ class SimpleDSLTranspiler self.expect_left_paren() # Create animation instance once for parameter validation - var animation_instance = self._create_animation_instance_for_validation(func_name) + var animation_instance = self._create_instance_for_validation(func_name) while !self.at_end() && !self.check_right_paren() self.skip_whitespace_including_newlines() diff --git a/lib/libesp32/berry_animation/src/providers/closure_value_provider.be b/lib/libesp32/berry_animation/src/providers/closure_value_provider.be index 2eec0034a..7d79d2396 100644 --- a/lib/libesp32/berry_animation/src/providers/closure_value_provider.be +++ b/lib/libesp32/berry_animation/src/providers/closure_value_provider.be @@ -39,13 +39,19 @@ class ClosureValueProvider : animation.value_provider # This is equivalent to 'resolve_param' but with a shorter name # and available at first dereferencing of method name (hence faster) # - # @param value: any - Static value or value provider instance + # @param value: any - Static value, value provider instance, or parameterized object # @param param_name: string - Parameter name for specific produce_value() method lookup - # @param time_ms: int - Current time in milliseconds - # @return any - The resolved value (static or from provider) - def resolve(value, param_name, time_ms) + # @return any - The resolved value (static, from provider, or from object parameter) + def resolve(value, param_name) if animation.is_value_provider(value) - return value.produce_value(param_name, time_ms) + return value.produce_value(param_name, self.engine.time_ms) + elif value != nil && isinstance(value, animation.parameterized_object) + # Handle parameterized objects (animations, etc.) by accessing their parameters + # Check that param_name is not nil to prevent runtime errors + if param_name == nil + raise "value_error", "Parameter name cannot be nil when resolving object parameter" + end + return value.get_param_value(param_name, self.engine.time_ms) else return value end diff --git a/lib/libesp32/berry_animation/src/providers/value_provider.be b/lib/libesp32/berry_animation/src/providers/value_provider.be index bface7469..851196723 100644 --- a/lib/libesp32/berry_animation/src/providers/value_provider.be +++ b/lib/libesp32/berry_animation/src/providers/value_provider.be @@ -38,8 +38,6 @@ class ValueProvider : animation.parameterized_object def produce_value(name, time_ms) return module("undefined") # Default behavior - return undefined end - - end # Add a method to check if an object is a value provider diff --git a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h index ca3327b2b..4ca045f44 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h @@ -9598,8 +9598,8 @@ be_local_closure(linear, /* name */ ); /*******************************************************************/ -// compact class 'ClosureValueProvider' ktab size: 20, total: 33 (saved 104 bytes) -static const bvalue be_ktab_class_ClosureValueProvider[20] = { +// compact class 'ClosureValueProvider' ktab size: 26, total: 39 (saved 104 bytes) +static const bvalue be_ktab_class_ClosureValueProvider[26] = { /* K0 */ be_nested_str_weak(closure), /* K1 */ be_nested_str_weak(_closure), /* K2 */ be_nested_str_weak(math), @@ -9620,6 +9620,12 @@ static const bvalue be_ktab_class_ClosureValueProvider[20] = { /* K17 */ be_nested_str_weak(animation), /* K18 */ be_nested_str_weak(is_value_provider), /* K19 */ be_nested_str_weak(produce_value), + /* K20 */ be_nested_str_weak(engine), + /* K21 */ be_nested_str_weak(time_ms), + /* K22 */ be_nested_str_weak(parameterized_object), + /* K23 */ be_nested_str_weak(value_error), + /* K24 */ be_nested_str_weak(Parameter_X20name_X20cannot_X20be_X20nil_X20when_X20resolving_X20object_X20parameter), + /* K25 */ be_nested_str_weak(get_param_value), }; @@ -9978,8 +9984,8 @@ be_local_closure(class_ClosureValueProvider_produce_value, /* name */ ********************************************************************/ be_local_closure(class_ClosureValueProvider_resolve, /* name */ be_nested_proto( - 8, /* nstack */ - 4, /* argc */ + 7, /* nstack */ + 3, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -9989,20 +9995,41 @@ be_local_closure(class_ClosureValueProvider_resolve, /* name */ &be_ktab_class_ClosureValueProvider, /* shared constants */ be_str_weak(resolve), &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0xB8122200, // 0000 GETNGBL R4 K17 - 0x8C100912, // 0001 GETMET R4 R4 K18 - 0x5C180200, // 0002 MOVE R6 R1 - 0x7C100400, // 0003 CALL R4 2 - 0x78120005, // 0004 JMPF R4 #000B - 0x8C100313, // 0005 GETMET R4 R1 K19 - 0x5C180400, // 0006 MOVE R6 R2 - 0x5C1C0600, // 0007 MOVE R7 R3 - 0x7C100600, // 0008 CALL R4 3 - 0x80040800, // 0009 RET 1 R4 - 0x70020000, // 000A JMP #000C - 0x80040200, // 000B RET 1 R1 - 0x80000000, // 000C RET 0 + ( &(const binstruction[34]) { /* code */ + 0xB80E2200, // 0000 GETNGBL R3 K17 + 0x8C0C0712, // 0001 GETMET R3 R3 K18 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x780E0006, // 0004 JMPF R3 #000C + 0x8C0C0313, // 0005 GETMET R3 R1 K19 + 0x5C140400, // 0006 MOVE R5 R2 + 0x88180114, // 0007 GETMBR R6 R0 K20 + 0x88180D15, // 0008 GETMBR R6 R6 K21 + 0x7C0C0600, // 0009 CALL R3 3 + 0x80040600, // 000A RET 1 R3 + 0x70020014, // 000B JMP #0021 + 0x4C0C0000, // 000C LDNIL R3 + 0x200C0203, // 000D NE R3 R1 R3 + 0x780E0010, // 000E JMPF R3 #0020 + 0x600C000F, // 000F GETGBL R3 G15 + 0x5C100200, // 0010 MOVE R4 R1 + 0xB8162200, // 0011 GETNGBL R5 K17 + 0x88140B16, // 0012 GETMBR R5 R5 K22 + 0x7C0C0400, // 0013 CALL R3 2 + 0x780E000A, // 0014 JMPF R3 #0020 + 0x4C0C0000, // 0015 LDNIL R3 + 0x1C0C0403, // 0016 EQ R3 R2 R3 + 0x780E0000, // 0017 JMPF R3 #0019 + 0xB0062F18, // 0018 RAISE 1 K23 K24 + 0x8C0C0319, // 0019 GETMET R3 R1 K25 + 0x5C140400, // 001A MOVE R5 R2 + 0x88180114, // 001B GETMBR R6 R0 K20 + 0x88180D15, // 001C GETMBR R6 R6 K21 + 0x7C0C0600, // 001D CALL R3 3 + 0x80040600, // 001E RET 1 R3 + 0x70020000, // 001F JMP #0021 + 0x80040200, // 0020 RET 1 R1 + 0x80000000, // 0021 RET 0 }) ) ); 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 0834688ab..e473b663b 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h @@ -2353,11 +2353,11 @@ be_local_closure(create_eof_token, /* name */ extern const bclass be_class_SimpleDSLTranspiler; /******************************************************************** -** Solidified function: expect_keyword +** Solidified function: is_computed_expression_string ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ +be_local_closure(class_SimpleDSLTranspiler_is_computed_expression_string, /* name */ be_nested_proto( - 8, /* nstack */ + 12, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -2365,1211 +2365,85 @@ be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(KEYWORD), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), - }), - be_str_weak(expect_keyword), - &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x200C0403, // 0003 NE R3 R2 R3 - 0x780E000B, // 0004 JMPF R3 #0011 - 0x880C0501, // 0005 GETMBR R3 R2 K1 - 0xB8120400, // 0006 GETNGBL R4 K2 - 0x88100903, // 0007 GETMBR R4 R4 K3 - 0x88100904, // 0008 GETMBR R4 R4 K4 - 0x1C0C0604, // 0009 EQ R3 R3 R4 - 0x780E0005, // 000A JMPF R3 #0011 - 0x880C0505, // 000B GETMBR R3 R2 K5 - 0x1C0C0601, // 000C EQ R3 R3 R1 - 0x780E0002, // 000D JMPF R3 #0011 - 0x8C0C0106, // 000E GETMET R3 R0 K6 - 0x7C0C0200, // 000F CALL R3 1 - 0x70020005, // 0010 JMP #0017 - 0x8C0C0107, // 0011 GETMET R3 R0 K7 - 0x60140018, // 0012 GETGBL R5 G24 - 0x58180008, // 0013 LDCONST R6 K8 - 0x5C1C0200, // 0014 MOVE R7 R1 - 0x7C140400, // 0015 CALL R5 2 - 0x7C0C0400, // 0016 CALL R3 2 - 0x80000000, // 0017 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_init, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(tokens), - /* K1 */ be_nested_str_weak(pos), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(output), - /* K4 */ be_nested_str_weak(errors), - /* K5 */ be_nested_str_weak(run_statements), - /* K6 */ be_nested_str_weak(first_statement), - /* K7 */ be_nested_str_weak(strip_initialized), - /* K8 */ be_nested_str_weak(sequence_names), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x5C080200, // 0003 MOVE R2 R1 - 0x70020001, // 0004 JMP #0007 - 0x60080012, // 0005 GETGBL R2 G18 - 0x7C080000, // 0006 CALL R2 0 - 0x90020002, // 0007 SETMBR R0 K0 R2 - 0x90020302, // 0008 SETMBR R0 K1 K2 - 0x60080012, // 0009 GETGBL R2 G18 - 0x7C080000, // 000A CALL R2 0 - 0x90020602, // 000B SETMBR R0 K3 R2 - 0x60080012, // 000C GETGBL R2 G18 - 0x7C080000, // 000D CALL R2 0 - 0x90020802, // 000E SETMBR R0 K4 R2 - 0x60080012, // 000F GETGBL R2 G18 - 0x7C080000, // 0010 CALL R2 0 - 0x90020A02, // 0011 SETMBR R0 K5 R2 - 0x50080200, // 0012 LDBOOL R2 1 0 - 0x90020C02, // 0013 SETMBR R0 K6 R2 - 0x50080000, // 0014 LDBOOL R2 0 0 - 0x90020E02, // 0015 SETMBR R0 K7 R2 - 0x60080013, // 0016 GETGBL R2 G19 - 0x7C080000, // 0017 CALL R2 0 - 0x90021002, // 0018 SETMBR R0 K8 R2 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_whitespace_including_newlines -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(COMMENT), - /* K6 */ be_nested_str_weak(NEWLINE), - /* K7 */ be_nested_str_weak(next), - }), - be_str_weak(skip_whitespace_including_newlines), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060015, // 0002 JMPT R1 #0019 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x4C080000, // 0005 LDNIL R2 - 0x20080202, // 0006 NE R2 R1 R2 - 0x780A000E, // 0007 JMPF R2 #0017 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0xB80E0600, // 0009 GETNGBL R3 K3 - 0x880C0704, // 000A GETMBR R3 R3 K4 - 0x880C0705, // 000B GETMBR R3 R3 K5 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x740A0005, // 000D JMPT R2 #0014 - 0x88080302, // 000E GETMBR R2 R1 K2 - 0xB80E0600, // 000F GETNGBL R3 K3 - 0x880C0704, // 0010 GETMBR R3 R3 K4 - 0x880C0706, // 0011 GETMBR R3 R3 K6 - 0x1C080403, // 0012 EQ R2 R2 R3 - 0x780A0002, // 0013 JMPF R2 #0017 - 0x8C080107, // 0014 GETMET R2 R0 K7 - 0x7C080200, // 0015 CALL R2 1 - 0x70020000, // 0016 JMP #0018 - 0x70020000, // 0017 JMP #0019 - 0x7001FFE6, // 0018 JMP #0000 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_color, /* name */ - be_nested_proto( - 17, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(startswith), - /* K2 */ be_nested_str_weak(0x), - /* K3 */ be_nested_str_weak(0xFF_X25s), - /* K4 */ be_const_int(2), - /* K5 */ be_const_int(2147483647), - /* K6 */ be_nested_str_weak(_X23), - /* K7 */ be_nested_str_weak(0x_X25s), - /* K8 */ be_const_int(1), - /* K9 */ be_const_int(3), - /* K10 */ be_nested_str_weak(0x_X25s_X25s_X25s_X25s_X25s_X25s_X25s_X25s), - /* K11 */ be_nested_str_weak(0xFF_X25s_X25s_X25s_X25s_X25s_X25s), - /* K12 */ be_nested_str_weak(animation_dsl), - /* K13 */ be_nested_str_weak(is_color_name), - /* K14 */ be_nested_str_weak(get_named_color_value), - /* K15 */ be_nested_str_weak(0xFFFFFFFF), - }), - be_str_weak(convert_color), - &be_const_str_solidified, - ( &(const binstruction[110]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x780E0013, // 0005 JMPF R3 #001A - 0x600C000C, // 0006 GETGBL R3 G12 - 0x5C100200, // 0007 MOVE R4 R1 - 0x7C0C0200, // 0008 CALL R3 1 - 0x54120009, // 0009 LDINT R4 10 - 0x1C0C0604, // 000A EQ R3 R3 R4 - 0x780E0001, // 000B JMPF R3 #000E - 0x80040200, // 000C RET 1 R1 - 0x7002000B, // 000D JMP #001A - 0x600C000C, // 000E GETGBL R3 G12 - 0x5C100200, // 000F MOVE R4 R1 - 0x7C0C0200, // 0010 CALL R3 1 - 0x54120007, // 0011 LDINT R4 8 - 0x1C0C0604, // 0012 EQ R3 R3 R4 - 0x780E0005, // 0013 JMPF R3 #001A - 0x600C0018, // 0014 GETGBL R3 G24 - 0x58100003, // 0015 LDCONST R4 K3 - 0x40160905, // 0016 CONNECT R5 K4 K5 - 0x94140205, // 0017 GETIDX R5 R1 R5 - 0x7C0C0400, // 0018 CALL R3 2 - 0x80040600, // 0019 RET 1 R3 - 0x8C0C0501, // 001A GETMET R3 R2 K1 - 0x5C140200, // 001B MOVE R5 R1 - 0x58180006, // 001C LDCONST R6 K6 - 0x7C0C0600, // 001D CALL R3 3 - 0x780E0044, // 001E JMPF R3 #0064 - 0x600C000C, // 001F GETGBL R3 G12 - 0x5C100200, // 0020 MOVE R4 R1 - 0x7C0C0200, // 0021 CALL R3 1 - 0x54120008, // 0022 LDINT R4 9 - 0x1C0C0604, // 0023 EQ R3 R3 R4 - 0x780E0006, // 0024 JMPF R3 #002C - 0x600C0018, // 0025 GETGBL R3 G24 - 0x58100007, // 0026 LDCONST R4 K7 - 0x40161105, // 0027 CONNECT R5 K8 K5 - 0x94140205, // 0028 GETIDX R5 R1 R5 - 0x7C0C0400, // 0029 CALL R3 2 - 0x80040600, // 002A RET 1 R3 - 0x70020037, // 002B JMP #0064 - 0x600C000C, // 002C GETGBL R3 G12 - 0x5C100200, // 002D MOVE R4 R1 - 0x7C0C0200, // 002E CALL R3 1 - 0x54120006, // 002F LDINT R4 7 - 0x1C0C0604, // 0030 EQ R3 R3 R4 - 0x780E0006, // 0031 JMPF R3 #0039 - 0x600C0018, // 0032 GETGBL R3 G24 - 0x58100003, // 0033 LDCONST R4 K3 - 0x40161105, // 0034 CONNECT R5 K8 K5 - 0x94140205, // 0035 GETIDX R5 R1 R5 - 0x7C0C0400, // 0036 CALL R3 2 - 0x80040600, // 0037 RET 1 R3 - 0x7002002A, // 0038 JMP #0064 - 0x600C000C, // 0039 GETGBL R3 G12 - 0x5C100200, // 003A MOVE R4 R1 - 0x7C0C0200, // 003B CALL R3 1 - 0x54120004, // 003C LDINT R4 5 - 0x1C0C0604, // 003D EQ R3 R3 R4 - 0x780E0011, // 003E JMPF R3 #0051 - 0x940C0308, // 003F GETIDX R3 R1 K8 - 0x94100304, // 0040 GETIDX R4 R1 K4 - 0x94140309, // 0041 GETIDX R5 R1 K9 - 0x541A0003, // 0042 LDINT R6 4 - 0x94180206, // 0043 GETIDX R6 R1 R6 - 0x601C0018, // 0044 GETGBL R7 G24 - 0x5820000A, // 0045 LDCONST R8 K10 - 0x5C240600, // 0046 MOVE R9 R3 - 0x5C280600, // 0047 MOVE R10 R3 - 0x5C2C0800, // 0048 MOVE R11 R4 - 0x5C300800, // 0049 MOVE R12 R4 - 0x5C340A00, // 004A MOVE R13 R5 - 0x5C380A00, // 004B MOVE R14 R5 - 0x5C3C0C00, // 004C MOVE R15 R6 - 0x5C400C00, // 004D MOVE R16 R6 - 0x7C1C1200, // 004E CALL R7 9 - 0x80040E00, // 004F RET 1 R7 - 0x70020012, // 0050 JMP #0064 - 0x600C000C, // 0051 GETGBL R3 G12 - 0x5C100200, // 0052 MOVE R4 R1 - 0x7C0C0200, // 0053 CALL R3 1 - 0x54120003, // 0054 LDINT R4 4 - 0x1C0C0604, // 0055 EQ R3 R3 R4 - 0x780E000C, // 0056 JMPF R3 #0064 - 0x940C0308, // 0057 GETIDX R3 R1 K8 - 0x94100304, // 0058 GETIDX R4 R1 K4 - 0x94140309, // 0059 GETIDX R5 R1 K9 - 0x60180018, // 005A GETGBL R6 G24 - 0x581C000B, // 005B LDCONST R7 K11 - 0x5C200600, // 005C MOVE R8 R3 - 0x5C240600, // 005D MOVE R9 R3 - 0x5C280800, // 005E MOVE R10 R4 - 0x5C2C0800, // 005F MOVE R11 R4 - 0x5C300A00, // 0060 MOVE R12 R5 - 0x5C340A00, // 0061 MOVE R13 R5 - 0x7C180E00, // 0062 CALL R6 7 - 0x80040C00, // 0063 RET 1 R6 - 0xB80E1800, // 0064 GETNGBL R3 K12 - 0x8C0C070D, // 0065 GETMET R3 R3 K13 - 0x5C140200, // 0066 MOVE R5 R1 - 0x7C0C0400, // 0067 CALL R3 2 - 0x780E0003, // 0068 JMPF R3 #006D - 0x8C0C010E, // 0069 GETMET R3 R0 K14 - 0x5C140200, // 006A MOVE R5 R1 - 0x7C0C0400, // 006B CALL R3 2 - 0x80040600, // 006C RET 1 R3 - 0x80061E00, // 006D RET 1 K15 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _generate_anonymous_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call, /* name */ - be_nested_proto( - 14, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[33]) { /* constants */ - /* K0 */ be_nested_str_weak(push), - /* K1 */ be_nested_str_weak(_X28def_X20_X28engine_X29), - /* K2 */ be_nested_str_weak(_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29), - /* K3 */ be_nested_str_weak(expect_left_paren), - /* K4 */ be_nested_str_weak(_create_animation_instance_for_validation), - /* K5 */ be_nested_str_weak(at_end), - /* K6 */ be_nested_str_weak(check_right_paren), - /* K7 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K8 */ be_nested_str_weak(expect_identifier), - /* K9 */ be_nested_str_weak(_validate_single_parameter), - /* K10 */ be_nested_str_weak(expect_assign), - /* K11 */ be_nested_str_weak(process_value), - /* K12 */ be_nested_str_weak(argument), - /* K13 */ be_nested_str_weak(collect_inline_comment), - /* K14 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K15 */ be_nested_str_weak(current), - /* K16 */ be_nested_str_weak(type), - /* K17 */ be_nested_str_weak(animation_dsl), - /* K18 */ be_nested_str_weak(Token), - /* K19 */ be_nested_str_weak(COMMENT), - /* K20 */ be_nested_str_weak(next), - /* K21 */ be_nested_str_weak(COMMA), - /* K22 */ be_nested_str_weak(NEWLINE), - /* K23 */ be_nested_str_weak(error), - /* K24 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K25 */ be_nested_str_weak(expect_right_paren), - /* K26 */ be_nested_str_weak(_X20_X20return_X20provider), - /* K27 */ be_nested_str_weak(end_X29_X28engine_X29), - /* K28 */ be_nested_str_weak(), - /* K29 */ be_const_int(0), - /* K30 */ be_const_int(1), - /* K31 */ be_nested_str_weak(_X0A), - /* K32 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(_generate_anonymous_function_call), - &be_const_str_solidified, - ( &(const binstruction[145]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x8C0C0500, // 0002 GETMET R3 R2 K0 - 0x58140001, // 0003 LDCONST R5 K1 - 0x7C0C0400, // 0004 CALL R3 2 - 0x8C0C0500, // 0005 GETMET R3 R2 K0 - 0x60140018, // 0006 GETGBL R5 G24 - 0x58180002, // 0007 LDCONST R6 K2 - 0x5C1C0200, // 0008 MOVE R7 R1 - 0x7C140400, // 0009 CALL R5 2 - 0x7C0C0400, // 000A CALL R3 2 - 0x8C0C0103, // 000B GETMET R3 R0 K3 - 0x7C0C0200, // 000C CALL R3 1 - 0x8C0C0104, // 000D GETMET R3 R0 K4 - 0x5C140200, // 000E MOVE R5 R1 - 0x7C0C0400, // 000F CALL R3 2 - 0x8C100105, // 0010 GETMET R4 R0 K5 - 0x7C100200, // 0011 CALL R4 1 - 0x74120060, // 0012 JMPT R4 #0074 - 0x8C100106, // 0013 GETMET R4 R0 K6 - 0x7C100200, // 0014 CALL R4 1 - 0x7412005D, // 0015 JMPT R4 #0074 - 0x8C100107, // 0016 GETMET R4 R0 K7 - 0x7C100200, // 0017 CALL R4 1 - 0x8C100106, // 0018 GETMET R4 R0 K6 - 0x7C100200, // 0019 CALL R4 1 - 0x78120000, // 001A JMPF R4 #001C - 0x70020057, // 001B JMP #0074 - 0x8C100108, // 001C GETMET R4 R0 K8 - 0x7C100200, // 001D CALL R4 1 - 0x4C140000, // 001E LDNIL R5 - 0x20140605, // 001F NE R5 R3 R5 - 0x78160004, // 0020 JMPF R5 #0026 - 0x8C140109, // 0021 GETMET R5 R0 K9 - 0x5C1C0200, // 0022 MOVE R7 R1 - 0x5C200800, // 0023 MOVE R8 R4 - 0x5C240600, // 0024 MOVE R9 R3 - 0x7C140800, // 0025 CALL R5 4 - 0x8C14010A, // 0026 GETMET R5 R0 K10 - 0x7C140200, // 0027 CALL R5 1 - 0x8C14010B, // 0028 GETMET R5 R0 K11 - 0x581C000C, // 0029 LDCONST R7 K12 - 0x7C140400, // 002A CALL R5 2 - 0x8C18010D, // 002B GETMET R6 R0 K13 - 0x7C180200, // 002C CALL R6 1 - 0x8C1C0500, // 002D GETMET R7 R2 K0 - 0x60240018, // 002E GETGBL R9 G24 - 0x5828000E, // 002F LDCONST R10 K14 - 0x5C2C0800, // 0030 MOVE R11 R4 - 0x5C300A00, // 0031 MOVE R12 R5 - 0x5C340C00, // 0032 MOVE R13 R6 - 0x7C240800, // 0033 CALL R9 4 - 0x7C1C0400, // 0034 CALL R7 2 - 0x8C1C0105, // 0035 GETMET R7 R0 K5 - 0x7C1C0200, // 0036 CALL R7 1 - 0x741E000F, // 0037 JMPT R7 #0048 - 0x8C1C010F, // 0038 GETMET R7 R0 K15 - 0x7C1C0200, // 0039 CALL R7 1 - 0x4C200000, // 003A LDNIL R8 - 0x20200E08, // 003B NE R8 R7 R8 - 0x78220008, // 003C JMPF R8 #0046 - 0x88200F10, // 003D GETMBR R8 R7 K16 - 0xB8262200, // 003E GETNGBL R9 K17 - 0x88241312, // 003F GETMBR R9 R9 K18 - 0x88241313, // 0040 GETMBR R9 R9 K19 - 0x1C201009, // 0041 EQ R8 R8 R9 - 0x78220002, // 0042 JMPF R8 #0046 - 0x8C200114, // 0043 GETMET R8 R0 K20 - 0x7C200200, // 0044 CALL R8 1 - 0x70020000, // 0045 JMP #0047 - 0x70020000, // 0046 JMP #0048 - 0x7001FFEC, // 0047 JMP #0035 - 0x8C1C010F, // 0048 GETMET R7 R0 K15 - 0x7C1C0200, // 0049 CALL R7 1 - 0x4C200000, // 004A LDNIL R8 - 0x201C0E08, // 004B NE R7 R7 R8 - 0x781E000C, // 004C JMPF R7 #005A - 0x8C1C010F, // 004D GETMET R7 R0 K15 - 0x7C1C0200, // 004E CALL R7 1 - 0x881C0F10, // 004F GETMBR R7 R7 K16 - 0xB8222200, // 0050 GETNGBL R8 K17 - 0x88201112, // 0051 GETMBR R8 R8 K18 - 0x88201115, // 0052 GETMBR R8 R8 K21 - 0x1C1C0E08, // 0053 EQ R7 R7 R8 - 0x781E0004, // 0054 JMPF R7 #005A - 0x8C1C0114, // 0055 GETMET R7 R0 K20 - 0x7C1C0200, // 0056 CALL R7 1 - 0x8C1C0107, // 0057 GETMET R7 R0 K7 - 0x7C1C0200, // 0058 CALL R7 1 - 0x70020018, // 0059 JMP #0073 - 0x8C1C010F, // 005A GETMET R7 R0 K15 - 0x7C1C0200, // 005B CALL R7 1 - 0x4C200000, // 005C LDNIL R8 - 0x201C0E08, // 005D NE R7 R7 R8 - 0x781E000C, // 005E JMPF R7 #006C - 0x8C1C010F, // 005F GETMET R7 R0 K15 - 0x7C1C0200, // 0060 CALL R7 1 - 0x881C0F10, // 0061 GETMBR R7 R7 K16 - 0xB8222200, // 0062 GETNGBL R8 K17 - 0x88201112, // 0063 GETMBR R8 R8 K18 - 0x88201116, // 0064 GETMBR R8 R8 K22 - 0x1C1C0E08, // 0065 EQ R7 R7 R8 - 0x781E0004, // 0066 JMPF R7 #006C - 0x8C1C0114, // 0067 GETMET R7 R0 K20 - 0x7C1C0200, // 0068 CALL R7 1 - 0x8C1C0107, // 0069 GETMET R7 R0 K7 - 0x7C1C0200, // 006A CALL R7 1 - 0x70020006, // 006B JMP #0073 - 0x8C1C0106, // 006C GETMET R7 R0 K6 - 0x7C1C0200, // 006D CALL R7 1 - 0x741E0003, // 006E JMPT R7 #0073 - 0x8C1C0117, // 006F GETMET R7 R0 K23 - 0x58240018, // 0070 LDCONST R9 K24 - 0x7C1C0400, // 0071 CALL R7 2 - 0x70020000, // 0072 JMP #0074 - 0x7001FF9B, // 0073 JMP #0010 - 0x8C100119, // 0074 GETMET R4 R0 K25 - 0x7C100200, // 0075 CALL R4 1 - 0x8C100500, // 0076 GETMET R4 R2 K0 - 0x5818001A, // 0077 LDCONST R6 K26 - 0x7C100400, // 0078 CALL R4 2 - 0x8C100500, // 0079 GETMET R4 R2 K0 - 0x5818001B, // 007A LDCONST R6 K27 - 0x7C100400, // 007B CALL R4 2 - 0x5810001C, // 007C LDCONST R4 K28 - 0x60140010, // 007D GETGBL R5 G16 - 0x6018000C, // 007E GETGBL R6 G12 - 0x5C1C0400, // 007F MOVE R7 R2 - 0x7C180200, // 0080 CALL R6 1 - 0x04180D1E, // 0081 SUB R6 R6 K30 - 0x401A3A06, // 0082 CONNECT R6 K29 R6 - 0x7C140200, // 0083 CALL R5 1 - 0xA8020007, // 0084 EXBLK 0 #008D - 0x5C180A00, // 0085 MOVE R6 R5 - 0x7C180000, // 0086 CALL R6 0 - 0x241C0D1D, // 0087 GT R7 R6 K29 - 0x781E0000, // 0088 JMPF R7 #008A - 0x0010091F, // 0089 ADD R4 R4 K31 - 0x941C0406, // 008A GETIDX R7 R2 R6 - 0x00100807, // 008B ADD R4 R4 R7 - 0x7001FFF7, // 008C JMP #0085 - 0x58140020, // 008D LDCONST R5 K32 - 0xAC140200, // 008E CATCH R5 1 0 - 0xB0080000, // 008F RAISE 2 R0 R0 - 0x80040800, // 0090 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: validate_user_name -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ - be_nested_proto( - 13, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - /* K2 */ be_nested_str_weak(color_names), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K5 */ be_nested_str_weak(stop_iteration), - /* K6 */ be_nested_str_weak(statement_keywords), - /* K7 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - }), - be_str_weak(validate_user_name), - &be_const_str_solidified, - ( &(const binstruction[53]) { /* code */ - 0x600C0010, // 0000 GETGBL R3 G16 - 0xB8120000, // 0001 GETNGBL R4 K0 - 0x88100901, // 0002 GETMBR R4 R4 K1 - 0x88100902, // 0003 GETMBR R4 R4 K2 - 0x7C0C0200, // 0004 CALL R3 1 - 0xA802000F, // 0005 EXBLK 0 #0016 - 0x5C100600, // 0006 MOVE R4 R3 - 0x7C100000, // 0007 CALL R4 0 - 0x1C140204, // 0008 EQ R5 R1 R4 - 0x7816000A, // 0009 JMPF R5 #0015 - 0x8C140103, // 000A GETMET R5 R0 K3 - 0x601C0018, // 000B GETGBL R7 G24 - 0x58200004, // 000C LDCONST R8 K4 - 0x5C240200, // 000D MOVE R9 R1 - 0x5C280200, // 000E MOVE R10 R1 - 0x5C2C0200, // 000F MOVE R11 R1 - 0x7C1C0800, // 0010 CALL R7 4 - 0x7C140400, // 0011 CALL R5 2 - 0x50140000, // 0012 LDBOOL R5 0 0 - 0xA8040001, // 0013 EXBLK 1 1 - 0x80040A00, // 0014 RET 1 R5 - 0x7001FFEF, // 0015 JMP #0006 - 0x580C0005, // 0016 LDCONST R3 K5 - 0xAC0C0200, // 0017 CATCH R3 1 0 - 0xB0080000, // 0018 RAISE 2 R0 R0 - 0x600C0010, // 0019 GETGBL R3 G16 - 0xB8120000, // 001A GETNGBL R4 K0 - 0x88100901, // 001B GETMBR R4 R4 K1 - 0x88100906, // 001C GETMBR R4 R4 K6 - 0x7C0C0200, // 001D CALL R3 1 - 0xA8020010, // 001E EXBLK 0 #0030 - 0x5C100600, // 001F MOVE R4 R3 - 0x7C100000, // 0020 CALL R4 0 - 0x1C140204, // 0021 EQ R5 R1 R4 - 0x7816000B, // 0022 JMPF R5 #002F - 0x8C140103, // 0023 GETMET R5 R0 K3 - 0x601C0018, // 0024 GETGBL R7 G24 - 0x58200007, // 0025 LDCONST R8 K7 - 0x5C240200, // 0026 MOVE R9 R1 - 0x5C280400, // 0027 MOVE R10 R2 - 0x5C2C0200, // 0028 MOVE R11 R1 - 0x5C300200, // 0029 MOVE R12 R1 - 0x7C1C0A00, // 002A CALL R7 5 - 0x7C140400, // 002B CALL R5 2 - 0x50140000, // 002C LDBOOL R5 0 0 - 0xA8040001, // 002D EXBLK 1 1 - 0x80040A00, // 002E RET 1 R5 - 0x7001FFEE, // 002F JMP #001F - 0x580C0005, // 0030 LDCONST R3 K5 - 0xAC0C0200, // 0031 CATCH R3 1 0 - 0xB0080000, // 0032 RAISE 2 R0 R0 - 0x500C0200, // 0033 LDBOOL R3 1 0 - 0x80040600, // 0034 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_colon -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_colon, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(COLON), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), - }), - be_str_weak(expect_colon), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_named_color_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(SimpleDSLTranspiler), - /* K2 */ be_nested_str_weak(named_colors), - /* K3 */ be_nested_str_weak(find), - /* K4 */ be_nested_str_weak(0xFFFFFFFF), - }), - be_str_weak(get_named_color_value), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0xB80A0000, // 0000 GETNGBL R2 K0 - 0x88080501, // 0001 GETMBR R2 R2 K1 - 0x88080502, // 0002 GETMBR R2 R2 K2 - 0x8C080503, // 0003 GETMET R2 R2 K3 - 0x5C100200, // 0004 MOVE R4 R1 - 0x58140004, // 0005 LDCONST R5 K4 - 0x7C080600, // 0006 CALL R2 3 - 0x80040400, // 0007 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_percentage_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(PERCENTAGE), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_const_int(0), - /* K8 */ be_nested_str_weak(NUMBER), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Expected_X20percentage_X20value), + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(_X20_X2B_X20), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(_X20_X2D_X20), + /* K5 */ be_nested_str_weak(_X20_X2A_X20), + /* K6 */ be_nested_str_weak(_X20_X2F_X20), + /* K7 */ be_nested_str_weak(_X28), + /* K8 */ be_const_int(1), + /* K9 */ be_nested_str_weak(is_identifier_char), + /* K10 */ be_nested_str_weak(_is_simple_function_call), }), - be_str_weak(process_percentage_value), + be_str_weak(is_computed_expression_string), &be_const_str_solidified, - ( &(const binstruction[52]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0015, // 0004 JMPF R2 #001B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A000F, // 000A JMPF R2 #001B - 0x88080305, // 000B GETMBR R2 R1 K5 - 0x8C0C0106, // 000C GETMET R3 R0 K6 - 0x7C0C0200, // 000D CALL R3 1 - 0x600C000A, // 000E GETGBL R3 G10 - 0x5411FFFD, // 000F LDINT R4 -2 - 0x40120E04, // 0010 CONNECT R4 K7 R4 - 0x94100404, // 0011 GETIDX R4 R2 R4 - 0x7C0C0200, // 0012 CALL R3 1 - 0x60100009, // 0013 GETGBL R4 G9 - 0x541600FE, // 0014 LDINT R5 255 - 0x08140605, // 0015 MUL R5 R3 R5 - 0x541A0063, // 0016 LDINT R6 100 - 0x0C140A06, // 0017 DIV R5 R5 R6 - 0x7C100200, // 0018 CALL R4 1 - 0x80040800, // 0019 RET 1 R4 - 0x70020017, // 001A JMP #0033 - 0x4C080000, // 001B LDNIL R2 - 0x20080202, // 001C NE R2 R1 R2 - 0x780A000F, // 001D JMPF R2 #002E - 0x88080301, // 001E GETMBR R2 R1 K1 - 0xB80E0400, // 001F GETNGBL R3 K2 - 0x880C0703, // 0020 GETMBR R3 R3 K3 - 0x880C0708, // 0021 GETMBR R3 R3 K8 - 0x1C080403, // 0022 EQ R2 R2 R3 - 0x780A0009, // 0023 JMPF R2 #002E - 0x88080305, // 0024 GETMBR R2 R1 K5 - 0x8C0C0106, // 0025 GETMET R3 R0 K6 - 0x7C0C0200, // 0026 CALL R3 1 - 0x600C0009, // 0027 GETGBL R3 G9 - 0x6010000A, // 0028 GETGBL R4 G10 - 0x5C140400, // 0029 MOVE R5 R2 - 0x7C100200, // 002A CALL R4 1 - 0x7C0C0200, // 002B CALL R3 1 - 0x80040600, // 002C RET 1 R3 - 0x70020004, // 002D JMP #0033 - 0x8C080109, // 002E GETMET R2 R0 K9 - 0x5810000A, // 002F LDCONST R4 K10 - 0x7C080400, // 0030 CALL R2 2 - 0x540A00FE, // 0031 LDINT R2 255 - 0x80040400, // 0032 RET 1 R2 - 0x80000000, // 0033 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_identifier -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_identifier, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(IDENTIFIER), - /* K5 */ be_nested_str_weak(COLOR), - /* K6 */ be_nested_str_weak(KEYWORD), - /* K7 */ be_nested_str_weak(can_use_as_identifier), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(error), - /* K11 */ be_nested_str_weak(Expected_X20identifier), - /* K12 */ be_nested_str_weak(unknown), - }), - be_str_weak(expect_identifier), - &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A001A, // 0004 JMPF R2 #0020 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A000F, // 000A JMPT R2 #001B - 0x88080301, // 000B GETMBR R2 R1 K1 - 0xB80E0400, // 000C GETNGBL R3 K2 - 0x880C0703, // 000D GETMBR R3 R3 K3 - 0x880C0705, // 000E GETMBR R3 R3 K5 - 0x1C080403, // 000F EQ R2 R2 R3 - 0x740A0009, // 0010 JMPT R2 #001B - 0x88080301, // 0011 GETMBR R2 R1 K1 - 0xB80E0400, // 0012 GETNGBL R3 K2 - 0x880C0703, // 0013 GETMBR R3 R3 K3 - 0x880C0706, // 0014 GETMBR R3 R3 K6 - 0x1C080403, // 0015 EQ R2 R2 R3 - 0x780A0008, // 0016 JMPF R2 #0020 - 0x8C080107, // 0017 GETMET R2 R0 K7 - 0x88100308, // 0018 GETMBR R4 R1 K8 - 0x7C080400, // 0019 CALL R2 2 - 0x780A0004, // 001A JMPF R2 #0020 - 0x88080308, // 001B GETMBR R2 R1 K8 - 0x8C0C0109, // 001C GETMET R3 R0 K9 - 0x7C0C0200, // 001D CALL R3 1 - 0x80040400, // 001E RET 1 R2 - 0x70020003, // 001F JMP #0024 - 0x8C08010A, // 0020 GETMET R2 R0 K10 - 0x5810000B, // 0021 LDCONST R4 K11 - 0x7C080400, // 0022 CALL R2 2 - 0x80061800, // 0023 RET 1 K12 - 0x80000000, // 0024 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ - be_nested_proto( - 15, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[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_nested_str_weak(animation_dsl), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(KEYWORD), - /* K11 */ be_nested_str_weak(IDENTIFIER), - /* K12 */ be_nested_str_weak(peek), - /* K13 */ be_nested_str_weak(LEFT_PAREN), - /* K14 */ be_nested_str_weak(value), - /* K15 */ be_nested_str_weak(), - /* K16 */ be_nested_str_weak(COMMENT), - /* K17 */ be_nested_str_weak(_X20_X20), - /* K18 */ be_nested_str_weak(is_user_function), - /* K19 */ be_nested_str_weak(process_function_arguments), - /* K20 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K21 */ be_nested_str_weak(engine), - /* K22 */ be_nested_str_weak(add), - /* K23 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), - /* K24 */ be_nested_str_weak(_validate_animation_factory_creates_animation), - /* K25 */ be_nested_str_weak(error), - /* K26 */ 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), - /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), - /* K28 */ be_nested_str_weak(_process_named_arguments_for_animation), - /* K29 */ be_nested_str_weak(_X25s_), - /* K30 */ be_nested_str_weak(process_value), - /* K31 */ be_nested_str_weak(collect_inline_comment), - /* K32 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - }), - be_str_weak(process_animation), - &be_const_str_solidified, - ( &(const binstruction[133]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x7C080200, // 000F CALL R2 1 - 0x880C0507, // 0010 GETMBR R3 R2 K7 - 0xB8121000, // 0011 GETNGBL R4 K8 - 0x88100909, // 0012 GETMBR R4 R4 K9 - 0x8810090A, // 0013 GETMBR R4 R4 K10 - 0x1C0C0604, // 0014 EQ R3 R3 R4 - 0x740E0005, // 0015 JMPT R3 #001C - 0x880C0507, // 0016 GETMBR R3 R2 K7 - 0xB8121000, // 0017 GETNGBL R4 K8 - 0x88100909, // 0018 GETMBR R4 R4 K9 - 0x8810090B, // 0019 GETMBR R4 R4 K11 - 0x1C0C0604, // 001A EQ R3 R3 R4 - 0x780E005A, // 001B JMPF R3 #0077 - 0x8C0C010C, // 001C GETMET R3 R0 K12 - 0x7C0C0200, // 001D CALL R3 1 - 0x4C100000, // 001E LDNIL R4 - 0x200C0604, // 001F NE R3 R3 R4 - 0x780E0055, // 0020 JMPF R3 #0077 - 0x8C0C010C, // 0021 GETMET R3 R0 K12 - 0x7C0C0200, // 0022 CALL R3 1 - 0x880C0707, // 0023 GETMBR R3 R3 K7 - 0xB8121000, // 0024 GETNGBL R4 K8 - 0x88100909, // 0025 GETMBR R4 R4 K9 - 0x8810090D, // 0026 GETMBR R4 R4 K13 - 0x1C0C0604, // 0027 EQ R3 R3 R4 - 0x780E004D, // 0028 JMPF R3 #0077 - 0x880C050E, // 0029 GETMBR R3 R2 K14 - 0x8C100100, // 002A GETMET R4 R0 K0 - 0x7C100200, // 002B CALL R4 1 - 0x5810000F, // 002C LDCONST R4 K15 - 0x8C140106, // 002D GETMET R5 R0 K6 - 0x7C140200, // 002E CALL R5 1 - 0x4C180000, // 002F LDNIL R6 - 0x20140A06, // 0030 NE R5 R5 R6 - 0x7816000E, // 0031 JMPF R5 #0041 - 0x8C140106, // 0032 GETMET R5 R0 K6 - 0x7C140200, // 0033 CALL R5 1 - 0x88140B07, // 0034 GETMBR R5 R5 K7 - 0xB81A1000, // 0035 GETNGBL R6 K8 - 0x88180D09, // 0036 GETMBR R6 R6 K9 - 0x88180D10, // 0037 GETMBR R6 R6 K16 - 0x1C140A06, // 0038 EQ R5 R5 R6 - 0x78160006, // 0039 JMPF R5 #0041 - 0x8C140106, // 003A GETMET R5 R0 K6 - 0x7C140200, // 003B CALL R5 1 - 0x88140B0E, // 003C GETMBR R5 R5 K14 - 0x00162205, // 003D ADD R5 K17 R5 - 0x5C100A00, // 003E MOVE R4 R5 - 0x8C140100, // 003F GETMET R5 R0 K0 - 0x7C140200, // 0040 CALL R5 1 - 0xB8160600, // 0041 GETNGBL R5 K3 - 0x8C140B12, // 0042 GETMET R5 R5 K18 - 0x5C1C0600, // 0043 MOVE R7 R3 - 0x7C140400, // 0044 CALL R5 2 - 0x78160013, // 0045 JMPF R5 #005A - 0x8C140113, // 0046 GETMET R5 R0 K19 - 0x7C140200, // 0047 CALL R5 1 - 0x20180B0F, // 0048 NE R6 R5 K15 - 0x781A0004, // 0049 JMPF R6 #004F - 0x60180018, // 004A GETGBL R6 G24 - 0x581C0014, // 004B LDCONST R7 K20 - 0x5C200A00, // 004C MOVE R8 R5 - 0x7C180400, // 004D CALL R6 2 - 0x70020000, // 004E JMP #0050 - 0x58180015, // 004F LDCONST R6 K21 - 0x8C1C0116, // 0050 GETMET R7 R0 K22 - 0x60240018, // 0051 GETGBL R9 G24 - 0x58280017, // 0052 LDCONST R10 K23 - 0x5C2C0200, // 0053 MOVE R11 R1 - 0x5C300600, // 0054 MOVE R12 R3 - 0x5C340C00, // 0055 MOVE R13 R6 - 0x5C380800, // 0056 MOVE R14 R4 - 0x7C240A00, // 0057 CALL R9 5 - 0x7C1C0400, // 0058 CALL R7 2 - 0x7002001B, // 0059 JMP #0076 - 0x8C140118, // 005A GETMET R5 R0 K24 - 0x5C1C0600, // 005B MOVE R7 R3 - 0x7C140400, // 005C CALL R5 2 - 0x74160008, // 005D JMPT R5 #0067 - 0x8C140119, // 005E GETMET R5 R0 K25 - 0x601C0018, // 005F GETGBL R7 G24 - 0x5820001A, // 0060 LDCONST R8 K26 - 0x5C240600, // 0061 MOVE R9 R3 - 0x7C1C0400, // 0062 CALL R7 2 - 0x7C140400, // 0063 CALL R5 2 - 0x8C140104, // 0064 GETMET R5 R0 K4 - 0x7C140200, // 0065 CALL R5 1 - 0x80000A00, // 0066 RET 0 - 0x8C140116, // 0067 GETMET R5 R0 K22 - 0x601C0018, // 0068 GETGBL R7 G24 - 0x5820001B, // 0069 LDCONST R8 K27 - 0x5C240200, // 006A MOVE R9 R1 - 0x5C280600, // 006B MOVE R10 R3 - 0x5C2C0800, // 006C MOVE R11 R4 - 0x7C1C0800, // 006D CALL R7 4 - 0x7C140400, // 006E CALL R5 2 - 0x8C14011C, // 006F GETMET R5 R0 K28 - 0x601C0018, // 0070 GETGBL R7 G24 - 0x5820001D, // 0071 LDCONST R8 K29 - 0x5C240200, // 0072 MOVE R9 R1 - 0x7C1C0400, // 0073 CALL R7 2 - 0x5C200600, // 0074 MOVE R8 R3 - 0x7C140600, // 0075 CALL R5 3 - 0x7002000C, // 0076 JMP #0084 - 0x8C0C011E, // 0077 GETMET R3 R0 K30 - 0x58140003, // 0078 LDCONST R5 K3 - 0x7C0C0400, // 0079 CALL R3 2 - 0x8C10011F, // 007A GETMET R4 R0 K31 - 0x7C100200, // 007B CALL R4 1 - 0x8C140116, // 007C GETMET R5 R0 K22 - 0x601C0018, // 007D GETGBL R7 G24 - 0x58200020, // 007E LDCONST R8 K32 - 0x5C240200, // 007F MOVE R9 R1 - 0x5C280600, // 0080 MOVE R10 R3 - 0x5C2C0800, // 0081 MOVE R11 R4 - 0x7C1C0800, // 0082 CALL R7 4 - 0x7C140400, // 0083 CALL R5 2 - 0x80000000, // 0084 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_number -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_number, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(NUMBER), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20number), - /* K9 */ be_nested_str_weak(0), - }), - be_str_weak(expect_number), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000A, // 0004 JMPF R2 #0010 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0004, // 000A JMPF R2 #0010 - 0x88080305, // 000B GETMBR R2 R1 K5 - 0x8C0C0106, // 000C GETMET R3 R0 K6 - 0x7C0C0200, // 000D CALL R3 1 - 0x80040400, // 000E RET 1 R2 - 0x70020003, // 000F JMP #0014 - 0x8C080107, // 0010 GETMET R2 R0 K7 - 0x58100008, // 0011 LDCONST R4 K8 - 0x7C080400, // 0012 CALL R2 2 - 0x80061200, // 0013 RET 1 K9 - 0x80000000, // 0014 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_expression, /* 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[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(process_additive_expression), - }), - be_str_weak(process_expression), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x50140200, // 0002 LDBOOL R5 1 0 - 0x7C080600, // 0003 CALL R2 3 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_factory_function -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_factory_function, /* name */ - be_nested_proto( - 11, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(contains), - /* K2 */ be_nested_str_weak(animation), - /* K3 */ be_nested_str_weak(function), - /* K4 */ be_nested_str_weak(class), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(MockEngine), - }), - be_str_weak(_validate_factory_function), - &be_const_str_solidified, - ( &(const binstruction[59]) { /* code */ - 0xA8020032, // 0000 EXBLK 0 #0034 - 0xA40E0000, // 0001 IMPORT R3 K0 - 0x8C100701, // 0002 GETMET R4 R3 K1 - 0xB81A0400, // 0003 GETNGBL R6 K2 - 0x5C1C0200, // 0004 MOVE R7 R1 - 0x7C100600, // 0005 CALL R4 3 - 0x74120002, // 0006 JMPT R4 #000A - 0x50100000, // 0007 LDBOOL R4 0 0 - 0xA8040001, // 0008 EXBLK 1 1 - 0x80040800, // 0009 RET 1 R4 - 0xB8120400, // 000A GETNGBL R4 K2 - 0x88100801, // 000B GETMBR R4 R4 R1 - 0x60140004, // 000C GETGBL R5 G4 - 0x5C180800, // 000D MOVE R6 R4 - 0x7C140200, // 000E CALL R5 1 - 0x20180B03, // 000F NE R6 R5 K3 - 0x781A0004, // 0010 JMPF R6 #0016 - 0x20180B04, // 0011 NE R6 R5 K4 - 0x781A0002, // 0012 JMPF R6 #0016 - 0x50180000, // 0013 LDBOOL R6 0 0 - 0xA8040001, // 0014 EXBLK 1 1 - 0x80040C00, // 0015 RET 1 R6 - 0x4C180000, // 0016 LDNIL R6 - 0x1C180406, // 0017 EQ R6 R2 R6 - 0x781A0002, // 0018 JMPF R6 #001C - 0x50180200, // 0019 LDBOOL R6 1 0 - 0xA8040001, // 001A EXBLK 1 1 - 0x80040C00, // 001B RET 1 R6 - 0xB81A0A00, // 001C GETNGBL R6 K5 - 0x8C180D06, // 001D GETMET R6 R6 K6 - 0x7C180200, // 001E CALL R6 1 - 0xA802000A, // 001F EXBLK 0 #002B - 0x5C1C0800, // 0020 MOVE R7 R4 - 0x5C200C00, // 0021 MOVE R8 R6 - 0x7C1C0200, // 0022 CALL R7 1 - 0x6020000F, // 0023 GETGBL R8 G15 - 0x5C240E00, // 0024 MOVE R9 R7 - 0x5C280400, // 0025 MOVE R10 R2 - 0x7C200400, // 0026 CALL R8 2 - 0xA8040002, // 0027 EXBLK 1 2 - 0x80041000, // 0028 RET 1 R8 - 0xA8040001, // 0029 EXBLK 1 1 - 0x70020006, // 002A JMP #0032 - 0xAC1C0002, // 002B CATCH R7 0 2 - 0x70020003, // 002C JMP #0031 - 0x50240000, // 002D LDBOOL R9 0 0 - 0xA8040001, // 002E EXBLK 1 1 - 0x80041200, // 002F RET 1 R9 - 0x70020000, // 0030 JMP #0032 - 0xB0080000, // 0031 RAISE 2 R0 R0 - 0xA8040001, // 0032 EXBLK 1 1 - 0x70020005, // 0033 JMP #003A - 0xAC0C0002, // 0034 CATCH R3 0 2 - 0x70020002, // 0035 JMP #0039 - 0x50140000, // 0036 LDBOOL R5 0 0 - 0x80040A00, // 0037 RET 1 R5 - 0x70020000, // 0038 JMP #003A - 0xB0080000, // 0039 RAISE 2 R0 R0 - 0x80000000, // 003A RET 0 + ( &(const binstruction[63]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x280C0703, // 0005 GE R3 R3 K3 + 0x740E0012, // 0006 JMPT R3 #001A + 0x8C0C0501, // 0007 GETMET R3 R2 K1 + 0x5C140200, // 0008 MOVE R5 R1 + 0x58180004, // 0009 LDCONST R6 K4 + 0x7C0C0600, // 000A CALL R3 3 + 0x280C0703, // 000B GE R3 R3 K3 + 0x740E000C, // 000C JMPT R3 #001A + 0x8C0C0501, // 000D GETMET R3 R2 K1 + 0x5C140200, // 000E MOVE R5 R1 + 0x58180005, // 000F LDCONST R6 K5 + 0x7C0C0600, // 0010 CALL R3 3 + 0x280C0703, // 0011 GE R3 R3 K3 + 0x740E0006, // 0012 JMPT R3 #001A + 0x8C0C0501, // 0013 GETMET R3 R2 K1 + 0x5C140200, // 0014 MOVE R5 R1 + 0x58180006, // 0015 LDCONST R6 K6 + 0x7C0C0600, // 0016 CALL R3 3 + 0x280C0703, // 0017 GE R3 R3 K3 + 0x740E0000, // 0018 JMPT R3 #001A + 0x500C0001, // 0019 LDBOOL R3 0 1 + 0x500C0200, // 001A LDBOOL R3 1 0 + 0x50100000, // 001B LDBOOL R4 0 0 + 0x8C140501, // 001C GETMET R5 R2 K1 + 0x5C1C0200, // 001D MOVE R7 R1 + 0x58200007, // 001E LDCONST R8 K7 + 0x7C140600, // 001F CALL R5 3 + 0x24180B03, // 0020 GT R6 R5 K3 + 0x781A0017, // 0021 JMPF R6 #003A + 0x04180B08, // 0022 SUB R6 R5 K8 + 0x94180206, // 0023 GETIDX R6 R1 R6 + 0x8C1C0109, // 0024 GETMET R7 R0 K9 + 0x5C240C00, // 0025 MOVE R9 R6 + 0x7C1C0400, // 0026 CALL R7 2 + 0x781E0011, // 0027 JMPF R7 #003A + 0x041C0B08, // 0028 SUB R7 R5 K8 + 0x28200F03, // 0029 GE R8 R7 K3 + 0x78220005, // 002A JMPF R8 #0031 + 0x8C200109, // 002B GETMET R8 R0 K9 + 0x94280207, // 002C GETIDX R10 R1 R7 + 0x7C200400, // 002D CALL R8 2 + 0x78220001, // 002E JMPF R8 #0031 + 0x041C0F08, // 002F SUB R7 R7 K8 + 0x7001FFF7, // 0030 JMP #0029 + 0x001C0F08, // 0031 ADD R7 R7 K8 + 0x04200B08, // 0032 SUB R8 R5 K8 + 0x40200E08, // 0033 CONNECT R8 R7 R8 + 0x94200208, // 0034 GETIDX R8 R1 R8 + 0x8C24010A, // 0035 GETMET R9 R0 K10 + 0x5C2C1000, // 0036 MOVE R11 R8 + 0x7C240400, // 0037 CALL R9 2 + 0x74260000, // 0038 JMPT R9 #003A + 0x50100200, // 0039 LDBOOL R4 1 0 + 0x740E0001, // 003A JMPT R3 #003D + 0x74120000, // 003B JMPT R4 #003D + 0x50180001, // 003C LDBOOL R6 0 1 + 0x50180200, // 003D LDBOOL R6 1 0 + 0x80040C00, // 003E RET 1 R6 }) ) ); @@ -3693,157 +2567,9 @@ be_local_closure(class_SimpleDSLTranspiler_process_function_arguments_for_expres /******************************************************************** -** Solidified function: is_computed_expression_string +** Solidified function: expect_right_brace ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_computed_expression_string, /* name */ - be_nested_proto( - 12, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(_X20_X2B_X20), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(_X20_X2D_X20), - /* K5 */ be_nested_str_weak(_X20_X2A_X20), - /* K6 */ be_nested_str_weak(_X20_X2F_X20), - /* K7 */ be_nested_str_weak(_X28), - /* K8 */ be_const_int(1), - /* K9 */ be_nested_str_weak(is_identifier_char), - /* K10 */ be_nested_str_weak(_is_simple_function_call), - }), - be_str_weak(is_computed_expression_string), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x280C0703, // 0005 GE R3 R3 K3 - 0x740E0012, // 0006 JMPT R3 #001A - 0x8C0C0501, // 0007 GETMET R3 R2 K1 - 0x5C140200, // 0008 MOVE R5 R1 - 0x58180004, // 0009 LDCONST R6 K4 - 0x7C0C0600, // 000A CALL R3 3 - 0x280C0703, // 000B GE R3 R3 K3 - 0x740E000C, // 000C JMPT R3 #001A - 0x8C0C0501, // 000D GETMET R3 R2 K1 - 0x5C140200, // 000E MOVE R5 R1 - 0x58180005, // 000F LDCONST R6 K5 - 0x7C0C0600, // 0010 CALL R3 3 - 0x280C0703, // 0011 GE R3 R3 K3 - 0x740E0006, // 0012 JMPT R3 #001A - 0x8C0C0501, // 0013 GETMET R3 R2 K1 - 0x5C140200, // 0014 MOVE R5 R1 - 0x58180006, // 0015 LDCONST R6 K6 - 0x7C0C0600, // 0016 CALL R3 3 - 0x280C0703, // 0017 GE R3 R3 K3 - 0x740E0000, // 0018 JMPT R3 #001A - 0x500C0001, // 0019 LDBOOL R3 0 1 - 0x500C0200, // 001A LDBOOL R3 1 0 - 0x50100000, // 001B LDBOOL R4 0 0 - 0x8C140501, // 001C GETMET R5 R2 K1 - 0x5C1C0200, // 001D MOVE R7 R1 - 0x58200007, // 001E LDCONST R8 K7 - 0x7C140600, // 001F CALL R5 3 - 0x24180B03, // 0020 GT R6 R5 K3 - 0x781A0017, // 0021 JMPF R6 #003A - 0x04180B08, // 0022 SUB R6 R5 K8 - 0x94180206, // 0023 GETIDX R6 R1 R6 - 0x8C1C0109, // 0024 GETMET R7 R0 K9 - 0x5C240C00, // 0025 MOVE R9 R6 - 0x7C1C0400, // 0026 CALL R7 2 - 0x781E0011, // 0027 JMPF R7 #003A - 0x041C0B08, // 0028 SUB R7 R5 K8 - 0x28200F03, // 0029 GE R8 R7 K3 - 0x78220005, // 002A JMPF R8 #0031 - 0x8C200109, // 002B GETMET R8 R0 K9 - 0x94280207, // 002C GETIDX R10 R1 R7 - 0x7C200400, // 002D CALL R8 2 - 0x78220001, // 002E JMPF R8 #0031 - 0x041C0F08, // 002F SUB R7 R7 K8 - 0x7001FFF7, // 0030 JMP #0029 - 0x001C0F08, // 0031 ADD R7 R7 K8 - 0x04200B08, // 0032 SUB R8 R5 K8 - 0x40200E08, // 0033 CONNECT R8 R7 R8 - 0x94200208, // 0034 GETIDX R8 R1 R8 - 0x8C24010A, // 0035 GETMET R9 R0 K10 - 0x5C2C1000, // 0036 MOVE R11 R8 - 0x7C240400, // 0037 CALL R9 2 - 0x74260000, // 0038 JMPT R9 #003A - 0x50100200, // 0039 LDBOOL R4 1 0 - 0x740E0001, // 003A JMPT R3 #003D - 0x74120000, // 003B JMPT R4 #003D - 0x50180001, // 003C LDBOOL R6 0 1 - 0x50180200, // 003D LDBOOL R6 1 0 - 0x80040C00, // 003E RET 1 R6 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: collect_inline_comment -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(COMMENT), - /* K5 */ be_nested_str_weak(_X20_X20), - /* K6 */ be_nested_str_weak(value), - /* K7 */ be_nested_str_weak(next), - /* K8 */ be_nested_str_weak(), - }), - be_str_weak(collect_inline_comment), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000A, // 0004 JMPF R2 #0010 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0004, // 000A JMPF R2 #0010 - 0x88080306, // 000B GETMBR R2 R1 K6 - 0x000A0A02, // 000C ADD R2 K5 R2 - 0x8C0C0107, // 000D GETMET R3 R0 K7 - 0x7C0C0200, // 000E CALL R3 1 - 0x80040400, // 000F RET 1 R2 - 0x80061000, // 0010 RET 1 K8 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_left_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ be_nested_proto( 5, /* nstack */ 1, /* argc */ @@ -3858,12 +2584,12 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ /* K1 */ be_nested_str_weak(type), /* K2 */ be_nested_str_weak(animation_dsl), /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(LEFT_PAREN), + /* K4 */ be_nested_str_weak(RIGHT_BRACE), /* K5 */ be_nested_str_weak(next), /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X28_X27), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), }), - be_str_weak(expect_left_paren), + be_str_weak(expect_right_brace), &be_const_str_solidified, ( &(const binstruction[18]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 @@ -3890,6 +2616,80 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: expect_identifier +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_identifier, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(IDENTIFIER), + /* K5 */ be_nested_str_weak(COLOR), + /* K6 */ be_nested_str_weak(KEYWORD), + /* K7 */ be_nested_str_weak(can_use_as_identifier), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(error), + /* K11 */ be_nested_str_weak(Expected_X20identifier), + /* K12 */ be_nested_str_weak(unknown), + }), + be_str_weak(expect_identifier), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A001A, // 0004 JMPF R2 #0020 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A000F, // 000A JMPT R2 #001B + 0x88080301, // 000B GETMBR R2 R1 K1 + 0xB80E0400, // 000C GETNGBL R3 K2 + 0x880C0703, // 000D GETMBR R3 R3 K3 + 0x880C0705, // 000E GETMBR R3 R3 K5 + 0x1C080403, // 000F EQ R2 R2 R3 + 0x740A0009, // 0010 JMPT R2 #001B + 0x88080301, // 0011 GETMBR R2 R1 K1 + 0xB80E0400, // 0012 GETNGBL R3 K2 + 0x880C0703, // 0013 GETMBR R3 R3 K3 + 0x880C0706, // 0014 GETMBR R3 R3 K6 + 0x1C080403, // 0015 EQ R2 R2 R3 + 0x780A0008, // 0016 JMPF R2 #0020 + 0x8C080107, // 0017 GETMET R2 R0 K7 + 0x88100308, // 0018 GETMBR R4 R1 K8 + 0x7C080400, // 0019 CALL R2 2 + 0x780A0004, // 001A JMPF R2 #0020 + 0x88080308, // 001B GETMBR R2 R1 K8 + 0x8C0C0109, // 001C GETMET R3 R0 K9 + 0x7C0C0200, // 001D CALL R3 1 + 0x80040400, // 001E RET 1 R2 + 0x70020003, // 001F JMP #0024 + 0x8C08010A, // 0020 GETMET R2 R0 K10 + 0x5810000B, // 0021 LDCONST R4 K11 + 0x7C080400, // 0022 CALL R2 2 + 0x80061800, // 0023 RET 1 K12 + 0x80000000, // 0024 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: process_multiplicative_expression ********************************************************************/ @@ -3967,896 +2767,6 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression, /*******************************************************************/ -/******************************************************************** -** 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: generate_engine_start -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_engine_start, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(run_statements), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(name), - /* K3 */ be_nested_str_weak(comment), - /* K4 */ be_nested_str_weak(sequence_names), - /* K5 */ be_nested_str_weak(contains), - /* K6 */ be_nested_str_weak(add), - /* K7 */ be_nested_str_weak(engine_X2Eadd_sequence_manager_X28_X25s__X29_X25s), - /* K8 */ be_nested_str_weak(engine_X2Eadd_animation_X28_X25s__X29_X25s), - /* K9 */ be_nested_str_weak(stop_iteration), - /* K10 */ be_nested_str_weak(engine_X2Estart_X28_X29), - }), - be_str_weak(generate_engine_start), - &be_const_str_solidified, - ( &(const binstruction[42]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x1C040301, // 0003 EQ R1 R1 K1 - 0x78060000, // 0004 JMPF R1 #0006 - 0x80000200, // 0005 RET 0 - 0x60040010, // 0006 GETGBL R1 G16 - 0x88080100, // 0007 GETMBR R2 R0 K0 - 0x7C040200, // 0008 CALL R1 1 - 0xA8020018, // 0009 EXBLK 0 #0023 - 0x5C080200, // 000A MOVE R2 R1 - 0x7C080000, // 000B CALL R2 0 - 0x940C0502, // 000C GETIDX R3 R2 K2 - 0x94100503, // 000D GETIDX R4 R2 K3 - 0x88140104, // 000E GETMBR R5 R0 K4 - 0x8C140B05, // 000F GETMET R5 R5 K5 - 0x5C1C0600, // 0010 MOVE R7 R3 - 0x7C140400, // 0011 CALL R5 2 - 0x78160007, // 0012 JMPF R5 #001B - 0x8C140106, // 0013 GETMET R5 R0 K6 - 0x601C0018, // 0014 GETGBL R7 G24 - 0x58200007, // 0015 LDCONST R8 K7 - 0x5C240600, // 0016 MOVE R9 R3 - 0x5C280800, // 0017 MOVE R10 R4 - 0x7C1C0600, // 0018 CALL R7 3 - 0x7C140400, // 0019 CALL R5 2 - 0x70020006, // 001A JMP #0022 - 0x8C140106, // 001B GETMET R5 R0 K6 - 0x601C0018, // 001C GETGBL R7 G24 - 0x58200008, // 001D LDCONST R8 K8 - 0x5C240600, // 001E MOVE R9 R3 - 0x5C280800, // 001F MOVE R10 R4 - 0x7C1C0600, // 0020 CALL R7 3 - 0x7C140400, // 0021 CALL R5 2 - 0x7001FFE6, // 0022 JMP #000A - 0x58040009, // 0023 LDCONST R1 K9 - 0xAC040200, // 0024 CATCH R1 1 0 - 0xB0080000, // 0025 RAISE 2 R0 R0 - 0x8C040106, // 0026 GETMET R1 R0 K6 - 0x580C000A, // 0027 LDCONST R3 K10 - 0x7C040400, // 0028 CALL R1 2 - 0x80000000, // 0029 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_to_vrgb -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_to_vrgb, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(format), - /* K3 */ be_nested_str_weak(_X2502X), - /* K4 */ be_nested_str_weak(FFFFFF), - /* K5 */ be_nested_str_weak(startswith), - /* K6 */ be_nested_str_weak(0x), - /* K7 */ be_const_int(2), - }), - be_str_weak(convert_to_vrgb), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0xA40E0000, // 0000 IMPORT R3 K0 - 0x60100009, // 0001 GETGBL R4 G9 - 0x6014000A, // 0002 GETGBL R5 G10 - 0x5C180200, // 0003 MOVE R6 R1 - 0x7C140200, // 0004 CALL R5 1 - 0x7C100200, // 0005 CALL R4 1 - 0x14140901, // 0006 LT R5 R4 K1 - 0x78160001, // 0007 JMPF R5 #000A - 0x58100001, // 0008 LDCONST R4 K1 - 0x70020003, // 0009 JMP #000E - 0x541600FE, // 000A LDINT R5 255 - 0x24140805, // 000B GT R5 R4 R5 - 0x78160000, // 000C JMPF R5 #000E - 0x541200FE, // 000D LDINT R4 255 - 0x8C140702, // 000E GETMET R5 R3 K2 - 0x581C0003, // 000F LDCONST R7 K3 - 0x5C200800, // 0010 MOVE R8 R4 - 0x7C140600, // 0011 CALL R5 3 - 0x60180008, // 0012 GETGBL R6 G8 - 0x5C1C0400, // 0013 MOVE R7 R2 - 0x7C180200, // 0014 CALL R6 1 - 0x581C0004, // 0015 LDCONST R7 K4 - 0x8C200705, // 0016 GETMET R8 R3 K5 - 0x5C280C00, // 0017 MOVE R10 R6 - 0x582C0006, // 0018 LDCONST R11 K6 - 0x7C200600, // 0019 CALL R8 3 - 0x7822000A, // 001A JMPF R8 #0026 - 0x6020000C, // 001B GETGBL R8 G12 - 0x5C240C00, // 001C MOVE R9 R6 - 0x7C200200, // 001D CALL R8 1 - 0x54260009, // 001E LDINT R9 10 - 0x28201009, // 001F GE R8 R8 R9 - 0x78220004, // 0020 JMPF R8 #0026 - 0x54220003, // 0021 LDINT R8 4 - 0x54260008, // 0022 LDINT R9 9 - 0x40201009, // 0023 CONNECT R8 R8 R9 - 0x941C0C08, // 0024 GETIDX R7 R6 R8 - 0x7002000D, // 0025 JMP #0034 - 0x8C200705, // 0026 GETMET R8 R3 K5 - 0x5C280C00, // 0027 MOVE R10 R6 - 0x582C0006, // 0028 LDCONST R11 K6 - 0x7C200600, // 0029 CALL R8 3 - 0x78220008, // 002A JMPF R8 #0034 - 0x6020000C, // 002B GETGBL R8 G12 - 0x5C240C00, // 002C MOVE R9 R6 - 0x7C200200, // 002D CALL R8 1 - 0x54260007, // 002E LDINT R9 8 - 0x1C201009, // 002F EQ R8 R8 R9 - 0x78220002, // 0030 JMPF R8 #0034 - 0x54220006, // 0031 LDINT R8 7 - 0x40220E08, // 0032 CONNECT R8 K7 R8 - 0x941C0C08, // 0033 GETIDX R7 R6 R8 - 0x00200A07, // 0034 ADD R8 R5 R7 - 0x80041000, // 0035 RET 1 R8 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* name */ - be_nested_proto( - 10, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[22]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(IDENTIFIER), - /* K6 */ be_nested_str_weak(KEYWORD), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Expected_X20function_X20name), - /* K11 */ be_nested_str_weak(nil), - /* K12 */ be_nested_str_weak(is_math_method), - /* K13 */ be_nested_str_weak(process_function_arguments), - /* K14 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K15 */ be_nested_str_weak(animation), - /* K16 */ be_nested_str_weak(is_user_function), - /* K17 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K18 */ be_nested_str_weak(engine), - /* K19 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), - /* K20 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), - /* K21 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - }), - be_str_weak(process_function_call), - &be_const_str_solidified, - ( &(const binstruction[75]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x580C0001, // 0002 LDCONST R3 K1 - 0x4C100000, // 0003 LDNIL R4 - 0x20100404, // 0004 NE R4 R2 R4 - 0x7812000F, // 0005 JMPF R4 #0016 - 0x88100502, // 0006 GETMBR R4 R2 K2 - 0xB8160600, // 0007 GETNGBL R5 K3 - 0x88140B04, // 0008 GETMBR R5 R5 K4 - 0x88140B05, // 0009 GETMBR R5 R5 K5 - 0x1C100805, // 000A EQ R4 R4 R5 - 0x74120005, // 000B JMPT R4 #0012 - 0x88100502, // 000C GETMBR R4 R2 K2 - 0xB8160600, // 000D GETNGBL R5 K3 - 0x88140B04, // 000E GETMBR R5 R5 K4 - 0x88140B06, // 000F GETMBR R5 R5 K6 - 0x1C100805, // 0010 EQ R4 R4 R5 - 0x78120003, // 0011 JMPF R4 #0016 - 0x880C0507, // 0012 GETMBR R3 R2 K7 - 0x8C100108, // 0013 GETMET R4 R0 K8 - 0x7C100200, // 0014 CALL R4 1 - 0x70020003, // 0015 JMP #001A - 0x8C100109, // 0016 GETMET R4 R0 K9 - 0x5818000A, // 0017 LDCONST R6 K10 - 0x7C100400, // 0018 CALL R4 2 - 0x80061600, // 0019 RET 1 K11 - 0x8C10010C, // 001A GETMET R4 R0 K12 - 0x5C180600, // 001B MOVE R6 R3 - 0x7C100400, // 001C CALL R4 2 - 0x78120007, // 001D JMPF R4 #0026 - 0x8C10010D, // 001E GETMET R4 R0 K13 - 0x7C100200, // 001F CALL R4 1 - 0x60140018, // 0020 GETGBL R5 G24 - 0x5818000E, // 0021 LDCONST R6 K14 - 0x5C1C0600, // 0022 MOVE R7 R3 - 0x5C200800, // 0023 MOVE R8 R4 - 0x7C140600, // 0024 CALL R5 3 - 0x80040A00, // 0025 RET 1 R5 - 0x8C10010D, // 0026 GETMET R4 R0 K13 - 0x7C100200, // 0027 CALL R4 1 - 0xB8161E00, // 0028 GETNGBL R5 K15 - 0x8C140B10, // 0029 GETMET R5 R5 K16 - 0x5C1C0600, // 002A MOVE R7 R3 - 0x7C140400, // 002B CALL R5 2 - 0x7816000E, // 002C JMPF R5 #003C - 0x20140901, // 002D NE R5 R4 K1 - 0x78160004, // 002E JMPF R5 #0034 - 0x60140018, // 002F GETGBL R5 G24 - 0x58180011, // 0030 LDCONST R6 K17 - 0x5C1C0800, // 0031 MOVE R7 R4 - 0x7C140400, // 0032 CALL R5 2 - 0x70020000, // 0033 JMP #0035 - 0x58140012, // 0034 LDCONST R5 K18 - 0x60180018, // 0035 GETGBL R6 G24 - 0x581C0013, // 0036 LDCONST R7 K19 - 0x5C200600, // 0037 MOVE R8 R3 - 0x5C240A00, // 0038 MOVE R9 R5 - 0x7C180600, // 0039 CALL R6 3 - 0x80040C00, // 003A RET 1 R6 - 0x7002000D, // 003B JMP #004A - 0x20140901, // 003C NE R5 R4 K1 - 0x78160006, // 003D JMPF R5 #0045 - 0x60140018, // 003E GETGBL R5 G24 - 0x58180014, // 003F LDCONST R6 K20 - 0x5C1C0600, // 0040 MOVE R7 R3 - 0x5C200800, // 0041 MOVE R8 R4 - 0x7C140600, // 0042 CALL R5 3 - 0x80040A00, // 0043 RET 1 R5 - 0x70020004, // 0044 JMP #004A - 0x60140018, // 0045 GETGBL R5 G24 - 0x58180015, // 0046 LDCONST R6 K21 - 0x5C1C0600, // 0047 MOVE R7 R3 - 0x7C140400, // 0048 CALL R5 2 - 0x80040A00, // 0049 RET 1 R5 - 0x80000000, // 004A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_single_parameter -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_single_parameter, /* name */ - be_nested_proto( - 12, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(contains), - /* K2 */ be_nested_str_weak(_has_param), - /* K3 */ be_nested_str_weak(current), - /* K4 */ be_nested_str_weak(line), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Animation_X20_X27_X25s_X27_X20does_X20not_X20have_X20parameter_X20_X27_X25s_X27_X2E_X20Check_X20the_X20animation_X20documentation_X20for_X20valid_X20parameters_X2E), - }), - be_str_weak(_validate_single_parameter), - &be_const_str_solidified, - ( &(const binstruction[38]) { /* code */ - 0xA802001F, // 0000 EXBLK 0 #0021 - 0xA4120000, // 0001 IMPORT R4 K0 - 0x4C140000, // 0002 LDNIL R5 - 0x20140605, // 0003 NE R5 R3 R5 - 0x78160019, // 0004 JMPF R5 #001F - 0x8C140901, // 0005 GETMET R5 R4 K1 - 0x5C1C0600, // 0006 MOVE R7 R3 - 0x58200002, // 0007 LDCONST R8 K2 - 0x7C140600, // 0008 CALL R5 3 - 0x78160014, // 0009 JMPF R5 #001F - 0x8C140702, // 000A GETMET R5 R3 K2 - 0x5C1C0400, // 000B MOVE R7 R2 - 0x7C140400, // 000C CALL R5 2 - 0x74160010, // 000D JMPT R5 #001F - 0x8C140103, // 000E GETMET R5 R0 K3 - 0x7C140200, // 000F CALL R5 1 - 0x4C180000, // 0010 LDNIL R6 - 0x20140A06, // 0011 NE R5 R5 R6 - 0x78160003, // 0012 JMPF R5 #0017 - 0x8C140103, // 0013 GETMET R5 R0 K3 - 0x7C140200, // 0014 CALL R5 1 - 0x88140B04, // 0015 GETMBR R5 R5 K4 - 0x70020000, // 0016 JMP #0018 - 0x58140005, // 0017 LDCONST R5 K5 - 0x8C180106, // 0018 GETMET R6 R0 K6 - 0x60200018, // 0019 GETGBL R8 G24 - 0x58240007, // 001A LDCONST R9 K7 - 0x5C280200, // 001B MOVE R10 R1 - 0x5C2C0400, // 001C MOVE R11 R2 - 0x7C200600, // 001D CALL R8 3 - 0x7C180400, // 001E CALL R6 2 - 0xA8040001, // 001F EXBLK 1 1 - 0x70020003, // 0020 JMP #0025 - 0xAC100002, // 0021 CATCH R4 0 2 - 0x70020000, // 0022 JMP #0024 - 0x70020000, // 0023 JMP #0025 - 0xB0080000, // 0024 RAISE 2 R0 R0 - 0x80000000, // 0025 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_property_assignment -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* name */ - be_nested_proto( - 15, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[22]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_identifier), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(DOT), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(expect_assign), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(property), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(introspect), - /* K12 */ be_nested_str_weak(), - /* K13 */ be_nested_str_weak(contains), - /* K14 */ be_nested_str_weak(animation), - /* K15 */ be_nested_str_weak(animation_X2E_X25s), - /* K16 */ be_nested_str_weak(_X25s_), - /* K17 */ be_nested_str_weak(add), - /* K18 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K19 */ be_nested_str_weak(error), - /* K20 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), - /* K21 */ be_nested_str_weak(skip_statement), - }), - be_str_weak(process_property_assignment), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x4C0C0000, // 0004 LDNIL R3 - 0x20080403, // 0005 NE R2 R2 R3 - 0x780A002E, // 0006 JMPF R2 #0036 - 0x8C080101, // 0007 GETMET R2 R0 K1 - 0x7C080200, // 0008 CALL R2 1 - 0x88080502, // 0009 GETMBR R2 R2 K2 - 0xB80E0600, // 000A GETNGBL R3 K3 - 0x880C0704, // 000B GETMBR R3 R3 K4 - 0x880C0705, // 000C GETMBR R3 R3 K5 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x780A0026, // 000E JMPF R2 #0036 - 0x8C080106, // 000F GETMET R2 R0 K6 - 0x7C080200, // 0010 CALL R2 1 - 0x8C080100, // 0011 GETMET R2 R0 K0 - 0x7C080200, // 0012 CALL R2 1 - 0x8C0C0107, // 0013 GETMET R3 R0 K7 - 0x7C0C0200, // 0014 CALL R3 1 - 0x8C0C0108, // 0015 GETMET R3 R0 K8 - 0x58140009, // 0016 LDCONST R5 K9 - 0x7C0C0400, // 0017 CALL R3 2 - 0x8C10010A, // 0018 GETMET R4 R0 K10 - 0x7C100200, // 0019 CALL R4 1 - 0xA4161600, // 001A IMPORT R5 K11 - 0x5818000C, // 001B LDCONST R6 K12 - 0x8C1C0B0D, // 001C GETMET R7 R5 K13 - 0xB8261C00, // 001D GETNGBL R9 K14 - 0x5C280200, // 001E MOVE R10 R1 - 0x7C1C0600, // 001F CALL R7 3 - 0x781E0005, // 0020 JMPF R7 #0027 - 0x601C0018, // 0021 GETGBL R7 G24 - 0x5820000F, // 0022 LDCONST R8 K15 - 0x5C240200, // 0023 MOVE R9 R1 - 0x7C1C0400, // 0024 CALL R7 2 - 0x5C180E00, // 0025 MOVE R6 R7 - 0x70020004, // 0026 JMP #002C - 0x601C0018, // 0027 GETGBL R7 G24 - 0x58200010, // 0028 LDCONST R8 K16 - 0x5C240200, // 0029 MOVE R9 R1 - 0x7C1C0400, // 002A CALL R7 2 - 0x5C180E00, // 002B MOVE R6 R7 - 0x8C1C0111, // 002C GETMET R7 R0 K17 - 0x60240018, // 002D GETGBL R9 G24 - 0x58280012, // 002E LDCONST R10 K18 - 0x5C2C0C00, // 002F MOVE R11 R6 - 0x5C300400, // 0030 MOVE R12 R2 - 0x5C340600, // 0031 MOVE R13 R3 - 0x5C380800, // 0032 MOVE R14 R4 - 0x7C240A00, // 0033 CALL R9 5 - 0x7C1C0400, // 0034 CALL R7 2 - 0x70020007, // 0035 JMP #003E - 0x8C080113, // 0036 GETMET R2 R0 K19 - 0x60100018, // 0037 GETGBL R4 G24 - 0x58140014, // 0038 LDCONST R5 K20 - 0x5C180200, // 0039 MOVE R6 R1 - 0x7C100400, // 003A CALL R4 2 - 0x7C080400, // 003B CALL R2 2 - 0x8C080115, // 003C GETMET R2 R0 K21 - 0x7C080200, // 003D CALL R2 1 - 0x80000000, // 003E 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: current -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_current, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), - }), - be_str_weak(current), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x14040202, // 0004 LT R1 R1 R2 - 0x78060003, // 0005 JMPF R1 #000A - 0x88040101, // 0006 GETMBR R1 R0 K1 - 0x88080100, // 0007 GETMBR R2 R0 K0 - 0x94040202, // 0008 GETIDX R1 R1 R2 - 0x70020000, // 0009 JMP #000B - 0x4C040000, // 000A LDNIL R1 - 0x80040200, // 000B RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_bracket -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACKET), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), - }), - be_str_weak(expect_right_bracket), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_palette -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_palette, /* 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[37]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(palette), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_assign), - /* K6 */ be_nested_str_weak(expect_left_bracket), - /* K7 */ be_nested_str_weak(at_end), - /* K8 */ be_nested_str_weak(check_right_bracket), - /* K9 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K10 */ be_nested_str_weak(expect_left_paren), - /* K11 */ be_nested_str_weak(expect_number), - /* K12 */ be_nested_str_weak(expect_comma), - /* K13 */ be_nested_str_weak(process_value), - /* K14 */ be_nested_str_weak(color), - /* K15 */ be_nested_str_weak(expect_right_paren), - /* K16 */ be_nested_str_weak(convert_to_vrgb), - /* K17 */ be_nested_str_weak(push), - /* K18 */ be_nested_str_weak(_X22_X25s_X22), - /* K19 */ be_nested_str_weak(current), - /* K20 */ be_nested_str_weak(type), - /* K21 */ be_nested_str_weak(animation_dsl), - /* K22 */ be_nested_str_weak(Token), - /* K23 */ be_nested_str_weak(COMMENT), - /* K24 */ be_nested_str_weak(COMMA), - /* K25 */ be_nested_str_weak(NEWLINE), - /* K26 */ be_nested_str_weak(error), - /* K27 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20palette_X20definition), - /* K28 */ be_nested_str_weak(expect_right_bracket), - /* K29 */ be_nested_str_weak(collect_inline_comment), - /* K30 */ be_nested_str_weak(), - /* K31 */ be_const_int(0), - /* K32 */ be_const_int(1), - /* K33 */ be_nested_str_weak(_X20), - /* K34 */ be_nested_str_weak(stop_iteration), - /* K35 */ be_nested_str_weak(add), - /* K36 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20bytes_X28_X25s_X29_X25s), - }), - be_str_weak(process_palette), - &be_const_str_solidified, - ( &(const binstruction[147]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x7C080200, // 000F CALL R2 1 - 0x60080012, // 0010 GETGBL R2 G18 - 0x7C080000, // 0011 CALL R2 0 - 0x8C0C0107, // 0012 GETMET R3 R0 K7 - 0x7C0C0200, // 0013 CALL R3 1 - 0x740E005C, // 0014 JMPT R3 #0072 - 0x8C0C0108, // 0015 GETMET R3 R0 K8 - 0x7C0C0200, // 0016 CALL R3 1 - 0x740E0059, // 0017 JMPT R3 #0072 - 0x8C0C0109, // 0018 GETMET R3 R0 K9 - 0x7C0C0200, // 0019 CALL R3 1 - 0x8C0C0108, // 001A GETMET R3 R0 K8 - 0x7C0C0200, // 001B CALL R3 1 - 0x780E0000, // 001C JMPF R3 #001E - 0x70020053, // 001D JMP #0072 - 0x8C0C010A, // 001E GETMET R3 R0 K10 - 0x7C0C0200, // 001F CALL R3 1 - 0x8C0C010B, // 0020 GETMET R3 R0 K11 - 0x7C0C0200, // 0021 CALL R3 1 - 0x8C10010C, // 0022 GETMET R4 R0 K12 - 0x7C100200, // 0023 CALL R4 1 - 0x8C10010D, // 0024 GETMET R4 R0 K13 - 0x5818000E, // 0025 LDCONST R6 K14 - 0x7C100400, // 0026 CALL R4 2 - 0x8C14010F, // 0027 GETMET R5 R0 K15 - 0x7C140200, // 0028 CALL R5 1 - 0x8C140110, // 0029 GETMET R5 R0 K16 - 0x5C1C0600, // 002A MOVE R7 R3 - 0x5C200800, // 002B MOVE R8 R4 - 0x7C140600, // 002C CALL R5 3 - 0x8C180511, // 002D GETMET R6 R2 K17 - 0x60200018, // 002E GETGBL R8 G24 - 0x58240012, // 002F LDCONST R9 K18 - 0x5C280A00, // 0030 MOVE R10 R5 - 0x7C200400, // 0031 CALL R8 2 - 0x7C180400, // 0032 CALL R6 2 - 0x8C180107, // 0033 GETMET R6 R0 K7 - 0x7C180200, // 0034 CALL R6 1 - 0x741A000F, // 0035 JMPT R6 #0046 - 0x8C180113, // 0036 GETMET R6 R0 K19 - 0x7C180200, // 0037 CALL R6 1 - 0x4C1C0000, // 0038 LDNIL R7 - 0x201C0C07, // 0039 NE R7 R6 R7 - 0x781E0008, // 003A JMPF R7 #0044 - 0x881C0D14, // 003B GETMBR R7 R6 K20 - 0xB8222A00, // 003C GETNGBL R8 K21 - 0x88201116, // 003D GETMBR R8 R8 K22 - 0x88201117, // 003E GETMBR R8 R8 K23 - 0x1C1C0E08, // 003F EQ R7 R7 R8 - 0x781E0002, // 0040 JMPF R7 #0044 - 0x8C1C0100, // 0041 GETMET R7 R0 K0 - 0x7C1C0200, // 0042 CALL R7 1 - 0x70020000, // 0043 JMP #0045 - 0x70020000, // 0044 JMP #0046 - 0x7001FFEC, // 0045 JMP #0033 - 0x8C180113, // 0046 GETMET R6 R0 K19 - 0x7C180200, // 0047 CALL R6 1 - 0x4C1C0000, // 0048 LDNIL R7 - 0x20180C07, // 0049 NE R6 R6 R7 - 0x781A000C, // 004A JMPF R6 #0058 - 0x8C180113, // 004B GETMET R6 R0 K19 - 0x7C180200, // 004C CALL R6 1 - 0x88180D14, // 004D GETMBR R6 R6 K20 - 0xB81E2A00, // 004E GETNGBL R7 K21 - 0x881C0F16, // 004F GETMBR R7 R7 K22 - 0x881C0F18, // 0050 GETMBR R7 R7 K24 - 0x1C180C07, // 0051 EQ R6 R6 R7 - 0x781A0004, // 0052 JMPF R6 #0058 - 0x8C180100, // 0053 GETMET R6 R0 K0 - 0x7C180200, // 0054 CALL R6 1 - 0x8C180109, // 0055 GETMET R6 R0 K9 - 0x7C180200, // 0056 CALL R6 1 - 0x70020018, // 0057 JMP #0071 - 0x8C180113, // 0058 GETMET R6 R0 K19 - 0x7C180200, // 0059 CALL R6 1 - 0x4C1C0000, // 005A LDNIL R7 - 0x20180C07, // 005B NE R6 R6 R7 - 0x781A000C, // 005C JMPF R6 #006A - 0x8C180113, // 005D GETMET R6 R0 K19 - 0x7C180200, // 005E CALL R6 1 - 0x88180D14, // 005F GETMBR R6 R6 K20 - 0xB81E2A00, // 0060 GETNGBL R7 K21 - 0x881C0F16, // 0061 GETMBR R7 R7 K22 - 0x881C0F19, // 0062 GETMBR R7 R7 K25 - 0x1C180C07, // 0063 EQ R6 R6 R7 - 0x781A0004, // 0064 JMPF R6 #006A - 0x8C180100, // 0065 GETMET R6 R0 K0 - 0x7C180200, // 0066 CALL R6 1 - 0x8C180109, // 0067 GETMET R6 R0 K9 - 0x7C180200, // 0068 CALL R6 1 - 0x70020006, // 0069 JMP #0071 - 0x8C180108, // 006A GETMET R6 R0 K8 - 0x7C180200, // 006B CALL R6 1 - 0x741A0003, // 006C JMPT R6 #0071 - 0x8C18011A, // 006D GETMET R6 R0 K26 - 0x5820001B, // 006E LDCONST R8 K27 - 0x7C180400, // 006F CALL R6 2 - 0x70020000, // 0070 JMP #0072 - 0x7001FF9F, // 0071 JMP #0012 - 0x8C0C011C, // 0072 GETMET R3 R0 K28 - 0x7C0C0200, // 0073 CALL R3 1 - 0x8C0C011D, // 0074 GETMET R3 R0 K29 - 0x7C0C0200, // 0075 CALL R3 1 - 0x5810001E, // 0076 LDCONST R4 K30 - 0x60140010, // 0077 GETGBL R5 G16 - 0x6018000C, // 0078 GETGBL R6 G12 - 0x5C1C0400, // 0079 MOVE R7 R2 - 0x7C180200, // 007A CALL R6 1 - 0x04180D20, // 007B SUB R6 R6 K32 - 0x401A3E06, // 007C CONNECT R6 K31 R6 - 0x7C140200, // 007D CALL R5 1 - 0xA8020007, // 007E EXBLK 0 #0087 - 0x5C180A00, // 007F MOVE R6 R5 - 0x7C180000, // 0080 CALL R6 0 - 0x241C0D1F, // 0081 GT R7 R6 K31 - 0x781E0000, // 0082 JMPF R7 #0084 - 0x00100921, // 0083 ADD R4 R4 K33 - 0x941C0406, // 0084 GETIDX R7 R2 R6 - 0x00100807, // 0085 ADD R4 R4 R7 - 0x7001FFF7, // 0086 JMP #007F - 0x58140022, // 0087 LDCONST R5 K34 - 0xAC140200, // 0088 CATCH R5 1 0 - 0xB0080000, // 0089 RAISE 2 R0 R0 - 0x8C140123, // 008A GETMET R5 R0 K35 - 0x601C0018, // 008B GETGBL R7 G24 - 0x58200024, // 008C LDCONST R8 K36 - 0x5C240200, // 008D MOVE R9 R1 - 0x5C280800, // 008E MOVE R10 R4 - 0x5C2C0600, // 008F MOVE R11 R3 - 0x7C1C0800, // 0090 CALL R7 4 - 0x7C140400, // 0091 CALL R5 2 - 0x80000000, // 0092 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_whitespace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_whitespace, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(NEWLINE), - /* K6 */ be_nested_str_weak(COMMENT), - /* K7 */ be_nested_str_weak(next), - }), - be_str_weak(skip_whitespace), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060015, // 0002 JMPT R1 #0019 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x4C080000, // 0005 LDNIL R2 - 0x20080202, // 0006 NE R2 R1 R2 - 0x780A000E, // 0007 JMPF R2 #0017 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0xB80E0600, // 0009 GETNGBL R3 K3 - 0x880C0704, // 000A GETMBR R3 R3 K4 - 0x880C0705, // 000B GETMBR R3 R3 K5 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x740A0005, // 000D JMPT R2 #0014 - 0x88080302, // 000E GETMBR R2 R1 K2 - 0xB80E0600, // 000F GETNGBL R3 K3 - 0x880C0704, // 0010 GETMBR R3 R3 K4 - 0x880C0706, // 0011 GETMBR R3 R3 K6 - 0x1C080403, // 0012 EQ R2 R2 R3 - 0x780A0002, // 0013 JMPF R2 #0017 - 0x8C080107, // 0014 GETMET R2 R0 K7 - 0x7C080200, // 0015 CALL R2 1 - 0x70020000, // 0016 JMP #0018 - 0x70020000, // 0017 JMP #0019 - 0x7001FFE6, // 0018 JMP #0000 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: _process_named_arguments_for_color_provider ********************************************************************/ @@ -4888,11 +2798,11 @@ be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_pr /******************************************************************** -** Solidified function: process_array_literal +** Solidified function: expect_colon ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_colon, /* name */ be_nested_proto( - 6, /* nstack */ + 5, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -4900,96 +2810,37 @@ be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[21]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_bracket), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_bracket), - /* K3 */ be_nested_str_weak(process_value), - /* K4 */ be_nested_str_weak(array_element), - /* K5 */ be_nested_str_weak(push), - /* K6 */ be_nested_str_weak(current), - /* K7 */ be_nested_str_weak(type), - /* K8 */ be_nested_str_weak(animation_dsl), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(COMMA), - /* K11 */ be_nested_str_weak(next), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), - /* K14 */ be_nested_str_weak(expect_right_bracket), - /* K15 */ be_nested_str_weak(_X5B), - /* K16 */ be_const_int(0), - /* K17 */ be_const_int(1), - /* K18 */ be_nested_str_weak(_X2C_X20), - /* K19 */ be_nested_str_weak(stop_iteration), - /* K20 */ be_nested_str_weak(_X5D), + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(COLON), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), }), - be_str_weak(process_array_literal), + be_str_weak(expect_colon), &be_const_str_solidified, - ( &(const binstruction[64]) { /* code */ + ( &(const binstruction[18]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x60040012, // 0002 GETGBL R1 G18 - 0x7C040000, // 0003 CALL R1 0 - 0x8C080101, // 0004 GETMET R2 R0 K1 - 0x7C080200, // 0005 CALL R2 1 - 0x740A0020, // 0006 JMPT R2 #0028 - 0x8C080102, // 0007 GETMET R2 R0 K2 - 0x7C080200, // 0008 CALL R2 1 - 0x740A001D, // 0009 JMPT R2 #0028 - 0x8C080103, // 000A GETMET R2 R0 K3 - 0x58100004, // 000B LDCONST R4 K4 - 0x7C080400, // 000C CALL R2 2 - 0x8C0C0305, // 000D GETMET R3 R1 K5 - 0x5C140400, // 000E MOVE R5 R2 - 0x7C0C0400, // 000F CALL R3 2 - 0x8C0C0106, // 0010 GETMET R3 R0 K6 - 0x7C0C0200, // 0011 CALL R3 1 - 0x4C100000, // 0012 LDNIL R4 - 0x200C0604, // 0013 NE R3 R3 R4 - 0x780E000A, // 0014 JMPF R3 #0020 - 0x8C0C0106, // 0015 GETMET R3 R0 K6 - 0x7C0C0200, // 0016 CALL R3 1 - 0x880C0707, // 0017 GETMBR R3 R3 K7 - 0xB8121000, // 0018 GETNGBL R4 K8 - 0x88100909, // 0019 GETMBR R4 R4 K9 - 0x8810090A, // 001A GETMBR R4 R4 K10 - 0x1C0C0604, // 001B EQ R3 R3 R4 - 0x780E0002, // 001C JMPF R3 #0020 - 0x8C0C010B, // 001D GETMET R3 R0 K11 - 0x7C0C0200, // 001E CALL R3 1 - 0x70020006, // 001F JMP #0027 - 0x8C0C0102, // 0020 GETMET R3 R0 K2 - 0x7C0C0200, // 0021 CALL R3 1 - 0x740E0003, // 0022 JMPT R3 #0027 - 0x8C0C010C, // 0023 GETMET R3 R0 K12 - 0x5814000D, // 0024 LDCONST R5 K13 - 0x7C0C0400, // 0025 CALL R3 2 - 0x70020000, // 0026 JMP #0028 - 0x7001FFDB, // 0027 JMP #0004 - 0x8C08010E, // 0028 GETMET R2 R0 K14 - 0x7C080200, // 0029 CALL R2 1 - 0x5808000F, // 002A LDCONST R2 K15 - 0x600C0010, // 002B GETGBL R3 G16 - 0x6010000C, // 002C GETGBL R4 G12 - 0x5C140200, // 002D MOVE R5 R1 - 0x7C100200, // 002E CALL R4 1 - 0x04100911, // 002F SUB R4 R4 K17 - 0x40122004, // 0030 CONNECT R4 K16 R4 - 0x7C0C0200, // 0031 CALL R3 1 - 0xA8020007, // 0032 EXBLK 0 #003B - 0x5C100600, // 0033 MOVE R4 R3 - 0x7C100000, // 0034 CALL R4 0 - 0x24140910, // 0035 GT R5 R4 K16 - 0x78160000, // 0036 JMPF R5 #0038 - 0x00080512, // 0037 ADD R2 R2 K18 - 0x94140204, // 0038 GETIDX R5 R1 R4 - 0x00080405, // 0039 ADD R2 R2 R5 - 0x7001FFF7, // 003A JMP #0033 - 0x580C0013, // 003B LDCONST R3 K19 - 0xAC0C0200, // 003C CATCH R3 1 0 - 0xB0080000, // 003D RAISE 2 R0 R0 - 0x00080514, // 003E ADD R2 R2 K20 - 0x80040400, // 003F RET 1 R2 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 }) ) ); @@ -4997,9 +2848,82 @@ be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ /******************************************************************** -** Solidified function: _is_simple_function_call +** Solidified function: process_multiplicative_expression_raw ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__is_simple_function_call, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(process_unary_expression_raw), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(MULTIPLY), + /* K7 */ be_nested_str_weak(DIVIDE), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + }), + be_str_weak(process_multiplicative_expression_raw), + &be_const_str_solidified, + ( &(const binstruction[38]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x740A001F, // 0004 JMPT R2 #0025 + 0x8C080102, // 0005 GETMET R2 R0 K2 + 0x7C080200, // 0006 CALL R2 1 + 0x4C0C0000, // 0007 LDNIL R3 + 0x200C0403, // 0008 NE R3 R2 R3 + 0x780E0018, // 0009 JMPF R3 #0023 + 0x880C0503, // 000A GETMBR R3 R2 K3 + 0xB8120800, // 000B GETNGBL R4 K4 + 0x88100905, // 000C GETMBR R4 R4 K5 + 0x88100906, // 000D GETMBR R4 R4 K6 + 0x1C0C0604, // 000E EQ R3 R3 R4 + 0x740E0005, // 000F JMPT R3 #0016 + 0x880C0503, // 0010 GETMBR R3 R2 K3 + 0xB8120800, // 0011 GETNGBL R4 K4 + 0x88100905, // 0012 GETMBR R4 R4 K5 + 0x88100907, // 0013 GETMBR R4 R4 K7 + 0x1C0C0604, // 0014 EQ R3 R3 R4 + 0x780E000C, // 0015 JMPF R3 #0023 + 0x880C0508, // 0016 GETMBR R3 R2 K8 + 0x8C100109, // 0017 GETMET R4 R0 K9 + 0x7C100200, // 0018 CALL R4 1 + 0x8C100100, // 0019 GETMET R4 R0 K0 + 0x7C100200, // 001A CALL R4 1 + 0x60140018, // 001B GETGBL R5 G24 + 0x5818000A, // 001C LDCONST R6 K10 + 0x5C1C0200, // 001D MOVE R7 R1 + 0x5C200600, // 001E MOVE R8 R3 + 0x5C240800, // 001F MOVE R9 R4 + 0x7C140800, // 0020 CALL R5 4 + 0x5C040A00, // 0021 MOVE R1 R5 + 0x70020000, // 0022 JMP #0024 + 0x70020000, // 0023 JMP #0025 + 0x7001FFDC, // 0024 JMP #0002 + 0x80040200, // 0025 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_named_color_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ be_nested_proto( 6, /* nstack */ 2, /* argc */ @@ -5009,35 +2933,102 @@ be_local_closure(class_SimpleDSLTranspiler__is_simple_function_call, /* name * 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(strip_length), - /* K1 */ be_nested_str_weak(static_value), - /* K2 */ be_nested_str_weak(stop_iteration), + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(SimpleDSLTranspiler), + /* K2 */ be_nested_str_weak(named_colors), + /* K3 */ be_nested_str_weak(find), + /* K4 */ be_nested_str_weak(0xFFFFFFFF), }), - be_str_weak(_is_simple_function_call), + be_str_weak(get_named_color_value), &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x400C0500, // 0002 CONNECT R3 R2 K0 - 0x400C0501, // 0003 CONNECT R3 R2 K1 - 0x600C0010, // 0004 GETGBL R3 G16 - 0x5C100400, // 0005 MOVE R4 R2 - 0x7C0C0200, // 0006 CALL R3 1 - 0xA8020007, // 0007 EXBLK 0 #0010 - 0x5C100600, // 0008 MOVE R4 R3 - 0x7C100000, // 0009 CALL R4 0 - 0x1C140204, // 000A EQ R5 R1 R4 - 0x78160002, // 000B JMPF R5 #000F - 0x50140200, // 000C LDBOOL R5 1 0 - 0xA8040001, // 000D EXBLK 1 1 - 0x80040A00, // 000E RET 1 R5 - 0x7001FFF7, // 000F JMP #0008 - 0x580C0002, // 0010 LDCONST R3 K2 - 0xAC0C0200, // 0011 CATCH R3 1 0 - 0xB0080000, // 0012 RAISE 2 R0 R0 - 0x500C0000, // 0013 LDBOOL R3 0 0 - 0x80040600, // 0014 RET 1 R3 + ( &(const binstruction[ 8]) { /* code */ + 0xB80A0000, // 0000 GETNGBL R2 K0 + 0x88080501, // 0001 GETMBR R2 R2 K1 + 0x88080502, // 0002 GETMBR R2 R2 K2 + 0x8C080503, // 0003 GETMET R2 R2 K3 + 0x5C100200, // 0004 MOVE R4 R1 + 0x58140004, // 0005 LDCONST R5 K4 + 0x7C080600, // 0006 CALL R2 3 + 0x80040400, // 0007 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_expression_argument +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_expression_argument, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(process_additive_expression_raw), + }), + be_str_weak(process_expression_argument), + &be_const_str_solidified, + ( &(const binstruction[ 3]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x80040200, // 0002 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_assign +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(ASSIGN), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), + }), + be_str_weak(expect_assign), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 }) ) ); @@ -5121,11 +3112,11 @@ be_local_closure(class_SimpleDSLTranspiler_skip_function_arguments, /* name */ /******************************************************************** -** Solidified function: expect_assign +** Solidified function: skip_whitespace ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ +be_local_closure(class_SimpleDSLTranspiler_skip_whitespace, /* name */ be_nested_proto( - 5, /* nstack */ + 4, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -5134,36 +3125,44 @@ be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(ASSIGN), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(NEWLINE), + /* K6 */ be_nested_str_weak(COMMENT), + /* K7 */ be_nested_str_weak(next), }), - be_str_weak(expect_assign), + be_str_weak(skip_whitespace), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ + ( &(const binstruction[26]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 + 0x74060015, // 0002 JMPT R1 #0019 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x20080202, // 0006 NE R2 R1 R2 + 0x780A000E, // 0007 JMPF R2 #0017 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0xB80E0600, // 0009 GETNGBL R3 K3 + 0x880C0704, // 000A GETMBR R3 R3 K4 + 0x880C0705, // 000B GETMBR R3 R3 K5 + 0x1C080403, // 000C EQ R2 R2 R3 + 0x740A0005, // 000D JMPT R2 #0014 + 0x88080302, // 000E GETMBR R2 R1 K2 + 0xB80E0600, // 000F GETNGBL R3 K3 + 0x880C0704, // 0010 GETMBR R3 R3 K4 + 0x880C0706, // 0011 GETMBR R3 R3 K6 + 0x1C080403, // 0012 EQ R2 R2 R3 + 0x780A0002, // 0013 JMPF R2 #0017 + 0x8C080107, // 0014 GETMET R2 R0 K7 + 0x7C080200, // 0015 CALL R2 1 + 0x70020000, // 0016 JMP #0018 + 0x70020000, // 0017 JMP #0019 + 0x7001FFE6, // 0018 JMP #0000 + 0x80000000, // 0019 RET 0 }) ) ); @@ -5171,139 +3170,11 @@ be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ /******************************************************************** -** Solidified function: _validate_color_provider_factory_exists +** Solidified function: expect_number ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_number, /* name */ be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_validate_factory_function), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(color_provider), - }), - be_str_weak(_validate_color_provider_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0xB8160200, // 0002 GETNGBL R5 K1 - 0x88140B02, // 0003 GETMBR R5 R5 K2 - 0x7C080600, // 0004 CALL R2 3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_additive_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(process_multiplicative_expression), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(animation_dsl), - /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(PLUS), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - /* K11 */ be_nested_str_weak(is_computed_expression_string), - /* K12 */ be_nested_str_weak(is_anonymous_function), - /* K13 */ be_nested_str_weak(create_computation_closure_from_string), - }), - be_str_weak(process_additive_expression), - &be_const_str_solidified, - ( &(const binstruction[57]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C0C0600, // 0003 CALL R3 3 - 0x8C100101, // 0004 GETMET R4 R0 K1 - 0x7C100200, // 0005 CALL R4 1 - 0x74120021, // 0006 JMPT R4 #0029 - 0x8C100102, // 0007 GETMET R4 R0 K2 - 0x7C100200, // 0008 CALL R4 1 - 0x4C140000, // 0009 LDNIL R5 - 0x20140805, // 000A NE R5 R4 R5 - 0x7816001A, // 000B JMPF R5 #0027 - 0x88140903, // 000C GETMBR R5 R4 K3 - 0xB81A0800, // 000D GETNGBL R6 K4 - 0x88180D05, // 000E GETMBR R6 R6 K5 - 0x88180D06, // 000F GETMBR R6 R6 K6 - 0x1C140A06, // 0010 EQ R5 R5 R6 - 0x74160005, // 0011 JMPT R5 #0018 - 0x88140903, // 0012 GETMBR R5 R4 K3 - 0xB81A0800, // 0013 GETNGBL R6 K4 - 0x88180D05, // 0014 GETMBR R6 R6 K5 - 0x88180D07, // 0015 GETMBR R6 R6 K7 - 0x1C140A06, // 0016 EQ R5 R5 R6 - 0x7816000E, // 0017 JMPF R5 #0027 - 0x88140908, // 0018 GETMBR R5 R4 K8 - 0x8C180109, // 0019 GETMET R6 R0 K9 - 0x7C180200, // 001A CALL R6 1 - 0x8C180100, // 001B GETMET R6 R0 K0 - 0x5C200200, // 001C MOVE R8 R1 - 0x50240000, // 001D LDBOOL R9 0 0 - 0x7C180600, // 001E CALL R6 3 - 0x601C0018, // 001F GETGBL R7 G24 - 0x5820000A, // 0020 LDCONST R8 K10 - 0x5C240600, // 0021 MOVE R9 R3 - 0x5C280A00, // 0022 MOVE R10 R5 - 0x5C2C0C00, // 0023 MOVE R11 R6 - 0x7C1C0800, // 0024 CALL R7 4 - 0x5C0C0E00, // 0025 MOVE R3 R7 - 0x70020000, // 0026 JMP #0028 - 0x70020000, // 0027 JMP #0029 - 0x7001FFDA, // 0028 JMP #0004 - 0x780A000C, // 0029 JMPF R2 #0037 - 0x8C10010B, // 002A GETMET R4 R0 K11 - 0x5C180600, // 002B MOVE R6 R3 - 0x7C100400, // 002C CALL R4 2 - 0x78120008, // 002D JMPF R4 #0037 - 0x8C10010C, // 002E GETMET R4 R0 K12 - 0x5C180600, // 002F MOVE R6 R3 - 0x7C100400, // 0030 CALL R4 2 - 0x74120004, // 0031 JMPT R4 #0037 - 0x8C10010D, // 0032 GETMET R4 R0 K13 - 0x5C180600, // 0033 MOVE R6 R3 - 0x7C100400, // 0034 CALL R4 2 - 0x80040800, // 0035 RET 1 R4 - 0x70020000, // 0036 JMP #0038 - 0x80040600, // 0037 RET 1 R3 - 0x80000000, // 0038 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_set -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ - be_nested_proto( - 11, /* nstack */ + 5, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -5312,2224 +3183,41 @@ be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(variable), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_assign), - /* K6 */ be_nested_str_weak(process_value), - /* K7 */ be_nested_str_weak(collect_inline_comment), - /* K8 */ be_nested_str_weak(add), - /* K9 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - }), - be_str_weak(process_set), - &be_const_str_solidified, - ( &(const binstruction[28]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100003, // 000F LDCONST R4 K3 - 0x7C080400, // 0010 CALL R2 2 - 0x8C0C0107, // 0011 GETMET R3 R0 K7 - 0x7C0C0200, // 0012 CALL R3 1 - 0x8C100108, // 0013 GETMET R4 R0 K8 - 0x60180018, // 0014 GETGBL R6 G24 - 0x581C0009, // 0015 LDCONST R7 K9 - 0x5C200200, // 0016 MOVE R8 R1 - 0x5C240400, // 0017 MOVE R9 R2 - 0x5C280600, // 0018 MOVE R10 R3 - 0x7C180800, // 0019 CALL R6 4 - 0x7C100400, // 001A CALL R4 2 - 0x80000000, // 001B 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(pos), - /* K1 */ be_const_int(1), - /* K2 */ be_nested_str_weak(tokens), - }), - be_str_weak(peek), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x00040301, // 0001 ADD R1 R1 K1 - 0x6008000C, // 0002 GETGBL R2 G12 - 0x880C0102, // 0003 GETMBR R3 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x14040202, // 0005 LT R1 R1 R2 - 0x78060004, // 0006 JMPF R1 #000C - 0x88040100, // 0007 GETMBR R1 R0 K0 - 0x00040301, // 0008 ADD R1 R1 K1 - 0x88080102, // 0009 GETMBR R2 R0 K2 - 0x94040401, // 000A GETIDX R1 R2 R1 - 0x70020000, // 000B JMP #000D - 0x4C040000, // 000C LDNIL R1 - 0x80040200, // 000D RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_statement, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[34]) { /* constants */ /* K0 */ be_nested_str_weak(current), /* K1 */ be_nested_str_weak(type), /* K2 */ be_nested_str_weak(animation_dsl), /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(EOF), - /* K5 */ be_nested_str_weak(COMMENT), - /* K6 */ be_nested_str_weak(add), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(NEWLINE), - /* K10 */ be_nested_str_weak(first_statement), - /* K11 */ be_nested_str_weak(KEYWORD), - /* K12 */ be_nested_str_weak(IDENTIFIER), - /* K13 */ be_nested_str_weak(strip), - /* K14 */ be_nested_str_weak(error), - /* K15 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), - /* K16 */ be_nested_str_weak(skip_statement), - /* K17 */ be_nested_str_weak(strip_initialized), - /* K18 */ be_nested_str_weak(generate_default_strip_initialization), - /* K19 */ be_nested_str_weak(color), - /* K20 */ be_nested_str_weak(process_color), - /* K21 */ be_nested_str_weak(palette), - /* K22 */ be_nested_str_weak(process_palette), - /* K23 */ be_nested_str_weak(animation), - /* K24 */ be_nested_str_weak(process_animation), - /* K25 */ be_nested_str_weak(set), - /* K26 */ be_nested_str_weak(process_set), - /* K27 */ be_nested_str_weak(sequence), - /* K28 */ be_nested_str_weak(process_sequence), - /* K29 */ be_nested_str_weak(run), - /* K30 */ be_nested_str_weak(process_run), - /* K31 */ be_nested_str_weak(on), - /* K32 */ be_nested_str_weak(process_event_handler), - /* K33 */ be_nested_str_weak(process_property_assignment), - }), - be_str_weak(process_statement), - &be_const_str_solidified, - ( &(const binstruction[129]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x740A0005, // 0004 JMPT R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0000, // 000A JMPF R2 #000C - 0x80000400, // 000B RET 0 - 0x88080301, // 000C GETMBR R2 R1 K1 - 0xB80E0400, // 000D GETNGBL R3 K2 - 0x880C0703, // 000E GETMBR R3 R3 K3 - 0x880C0705, // 000F GETMBR R3 R3 K5 - 0x1C080403, // 0010 EQ R2 R2 R3 - 0x780A0005, // 0011 JMPF R2 #0018 - 0x8C080106, // 0012 GETMET R2 R0 K6 - 0x88100307, // 0013 GETMBR R4 R1 K7 - 0x7C080400, // 0014 CALL R2 2 - 0x8C080108, // 0015 GETMET R2 R0 K8 - 0x7C080200, // 0016 CALL R2 1 - 0x80000400, // 0017 RET 0 - 0x88080301, // 0018 GETMBR R2 R1 K1 - 0xB80E0400, // 0019 GETNGBL R3 K2 - 0x880C0703, // 001A GETMBR R3 R3 K3 - 0x880C0709, // 001B GETMBR R3 R3 K9 - 0x1C080403, // 001C EQ R2 R2 R3 - 0x780A0002, // 001D JMPF R2 #0021 - 0x8C080108, // 001E GETMET R2 R0 K8 - 0x7C080200, // 001F CALL R2 1 - 0x80000400, // 0020 RET 0 - 0x8808010A, // 0021 GETMBR R2 R0 K10 - 0x880C0301, // 0022 GETMBR R3 R1 K1 - 0xB8120400, // 0023 GETNGBL R4 K2 - 0x88100903, // 0024 GETMBR R4 R4 K3 - 0x8810090B, // 0025 GETMBR R4 R4 K11 - 0x1C0C0604, // 0026 EQ R3 R3 R4 - 0x740E0005, // 0027 JMPT R3 #002E - 0x880C0301, // 0028 GETMBR R3 R1 K1 - 0xB8120400, // 0029 GETNGBL R4 K2 - 0x88100903, // 002A GETMBR R4 R4 K3 - 0x8810090C, // 002B GETMBR R4 R4 K12 - 0x1C0C0604, // 002C EQ R3 R3 R4 - 0x780E0001, // 002D JMPF R3 #0030 - 0x500C0000, // 002E LDBOOL R3 0 0 - 0x90021403, // 002F SETMBR R0 K10 R3 - 0x880C0301, // 0030 GETMBR R3 R1 K1 - 0xB8120400, // 0031 GETNGBL R4 K2 - 0x88100903, // 0032 GETMBR R4 R4 K3 - 0x8810090B, // 0033 GETMBR R4 R4 K11 - 0x1C0C0604, // 0034 EQ R3 R3 R4 - 0x780E003A, // 0035 JMPF R3 #0071 - 0x880C0307, // 0036 GETMBR R3 R1 K7 - 0x1C0C070D, // 0037 EQ R3 R3 K13 - 0x780E0006, // 0038 JMPF R3 #0040 - 0x8C0C010E, // 0039 GETMET R3 R0 K14 - 0x5814000F, // 003A LDCONST R5 K15 - 0x7C0C0400, // 003B CALL R3 2 - 0x8C0C0110, // 003C GETMET R3 R0 K16 - 0x7C0C0200, // 003D CALL R3 1 - 0x80000600, // 003E RET 0 - 0x7002002F, // 003F JMP #0070 - 0x880C0111, // 0040 GETMBR R3 R0 K17 - 0x740E0001, // 0041 JMPT R3 #0044 - 0x8C0C0112, // 0042 GETMET R3 R0 K18 - 0x7C0C0200, // 0043 CALL R3 1 - 0x880C0307, // 0044 GETMBR R3 R1 K7 - 0x1C0C0713, // 0045 EQ R3 R3 K19 - 0x780E0002, // 0046 JMPF R3 #004A - 0x8C0C0114, // 0047 GETMET R3 R0 K20 - 0x7C0C0200, // 0048 CALL R3 1 - 0x70020025, // 0049 JMP #0070 - 0x880C0307, // 004A GETMBR R3 R1 K7 - 0x1C0C0715, // 004B EQ R3 R3 K21 - 0x780E0002, // 004C JMPF R3 #0050 - 0x8C0C0116, // 004D GETMET R3 R0 K22 - 0x7C0C0200, // 004E CALL R3 1 - 0x7002001F, // 004F JMP #0070 - 0x880C0307, // 0050 GETMBR R3 R1 K7 - 0x1C0C0717, // 0051 EQ R3 R3 K23 - 0x780E0002, // 0052 JMPF R3 #0056 - 0x8C0C0118, // 0053 GETMET R3 R0 K24 - 0x7C0C0200, // 0054 CALL R3 1 - 0x70020019, // 0055 JMP #0070 - 0x880C0307, // 0056 GETMBR R3 R1 K7 - 0x1C0C0719, // 0057 EQ R3 R3 K25 - 0x780E0002, // 0058 JMPF R3 #005C - 0x8C0C011A, // 0059 GETMET R3 R0 K26 - 0x7C0C0200, // 005A CALL R3 1 - 0x70020013, // 005B JMP #0070 - 0x880C0307, // 005C GETMBR R3 R1 K7 - 0x1C0C071B, // 005D EQ R3 R3 K27 - 0x780E0002, // 005E JMPF R3 #0062 - 0x8C0C011C, // 005F GETMET R3 R0 K28 - 0x7C0C0200, // 0060 CALL R3 1 - 0x7002000D, // 0061 JMP #0070 - 0x880C0307, // 0062 GETMBR R3 R1 K7 - 0x1C0C071D, // 0063 EQ R3 R3 K29 - 0x780E0002, // 0064 JMPF R3 #0068 - 0x8C0C011E, // 0065 GETMET R3 R0 K30 - 0x7C0C0200, // 0066 CALL R3 1 - 0x70020007, // 0067 JMP #0070 - 0x880C0307, // 0068 GETMBR R3 R1 K7 - 0x1C0C071F, // 0069 EQ R3 R3 K31 - 0x780E0002, // 006A JMPF R3 #006E - 0x8C0C0120, // 006B GETMET R3 R0 K32 - 0x7C0C0200, // 006C CALL R3 1 - 0x70020001, // 006D JMP #0070 - 0x8C0C0110, // 006E GETMET R3 R0 K16 - 0x7C0C0200, // 006F CALL R3 1 - 0x7002000E, // 0070 JMP #0080 - 0x880C0301, // 0071 GETMBR R3 R1 K1 - 0xB8120400, // 0072 GETNGBL R4 K2 - 0x88100903, // 0073 GETMBR R4 R4 K3 - 0x8810090C, // 0074 GETMBR R4 R4 K12 - 0x1C0C0604, // 0075 EQ R3 R3 R4 - 0x780E0006, // 0076 JMPF R3 #007E - 0x880C0111, // 0077 GETMBR R3 R0 K17 - 0x740E0001, // 0078 JMPT R3 #007B - 0x8C0C0112, // 0079 GETMET R3 R0 K18 - 0x7C0C0200, // 007A CALL R3 1 - 0x8C0C0121, // 007B GETMET R3 R0 K33 - 0x7C0C0200, // 007C CALL R3 1 - 0x70020001, // 007D JMP #0080 - 0x8C0C0110, // 007E GETMET R3 R0 K16 - 0x7C0C0200, // 007F CALL R3 1 - 0x80000000, // 0080 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_time_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* 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[11]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(TIME), + /* K4 */ be_nested_str_weak(NUMBER), /* K5 */ be_nested_str_weak(value), /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(convert_time_to_ms), - /* K8 */ be_nested_str_weak(NUMBER), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Expected_X20time_X20value), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20number), + /* K9 */ be_nested_str_weak(0), }), - be_str_weak(process_time_value), + be_str_weak(expect_number), &be_const_str_solidified, - ( &(const binstruction[46]) { /* code */ + ( &(const binstruction[21]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x4C080000, // 0002 LDNIL R2 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000D, // 0004 JMPF R2 #0013 + 0x780A000A, // 0004 JMPF R2 #0010 0x88080301, // 0005 GETMBR R2 R1 K1 0xB80E0400, // 0006 GETNGBL R3 K2 0x880C0703, // 0007 GETMBR R3 R3 K3 0x880C0704, // 0008 GETMBR R3 R3 K4 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0007, // 000A JMPF R2 #0013 + 0x780A0004, // 000A JMPF R2 #0010 0x88080305, // 000B GETMBR R2 R1 K5 0x8C0C0106, // 000C GETMET R3 R0 K6 0x7C0C0200, // 000D CALL R3 1 - 0x8C0C0107, // 000E GETMET R3 R0 K7 - 0x5C140400, // 000F MOVE R5 R2 - 0x7C0C0400, // 0010 CALL R3 2 - 0x80040600, // 0011 RET 1 R3 - 0x70020019, // 0012 JMP #002D - 0x4C080000, // 0013 LDNIL R2 - 0x20080202, // 0014 NE R2 R1 R2 - 0x780A0011, // 0015 JMPF R2 #0028 - 0x88080301, // 0016 GETMBR R2 R1 K1 - 0xB80E0400, // 0017 GETNGBL R3 K2 - 0x880C0703, // 0018 GETMBR R3 R3 K3 - 0x880C0708, // 0019 GETMBR R3 R3 K8 - 0x1C080403, // 001A EQ R2 R2 R3 - 0x780A000B, // 001B JMPF R2 #0028 - 0x88080305, // 001C GETMBR R2 R1 K5 - 0x8C0C0106, // 001D GETMET R3 R0 K6 - 0x7C0C0200, // 001E CALL R3 1 - 0x600C0009, // 001F GETGBL R3 G9 - 0x6010000A, // 0020 GETGBL R4 G10 - 0x5C140400, // 0021 MOVE R5 R2 - 0x7C100200, // 0022 CALL R4 1 - 0x7C0C0200, // 0023 CALL R3 1 - 0x541203E7, // 0024 LDINT R4 1000 - 0x080C0604, // 0025 MUL R3 R3 R4 - 0x80040600, // 0026 RET 1 R3 - 0x70020004, // 0027 JMP #002D - 0x8C080109, // 0028 GETMET R2 R0 K9 - 0x5810000A, // 0029 LDCONST R4 K10 - 0x7C080400, // 002A CALL R2 2 - 0x540A03E7, // 002B LDINT R2 1000 - 0x80040400, // 002C RET 1 R2 - 0x80000000, // 002D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACE), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), - }), - be_str_weak(expect_right_brace), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_primary_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name */ - be_nested_proto( - 11, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[46]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(LEFT_PAREN), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_additive_expression), - /* K10 */ be_nested_str_weak(expect_right_paren), - /* K11 */ be_nested_str_weak(_X28_X25s_X29), - /* K12 */ be_nested_str_weak(KEYWORD), - /* K13 */ be_nested_str_weak(IDENTIFIER), - /* K14 */ be_nested_str_weak(peek), - /* K15 */ be_nested_str_weak(value), - /* K16 */ be_nested_str_weak(_is_simple_function_call), - /* K17 */ be_nested_str_weak(process_function_call), - /* K18 */ be_nested_str_weak(argument), - /* K19 */ be_nested_str_weak(property), - /* K20 */ be_nested_str_weak(variable), - /* K21 */ be_nested_str_weak(process_nested_function_call), - /* K22 */ be_nested_str_weak(COLOR), - /* K23 */ be_nested_str_weak(convert_color), - /* K24 */ be_nested_str_weak(TIME), - /* K25 */ be_nested_str_weak(process_time_value), - /* K26 */ be_nested_str_weak(PERCENTAGE), - /* K27 */ be_nested_str_weak(process_percentage_value), - /* K28 */ be_nested_str_weak(NUMBER), - /* K29 */ be_nested_str_weak(STRING), - /* K30 */ be_nested_str_weak(_X22_X25s_X22), - /* K31 */ be_nested_str_weak(LEFT_BRACKET), - /* K32 */ be_nested_str_weak(process_array_literal), - /* K33 */ be_nested_str_weak(string), - /* K34 */ be_nested_str_weak(startswith), - /* K35 */ be_nested_str_weak(PALETTE_), - /* K36 */ be_nested_str_weak(animation_X2E_X25s), - /* K37 */ be_nested_str_weak(is_color_name), - /* K38 */ be_nested_str_weak(get_named_color_value), - /* K39 */ be_nested_str_weak(introspect), - /* K40 */ be_nested_str_weak(contains), - /* K41 */ be_nested_str_weak(animation), - /* K42 */ be_nested_str_weak(_X25s_), - /* K43 */ be_nested_str_weak(true), - /* K44 */ be_nested_str_weak(false), - /* K45 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), - }), - be_str_weak(process_primary_expression), - &be_const_str_solidified, - ( &(const binstruction[229]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x4C100000, // 0002 LDNIL R4 - 0x1C100604, // 0003 EQ R4 R3 R4 - 0x78120003, // 0004 JMPF R4 #0009 - 0x8C100101, // 0005 GETMET R4 R0 K1 - 0x58180002, // 0006 LDCONST R6 K2 - 0x7C100400, // 0007 CALL R4 2 - 0x80060600, // 0008 RET 1 K3 - 0x88100704, // 0009 GETMBR R4 R3 K4 - 0xB8160A00, // 000A GETNGBL R5 K5 - 0x88140B06, // 000B GETMBR R5 R5 K6 - 0x88140B07, // 000C GETMBR R5 R5 K7 - 0x1C100805, // 000D EQ R4 R4 R5 - 0x7812000C, // 000E JMPF R4 #001C - 0x8C100108, // 000F GETMET R4 R0 K8 - 0x7C100200, // 0010 CALL R4 1 - 0x8C100109, // 0011 GETMET R4 R0 K9 - 0x5C180200, // 0012 MOVE R6 R1 - 0x501C0000, // 0013 LDBOOL R7 0 0 - 0x7C100600, // 0014 CALL R4 3 - 0x8C14010A, // 0015 GETMET R5 R0 K10 - 0x7C140200, // 0016 CALL R5 1 - 0x60140018, // 0017 GETGBL R5 G24 - 0x5818000B, // 0018 LDCONST R6 K11 - 0x5C1C0800, // 0019 MOVE R7 R4 - 0x7C140400, // 001A CALL R5 2 - 0x80040A00, // 001B RET 1 R5 - 0x88100704, // 001C GETMBR R4 R3 K4 - 0xB8160A00, // 001D GETNGBL R5 K5 - 0x88140B06, // 001E GETMBR R5 R5 K6 - 0x88140B0C, // 001F GETMBR R5 R5 K12 - 0x1C100805, // 0020 EQ R4 R4 R5 - 0x74120005, // 0021 JMPT R4 #0028 - 0x88100704, // 0022 GETMBR R4 R3 K4 - 0xB8160A00, // 0023 GETNGBL R5 K5 - 0x88140B06, // 0024 GETMBR R5 R5 K6 - 0x88140B0D, // 0025 GETMBR R5 R5 K13 - 0x1C100805, // 0026 EQ R4 R4 R5 - 0x78120024, // 0027 JMPF R4 #004D - 0x8C10010E, // 0028 GETMET R4 R0 K14 - 0x7C100200, // 0029 CALL R4 1 - 0x4C140000, // 002A LDNIL R5 - 0x20100805, // 002B NE R4 R4 R5 - 0x7812001F, // 002C JMPF R4 #004D - 0x8C10010E, // 002D GETMET R4 R0 K14 - 0x7C100200, // 002E CALL R4 1 - 0x88100904, // 002F GETMBR R4 R4 K4 - 0xB8160A00, // 0030 GETNGBL R5 K5 - 0x88140B06, // 0031 GETMBR R5 R5 K6 - 0x88140B07, // 0032 GETMBR R5 R5 K7 - 0x1C100805, // 0033 EQ R4 R4 R5 - 0x78120017, // 0034 JMPF R4 #004D - 0x8810070F, // 0035 GETMBR R4 R3 K15 - 0x8C140110, // 0036 GETMET R5 R0 K16 - 0x5C1C0800, // 0037 MOVE R7 R4 - 0x7C140400, // 0038 CALL R5 2 - 0x78160004, // 0039 JMPF R5 #003F - 0x8C140111, // 003A GETMET R5 R0 K17 - 0x5C1C0200, // 003B MOVE R7 R1 - 0x7C140400, // 003C CALL R5 2 - 0x80040A00, // 003D RET 1 R5 - 0x7002000D, // 003E JMP #004D - 0x1C140312, // 003F EQ R5 R1 K18 - 0x74160003, // 0040 JMPT R5 #0045 - 0x1C140313, // 0041 EQ R5 R1 K19 - 0x74160001, // 0042 JMPT R5 #0045 - 0x1C140314, // 0043 EQ R5 R1 K20 - 0x78160003, // 0044 JMPF R5 #0049 - 0x8C140115, // 0045 GETMET R5 R0 K21 - 0x7C140200, // 0046 CALL R5 1 - 0x80040A00, // 0047 RET 1 R5 - 0x70020003, // 0048 JMP #004D - 0x8C140111, // 0049 GETMET R5 R0 K17 - 0x5C1C0200, // 004A MOVE R7 R1 - 0x7C140400, // 004B CALL R5 2 - 0x80040A00, // 004C RET 1 R5 - 0x88100704, // 004D GETMBR R4 R3 K4 - 0xB8160A00, // 004E GETNGBL R5 K5 - 0x88140B06, // 004F GETMBR R5 R5 K6 - 0x88140B16, // 0050 GETMBR R5 R5 K22 - 0x1C100805, // 0051 EQ R4 R4 R5 - 0x78120005, // 0052 JMPF R4 #0059 - 0x8C100108, // 0053 GETMET R4 R0 K8 - 0x7C100200, // 0054 CALL R4 1 - 0x8C100117, // 0055 GETMET R4 R0 K23 - 0x8818070F, // 0056 GETMBR R6 R3 K15 - 0x7C100400, // 0057 CALL R4 2 - 0x80040800, // 0058 RET 1 R4 - 0x88100704, // 0059 GETMBR R4 R3 K4 - 0xB8160A00, // 005A GETNGBL R5 K5 - 0x88140B06, // 005B GETMBR R5 R5 K6 - 0x88140B18, // 005C GETMBR R5 R5 K24 - 0x1C100805, // 005D EQ R4 R4 R5 - 0x78120004, // 005E JMPF R4 #0064 - 0x60100008, // 005F GETGBL R4 G8 - 0x8C140119, // 0060 GETMET R5 R0 K25 - 0x7C140200, // 0061 CALL R5 1 - 0x7C100200, // 0062 CALL R4 1 - 0x80040800, // 0063 RET 1 R4 - 0x88100704, // 0064 GETMBR R4 R3 K4 - 0xB8160A00, // 0065 GETNGBL R5 K5 - 0x88140B06, // 0066 GETMBR R5 R5 K6 - 0x88140B1A, // 0067 GETMBR R5 R5 K26 - 0x1C100805, // 0068 EQ R4 R4 R5 - 0x78120004, // 0069 JMPF R4 #006F - 0x60100008, // 006A GETGBL R4 G8 - 0x8C14011B, // 006B GETMET R5 R0 K27 - 0x7C140200, // 006C CALL R5 1 - 0x7C100200, // 006D CALL R4 1 - 0x80040800, // 006E RET 1 R4 - 0x88100704, // 006F GETMBR R4 R3 K4 - 0xB8160A00, // 0070 GETNGBL R5 K5 - 0x88140B06, // 0071 GETMBR R5 R5 K6 - 0x88140B1C, // 0072 GETMBR R5 R5 K28 - 0x1C100805, // 0073 EQ R4 R4 R5 - 0x78120003, // 0074 JMPF R4 #0079 - 0x8810070F, // 0075 GETMBR R4 R3 K15 - 0x8C140108, // 0076 GETMET R5 R0 K8 - 0x7C140200, // 0077 CALL R5 1 - 0x80040800, // 0078 RET 1 R4 - 0x88100704, // 0079 GETMBR R4 R3 K4 - 0xB8160A00, // 007A GETNGBL R5 K5 - 0x88140B06, // 007B GETMBR R5 R5 K6 - 0x88140B1D, // 007C GETMBR R5 R5 K29 - 0x1C100805, // 007D EQ R4 R4 R5 - 0x78120007, // 007E JMPF R4 #0087 - 0x8810070F, // 007F GETMBR R4 R3 K15 - 0x8C140108, // 0080 GETMET R5 R0 K8 - 0x7C140200, // 0081 CALL R5 1 - 0x60140018, // 0082 GETGBL R5 G24 - 0x5818001E, // 0083 LDCONST R6 K30 - 0x5C1C0800, // 0084 MOVE R7 R4 - 0x7C140400, // 0085 CALL R5 2 - 0x80040A00, // 0086 RET 1 R5 - 0x88100704, // 0087 GETMBR R4 R3 K4 - 0xB8160A00, // 0088 GETNGBL R5 K5 - 0x88140B06, // 0089 GETMBR R5 R5 K6 - 0x88140B1F, // 008A GETMBR R5 R5 K31 - 0x1C100805, // 008B EQ R4 R4 R5 - 0x78120002, // 008C JMPF R4 #0090 - 0x8C100120, // 008D GETMET R4 R0 K32 - 0x7C100200, // 008E CALL R4 1 - 0x80040800, // 008F RET 1 R4 - 0x88100704, // 0090 GETMBR R4 R3 K4 - 0xB8160A00, // 0091 GETNGBL R5 K5 - 0x88140B06, // 0092 GETMBR R5 R5 K6 - 0x88140B0D, // 0093 GETMBR R5 R5 K13 - 0x1C100805, // 0094 EQ R4 R4 R5 - 0x78120027, // 0095 JMPF R4 #00BE - 0x8810070F, // 0096 GETMBR R4 R3 K15 - 0x8C140108, // 0097 GETMET R5 R0 K8 - 0x7C140200, // 0098 CALL R5 1 - 0xA4164200, // 0099 IMPORT R5 K33 - 0x8C180B22, // 009A GETMET R6 R5 K34 - 0x5C200800, // 009B MOVE R8 R4 - 0x58240023, // 009C LDCONST R9 K35 - 0x7C180600, // 009D CALL R6 3 - 0x781A0004, // 009E JMPF R6 #00A4 - 0x60180018, // 009F GETGBL R6 G24 - 0x581C0024, // 00A0 LDCONST R7 K36 - 0x5C200800, // 00A1 MOVE R8 R4 - 0x7C180400, // 00A2 CALL R6 2 - 0x80040C00, // 00A3 RET 1 R6 - 0xB81A0A00, // 00A4 GETNGBL R6 K5 - 0x8C180D25, // 00A5 GETMET R6 R6 K37 - 0x5C200800, // 00A6 MOVE R8 R4 - 0x7C180400, // 00A7 CALL R6 2 - 0x781A0003, // 00A8 JMPF R6 #00AD - 0x8C180126, // 00A9 GETMET R6 R0 K38 - 0x5C200800, // 00AA MOVE R8 R4 - 0x7C180400, // 00AB CALL R6 2 - 0x80040C00, // 00AC RET 1 R6 - 0xA41A4E00, // 00AD IMPORT R6 K39 - 0x8C1C0D28, // 00AE GETMET R7 R6 K40 - 0xB8265200, // 00AF GETNGBL R9 K41 - 0x5C280800, // 00B0 MOVE R10 R4 - 0x7C1C0600, // 00B1 CALL R7 3 - 0x781E0005, // 00B2 JMPF R7 #00B9 - 0x601C0018, // 00B3 GETGBL R7 G24 - 0x58200024, // 00B4 LDCONST R8 K36 - 0x5C240800, // 00B5 MOVE R9 R4 - 0x7C1C0400, // 00B6 CALL R7 2 - 0x80040E00, // 00B7 RET 1 R7 - 0x70020004, // 00B8 JMP #00BE - 0x601C0018, // 00B9 GETGBL R7 G24 - 0x5820002A, // 00BA LDCONST R8 K42 - 0x5C240800, // 00BB MOVE R9 R4 - 0x7C1C0400, // 00BC CALL R7 2 - 0x80040E00, // 00BD RET 1 R7 - 0x88100704, // 00BE GETMBR R4 R3 K4 - 0xB8160A00, // 00BF GETNGBL R5 K5 - 0x88140B06, // 00C0 GETMBR R5 R5 K6 - 0x88140B0C, // 00C1 GETMBR R5 R5 K12 - 0x1C100805, // 00C2 EQ R4 R4 R5 - 0x78120009, // 00C3 JMPF R4 #00CE - 0x8810070F, // 00C4 GETMBR R4 R3 K15 - 0x1C10092B, // 00C5 EQ R4 R4 K43 - 0x74120002, // 00C6 JMPT R4 #00CA - 0x8810070F, // 00C7 GETMBR R4 R3 K15 - 0x1C10092C, // 00C8 EQ R4 R4 K44 - 0x78120003, // 00C9 JMPF R4 #00CE - 0x8810070F, // 00CA GETMBR R4 R3 K15 - 0x8C140108, // 00CB GETMET R5 R0 K8 - 0x7C140200, // 00CC CALL R5 1 - 0x80040800, // 00CD RET 1 R4 - 0x88100704, // 00CE GETMBR R4 R3 K4 - 0xB8160A00, // 00CF GETNGBL R5 K5 - 0x88140B06, // 00D0 GETMBR R5 R5 K6 - 0x88140B0C, // 00D1 GETMBR R5 R5 K12 - 0x1C100805, // 00D2 EQ R4 R4 R5 - 0x78120007, // 00D3 JMPF R4 #00DC - 0x8810070F, // 00D4 GETMBR R4 R3 K15 - 0x8C140108, // 00D5 GETMET R5 R0 K8 - 0x7C140200, // 00D6 CALL R5 1 - 0x60140018, // 00D7 GETGBL R5 G24 - 0x58180024, // 00D8 LDCONST R6 K36 - 0x5C1C0800, // 00D9 MOVE R7 R4 - 0x7C140400, // 00DA CALL R5 2 - 0x80040A00, // 00DB RET 1 R5 - 0x8C100101, // 00DC GETMET R4 R0 K1 - 0x60180018, // 00DD GETGBL R6 G24 - 0x581C002D, // 00DE LDCONST R7 K45 - 0x8820070F, // 00DF GETMBR R8 R3 K15 - 0x7C180400, // 00E0 CALL R6 2 - 0x7C100400, // 00E1 CALL R4 2 - 0x8C100108, // 00E2 GETMET R4 R0 K8 - 0x7C100200, // 00E3 CALL R4 1 - 0x80060600, // 00E4 RET 1 K3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_primary_expression_raw -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_primary_expression_raw, /* 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[37]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(LEFT_PAREN), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_additive_expression_raw), - /* K10 */ be_nested_str_weak(expect_right_paren), - /* K11 */ be_nested_str_weak(_X28_X25s_X29), - /* K12 */ be_nested_str_weak(KEYWORD), - /* K13 */ be_nested_str_weak(IDENTIFIER), - /* K14 */ be_nested_str_weak(peek), - /* K15 */ be_nested_str_weak(value), - /* K16 */ be_nested_str_weak(is_math_method), - /* K17 */ be_nested_str_weak(process_function_arguments_for_expression), - /* K18 */ be_nested_str_weak(self_X2E_X25s_X28_X25s_X29), - /* K19 */ be_nested_str_weak(animation), - /* K20 */ be_nested_str_weak(is_user_function), - /* K21 */ be_nested_str_weak(), - /* K22 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), - /* K23 */ be_nested_str_weak(self_X2Eengine), - /* K24 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), - /* K25 */ be_nested_str_weak(Function_X20_X27_X25s_X27_X20not_X20supported_X20in_X20expression_X20context), - /* K26 */ be_nested_str_weak(COLOR), - /* K27 */ be_nested_str_weak(convert_color), - /* K28 */ be_nested_str_weak(TIME), - /* K29 */ be_nested_str_weak(process_time_value), - /* K30 */ be_nested_str_weak(PERCENTAGE), - /* K31 */ be_nested_str_weak(process_percentage_value), - /* K32 */ be_nested_str_weak(NUMBER), - /* K33 */ be_nested_str_weak(STRING), - /* K34 */ be_nested_str_weak(_X22_X25s_X22), - /* K35 */ be_nested_str_weak(self_X2Eresolve_X28_X25s__X2C_X20param_name_X2C_X20time_ms_X29), - /* K36 */ be_nested_str_weak(Unexpected_X20token_X20in_X20expression_X3A_X20_X25s), - }), - be_str_weak(process_primary_expression_raw), - &be_const_str_solidified, - ( &(const binstruction[173]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x8C080101, // 0005 GETMET R2 R0 K1 - 0x58100002, // 0006 LDCONST R4 K2 - 0x7C080400, // 0007 CALL R2 2 - 0x80060600, // 0008 RET 1 K3 - 0x88080304, // 0009 GETMBR R2 R1 K4 - 0xB80E0A00, // 000A GETNGBL R3 K5 - 0x880C0706, // 000B GETMBR R3 R3 K6 - 0x880C0707, // 000C GETMBR R3 R3 K7 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x780A000A, // 000E JMPF R2 #001A - 0x8C080108, // 000F GETMET R2 R0 K8 - 0x7C080200, // 0010 CALL R2 1 - 0x8C080109, // 0011 GETMET R2 R0 K9 - 0x7C080200, // 0012 CALL R2 1 - 0x8C0C010A, // 0013 GETMET R3 R0 K10 - 0x7C0C0200, // 0014 CALL R3 1 - 0x600C0018, // 0015 GETGBL R3 G24 - 0x5810000B, // 0016 LDCONST R4 K11 - 0x5C140400, // 0017 MOVE R5 R2 - 0x7C0C0400, // 0018 CALL R3 2 - 0x80040600, // 0019 RET 1 R3 - 0x88080304, // 001A GETMBR R2 R1 K4 - 0xB80E0A00, // 001B GETNGBL R3 K5 - 0x880C0706, // 001C GETMBR R3 R3 K6 - 0x880C070C, // 001D GETMBR R3 R3 K12 - 0x1C080403, // 001E EQ R2 R2 R3 - 0x740A0005, // 001F JMPT R2 #0026 - 0x88080304, // 0020 GETMBR R2 R1 K4 - 0xB80E0A00, // 0021 GETNGBL R3 K5 - 0x880C0706, // 0022 GETMBR R3 R3 K6 - 0x880C070D, // 0023 GETMBR R3 R3 K13 - 0x1C080403, // 0024 EQ R2 R2 R3 - 0x780A0037, // 0025 JMPF R2 #005E - 0x8C08010E, // 0026 GETMET R2 R0 K14 - 0x7C080200, // 0027 CALL R2 1 - 0x4C0C0000, // 0028 LDNIL R3 - 0x20080403, // 0029 NE R2 R2 R3 - 0x780A0032, // 002A JMPF R2 #005E - 0x8C08010E, // 002B GETMET R2 R0 K14 - 0x7C080200, // 002C CALL R2 1 - 0x88080504, // 002D GETMBR R2 R2 K4 - 0xB80E0A00, // 002E GETNGBL R3 K5 - 0x880C0706, // 002F GETMBR R3 R3 K6 - 0x880C0707, // 0030 GETMBR R3 R3 K7 - 0x1C080403, // 0031 EQ R2 R2 R3 - 0x780A002A, // 0032 JMPF R2 #005E - 0x8808030F, // 0033 GETMBR R2 R1 K15 - 0x8C0C0108, // 0034 GETMET R3 R0 K8 - 0x7C0C0200, // 0035 CALL R3 1 - 0x8C0C0110, // 0036 GETMET R3 R0 K16 - 0x5C140400, // 0037 MOVE R5 R2 - 0x7C0C0400, // 0038 CALL R3 2 - 0x780E0007, // 0039 JMPF R3 #0042 - 0x8C0C0111, // 003A GETMET R3 R0 K17 - 0x7C0C0200, // 003B CALL R3 1 - 0x60100018, // 003C GETGBL R4 G24 - 0x58140012, // 003D LDCONST R5 K18 - 0x5C180400, // 003E MOVE R6 R2 - 0x5C1C0600, // 003F MOVE R7 R3 - 0x7C100600, // 0040 CALL R4 3 - 0x80040800, // 0041 RET 1 R4 - 0xB80E2600, // 0042 GETNGBL R3 K19 - 0x8C0C0714, // 0043 GETMET R3 R3 K20 - 0x5C140400, // 0044 MOVE R5 R2 - 0x7C0C0400, // 0045 CALL R3 2 - 0x780E000F, // 0046 JMPF R3 #0057 - 0x8C0C0111, // 0047 GETMET R3 R0 K17 - 0x7C0C0200, // 0048 CALL R3 1 - 0x20100715, // 0049 NE R4 R3 K21 - 0x78120004, // 004A JMPF R4 #0050 - 0x60100018, // 004B GETGBL R4 G24 - 0x58140016, // 004C LDCONST R5 K22 - 0x5C180600, // 004D MOVE R6 R3 - 0x7C100400, // 004E CALL R4 2 - 0x70020000, // 004F JMP #0051 - 0x58100017, // 0050 LDCONST R4 K23 - 0x60140018, // 0051 GETGBL R5 G24 - 0x58180018, // 0052 LDCONST R6 K24 - 0x5C1C0400, // 0053 MOVE R7 R2 - 0x5C200800, // 0054 MOVE R8 R4 - 0x7C140600, // 0055 CALL R5 3 - 0x80040A00, // 0056 RET 1 R5 - 0x8C0C0101, // 0057 GETMET R3 R0 K1 - 0x60140018, // 0058 GETGBL R5 G24 - 0x58180019, // 0059 LDCONST R6 K25 - 0x5C1C0400, // 005A MOVE R7 R2 - 0x7C140400, // 005B CALL R5 2 - 0x7C0C0400, // 005C CALL R3 2 - 0x80060600, // 005D RET 1 K3 - 0x88080304, // 005E GETMBR R2 R1 K4 - 0xB80E0A00, // 005F GETNGBL R3 K5 - 0x880C0706, // 0060 GETMBR R3 R3 K6 - 0x880C071A, // 0061 GETMBR R3 R3 K26 - 0x1C080403, // 0062 EQ R2 R2 R3 - 0x780A0005, // 0063 JMPF R2 #006A - 0x8C080108, // 0064 GETMET R2 R0 K8 - 0x7C080200, // 0065 CALL R2 1 - 0x8C08011B, // 0066 GETMET R2 R0 K27 - 0x8810030F, // 0067 GETMBR R4 R1 K15 - 0x7C080400, // 0068 CALL R2 2 - 0x80040400, // 0069 RET 1 R2 - 0x88080304, // 006A GETMBR R2 R1 K4 - 0xB80E0A00, // 006B GETNGBL R3 K5 - 0x880C0706, // 006C GETMBR R3 R3 K6 - 0x880C071C, // 006D GETMBR R3 R3 K28 - 0x1C080403, // 006E EQ R2 R2 R3 - 0x780A0004, // 006F JMPF R2 #0075 - 0x60080008, // 0070 GETGBL R2 G8 - 0x8C0C011D, // 0071 GETMET R3 R0 K29 - 0x7C0C0200, // 0072 CALL R3 1 - 0x7C080200, // 0073 CALL R2 1 - 0x80040400, // 0074 RET 1 R2 - 0x88080304, // 0075 GETMBR R2 R1 K4 - 0xB80E0A00, // 0076 GETNGBL R3 K5 - 0x880C0706, // 0077 GETMBR R3 R3 K6 - 0x880C071E, // 0078 GETMBR R3 R3 K30 - 0x1C080403, // 0079 EQ R2 R2 R3 - 0x780A0004, // 007A JMPF R2 #0080 - 0x60080008, // 007B GETGBL R2 G8 - 0x8C0C011F, // 007C GETMET R3 R0 K31 - 0x7C0C0200, // 007D CALL R3 1 - 0x7C080200, // 007E CALL R2 1 - 0x80040400, // 007F RET 1 R2 - 0x88080304, // 0080 GETMBR R2 R1 K4 - 0xB80E0A00, // 0081 GETNGBL R3 K5 - 0x880C0706, // 0082 GETMBR R3 R3 K6 - 0x880C0720, // 0083 GETMBR R3 R3 K32 - 0x1C080403, // 0084 EQ R2 R2 R3 - 0x780A0003, // 0085 JMPF R2 #008A - 0x8808030F, // 0086 GETMBR R2 R1 K15 - 0x8C0C0108, // 0087 GETMET R3 R0 K8 - 0x7C0C0200, // 0088 CALL R3 1 - 0x80040400, // 0089 RET 1 R2 - 0x88080304, // 008A GETMBR R2 R1 K4 - 0xB80E0A00, // 008B GETNGBL R3 K5 - 0x880C0706, // 008C GETMBR R3 R3 K6 - 0x880C0721, // 008D GETMBR R3 R3 K33 - 0x1C080403, // 008E EQ R2 R2 R3 - 0x780A0007, // 008F JMPF R2 #0098 - 0x8808030F, // 0090 GETMBR R2 R1 K15 - 0x8C0C0108, // 0091 GETMET R3 R0 K8 - 0x7C0C0200, // 0092 CALL R3 1 - 0x600C0018, // 0093 GETGBL R3 G24 - 0x58100022, // 0094 LDCONST R4 K34 - 0x5C140400, // 0095 MOVE R5 R2 - 0x7C0C0400, // 0096 CALL R3 2 - 0x80040600, // 0097 RET 1 R3 - 0x88080304, // 0098 GETMBR R2 R1 K4 - 0xB80E0A00, // 0099 GETNGBL R3 K5 - 0x880C0706, // 009A GETMBR R3 R3 K6 - 0x880C070D, // 009B GETMBR R3 R3 K13 - 0x1C080403, // 009C EQ R2 R2 R3 - 0x780A0007, // 009D JMPF R2 #00A6 - 0x8808030F, // 009E GETMBR R2 R1 K15 - 0x8C0C0108, // 009F GETMET R3 R0 K8 - 0x7C0C0200, // 00A0 CALL R3 1 - 0x600C0018, // 00A1 GETGBL R3 G24 - 0x58100023, // 00A2 LDCONST R4 K35 - 0x5C140400, // 00A3 MOVE R5 R2 - 0x7C0C0400, // 00A4 CALL R3 2 - 0x80040600, // 00A5 RET 1 R3 - 0x8C080101, // 00A6 GETMET R2 R0 K1 - 0x60100018, // 00A7 GETGBL R4 G24 - 0x58140024, // 00A8 LDCONST R5 K36 - 0x8818030F, // 00A9 GETMBR R6 R1 K15 - 0x7C100400, // 00AA CALL R4 2 - 0x7C080400, // 00AB CALL R2 2 - 0x80060600, // 00AC RET 1 K3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_time_to_ms -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_time_to_ms, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(endswith), - /* K2 */ be_nested_str_weak(ms), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(s), - /* K5 */ be_nested_str_weak(m), - /* K6 */ be_nested_str_weak(h), - /* K7 */ be_const_int(3600000), - }), - be_str_weak(convert_time_to_ms), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x780E0008, // 0005 JMPF R3 #000F - 0x600C0009, // 0006 GETGBL R3 G9 - 0x6010000A, // 0007 GETGBL R4 G10 - 0x5415FFFC, // 0008 LDINT R5 -3 - 0x40160605, // 0009 CONNECT R5 K3 R5 - 0x94140205, // 000A GETIDX R5 R1 R5 - 0x7C100200, // 000B CALL R4 1 - 0x7C0C0200, // 000C CALL R3 1 - 0x80040600, // 000D RET 1 R3 - 0x7002002D, // 000E JMP #003D - 0x8C0C0501, // 000F GETMET R3 R2 K1 - 0x5C140200, // 0010 MOVE R5 R1 - 0x58180004, // 0011 LDCONST R6 K4 - 0x7C0C0600, // 0012 CALL R3 3 - 0x780E000A, // 0013 JMPF R3 #001F - 0x600C0009, // 0014 GETGBL R3 G9 - 0x6010000A, // 0015 GETGBL R4 G10 - 0x5415FFFD, // 0016 LDINT R5 -2 - 0x40160605, // 0017 CONNECT R5 K3 R5 - 0x94140205, // 0018 GETIDX R5 R1 R5 - 0x7C100200, // 0019 CALL R4 1 - 0x541603E7, // 001A LDINT R5 1000 - 0x08100805, // 001B MUL R4 R4 R5 - 0x7C0C0200, // 001C CALL R3 1 - 0x80040600, // 001D RET 1 R3 - 0x7002001D, // 001E JMP #003D - 0x8C0C0501, // 001F GETMET R3 R2 K1 - 0x5C140200, // 0020 MOVE R5 R1 - 0x58180005, // 0021 LDCONST R6 K5 - 0x7C0C0600, // 0022 CALL R3 3 - 0x780E000A, // 0023 JMPF R3 #002F - 0x600C0009, // 0024 GETGBL R3 G9 - 0x6010000A, // 0025 GETGBL R4 G10 - 0x5415FFFD, // 0026 LDINT R5 -2 - 0x40160605, // 0027 CONNECT R5 K3 R5 - 0x94140205, // 0028 GETIDX R5 R1 R5 - 0x7C100200, // 0029 CALL R4 1 - 0x5416EA5F, // 002A LDINT R5 60000 - 0x08100805, // 002B MUL R4 R4 R5 - 0x7C0C0200, // 002C CALL R3 1 - 0x80040600, // 002D RET 1 R3 - 0x7002000D, // 002E JMP #003D - 0x8C0C0501, // 002F GETMET R3 R2 K1 - 0x5C140200, // 0030 MOVE R5 R1 - 0x58180006, // 0031 LDCONST R6 K6 - 0x7C0C0600, // 0032 CALL R3 3 - 0x780E0008, // 0033 JMPF R3 #003D - 0x600C0009, // 0034 GETGBL R3 G9 - 0x6010000A, // 0035 GETGBL R4 G10 - 0x5415FFFD, // 0036 LDINT R5 -2 - 0x40160605, // 0037 CONNECT R5 K3 R5 - 0x94140205, // 0038 GETIDX R5 R1 R5 - 0x7C100200, // 0039 CALL R4 1 - 0x08100907, // 003A MUL R4 R4 K7 - 0x7C0C0200, // 003B CALL R3 1 - 0x80040600, // 003C RET 1 R3 - 0x540E03E7, // 003D LDINT R3 1000 - 0x80040600, // 003E RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_event_parameters -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_event_parameters, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(_X7B), - /* K2 */ be_nested_str_weak(at_end), - /* K3 */ be_nested_str_weak(check_right_paren), - /* K4 */ be_nested_str_weak(current), - /* K5 */ be_nested_str_weak(type), - /* K6 */ be_nested_str_weak(animation_dsl), - /* K7 */ be_nested_str_weak(Token), - /* K8 */ be_nested_str_weak(TIME), - /* K9 */ be_nested_str_weak(process_time_value), - /* K10 */ be_nested_str_weak(_X22interval_X22_X3A_X20_X25s), - /* K11 */ be_nested_str_weak(process_value), - /* K12 */ be_nested_str_weak(event_param), - /* K13 */ be_nested_str_weak(_X22value_X22_X3A_X20_X25s), - /* K14 */ be_nested_str_weak(expect_right_paren), - /* K15 */ be_nested_str_weak(_X7D), - }), - be_str_weak(process_event_parameters), - &be_const_str_solidified, - ( &(const binstruction[40]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x58040001, // 0002 LDCONST R1 K1 - 0x8C080102, // 0003 GETMET R2 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x740A001D, // 0005 JMPT R2 #0024 - 0x8C080103, // 0006 GETMET R2 R0 K3 - 0x7C080200, // 0007 CALL R2 1 - 0x740A001A, // 0008 JMPT R2 #0024 - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x4C0C0000, // 000B LDNIL R3 - 0x200C0403, // 000C NE R3 R2 R3 - 0x780E000D, // 000D JMPF R3 #001C - 0x880C0505, // 000E GETMBR R3 R2 K5 - 0xB8120C00, // 000F GETNGBL R4 K6 - 0x88100907, // 0010 GETMBR R4 R4 K7 - 0x88100908, // 0011 GETMBR R4 R4 K8 - 0x1C0C0604, // 0012 EQ R3 R3 R4 - 0x780E0007, // 0013 JMPF R3 #001C - 0x8C0C0109, // 0014 GETMET R3 R0 K9 - 0x7C0C0200, // 0015 CALL R3 1 - 0x60100018, // 0016 GETGBL R4 G24 - 0x5814000A, // 0017 LDCONST R5 K10 - 0x5C180600, // 0018 MOVE R6 R3 - 0x7C100400, // 0019 CALL R4 2 - 0x00040204, // 001A ADD R1 R1 R4 - 0x70020007, // 001B JMP #0024 - 0x8C0C010B, // 001C GETMET R3 R0 K11 - 0x5814000C, // 001D LDCONST R5 K12 - 0x7C0C0400, // 001E CALL R3 2 - 0x60100018, // 001F GETGBL R4 G24 - 0x5814000D, // 0020 LDCONST R5 K13 - 0x5C180600, // 0021 MOVE R6 R3 - 0x7C100400, // 0022 CALL R4 2 - 0x00040204, // 0023 ADD R1 R1 R4 - 0x8C08010E, // 0024 GETMET R2 R0 K14 - 0x7C080200, // 0025 CALL R2 1 - 0x0004030F, // 0026 ADD R1 R1 K15 - 0x80040200, // 0027 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _create_animation_instance_for_validation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__create_animation_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[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(_create_instance_for_validation), - }), - be_str_weak(_create_animation_instance_for_validation), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x80040400, // 0003 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: next -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_next, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), - /* K2 */ be_const_int(1), - }), - be_str_weak(next), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x14040202, // 0004 LT R1 R1 R2 - 0x78060002, // 0005 JMPF R1 #0009 - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x00040302, // 0007 ADD R1 R1 K2 - 0x90020001, // 0008 SETMBR R0 K0 R1 - 0x80000000, // 0009 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_PAREN), - }), - be_str_weak(check_right_paren), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0005, // 0004 JMPF R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0000, // 000A JMPT R2 #000C - 0x50080001, // 000B LDBOOL R2 0 1 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x80040400, // 000D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_math_method -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_math_method, /* name */ - be_nested_proto( - 11, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(introspect), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(closure_value), - /* K3 */ be_nested_str_weak(members), - /* K4 */ be_nested_str_weak(get), - /* K5 */ be_nested_str_weak(ismethod), - /* K6 */ be_nested_str_weak(function), - /* K7 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(is_math_method), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0xA802002C, // 0001 EXBLK 0 #002F - 0xB80E0200, // 0002 GETNGBL R3 K1 - 0x880C0702, // 0003 GETMBR R3 R3 K2 - 0x4C100000, // 0004 LDNIL R4 - 0x1C100604, // 0005 EQ R4 R3 R4 - 0x78120002, // 0006 JMPF R4 #000A - 0x50100000, // 0007 LDBOOL R4 0 0 - 0xA8040001, // 0008 EXBLK 1 1 - 0x80040800, // 0009 RET 1 R4 - 0x8C100503, // 000A GETMET R4 R2 K3 - 0x5C180600, // 000B MOVE R6 R3 - 0x7C100400, // 000C CALL R4 2 - 0x60140010, // 000D GETGBL R5 G16 - 0x5C180800, // 000E MOVE R6 R4 - 0x7C140200, // 000F CALL R5 1 - 0xA8020015, // 0010 EXBLK 0 #0027 - 0x5C180A00, // 0011 MOVE R6 R5 - 0x7C180000, // 0012 CALL R6 0 - 0x1C1C0C01, // 0013 EQ R7 R6 R1 - 0x781E0010, // 0014 JMPF R7 #0026 - 0x8C1C0504, // 0015 GETMET R7 R2 K4 - 0x5C240600, // 0016 MOVE R9 R3 - 0x5C280200, // 0017 MOVE R10 R1 - 0x7C1C0600, // 0018 CALL R7 3 - 0x8C200505, // 0019 GETMET R8 R2 K5 - 0x5C280E00, // 001A MOVE R10 R7 - 0x7C200400, // 001B CALL R8 2 - 0x74220005, // 001C JMPT R8 #0023 - 0x60200004, // 001D GETGBL R8 G4 - 0x5C240E00, // 001E MOVE R9 R7 - 0x7C200200, // 001F CALL R8 1 - 0x1C201106, // 0020 EQ R8 R8 K6 - 0x74220000, // 0021 JMPT R8 #0023 - 0x50200001, // 0022 LDBOOL R8 0 1 - 0x50200200, // 0023 LDBOOL R8 1 0 - 0xA8040002, // 0024 EXBLK 1 2 - 0x80041000, // 0025 RET 1 R8 - 0x7001FFE9, // 0026 JMP #0011 - 0x58140007, // 0027 LDCONST R5 K7 - 0xAC140200, // 0028 CATCH R5 1 0 - 0xB0080000, // 0029 RAISE 2 R0 R0 - 0x50140000, // 002A LDBOOL R5 0 0 - 0xA8040001, // 002B EXBLK 1 1 - 0x80040A00, // 002C RET 1 R5 - 0xA8040001, // 002D EXBLK 1 1 - 0x70020005, // 002E JMP #0035 - 0xAC0C0002, // 002F CATCH R3 0 2 - 0x70020002, // 0030 JMP #0034 - 0x50140000, // 0031 LDBOOL R5 0 0 - 0x80040A00, // 0032 RET 1 R5 - 0x70020000, // 0033 JMP #0035 - 0xB0080000, // 0034 RAISE 2 R0 R0 - 0x80000000, // 0035 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_computation_closure -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_create_computation_closure, /* name */ - be_nested_proto( - 12, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(transform_operand_for_closure), - /* K2 */ be_nested_str_weak(find), - /* K3 */ be_nested_str_weak(_X20_X20), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(replace), - /* K6 */ be_nested_str_weak(_X20), - /* K7 */ be_nested_str_weak(def_X20_X28self_X2C_X20param_name_X2C_X20time_ms_X29_X20return_X20_X28_X25s_X20_X25s_X20_X25s_X29_X20end), - /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), - }), - be_str_weak(create_computation_closure), - &be_const_str_solidified, - ( &(const binstruction[44]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x8C140101, // 0001 GETMET R5 R0 K1 - 0x5C1C0200, // 0002 MOVE R7 R1 - 0x7C140400, // 0003 CALL R5 2 - 0x8C180101, // 0004 GETMET R6 R0 K1 - 0x5C200600, // 0005 MOVE R8 R3 - 0x7C180400, // 0006 CALL R6 2 - 0x8C1C0902, // 0007 GETMET R7 R4 K2 - 0x5C240A00, // 0008 MOVE R9 R5 - 0x58280003, // 0009 LDCONST R10 K3 - 0x7C1C0600, // 000A CALL R7 3 - 0x281C0F04, // 000B GE R7 R7 K4 - 0x781E0006, // 000C JMPF R7 #0014 - 0x8C1C0905, // 000D GETMET R7 R4 K5 - 0x5C240A00, // 000E MOVE R9 R5 - 0x58280003, // 000F LDCONST R10 K3 - 0x582C0006, // 0010 LDCONST R11 K6 - 0x7C1C0800, // 0011 CALL R7 4 - 0x5C140E00, // 0012 MOVE R5 R7 - 0x7001FFF2, // 0013 JMP #0007 - 0x8C1C0902, // 0014 GETMET R7 R4 K2 - 0x5C240C00, // 0015 MOVE R9 R6 - 0x58280003, // 0016 LDCONST R10 K3 - 0x7C1C0600, // 0017 CALL R7 3 - 0x281C0F04, // 0018 GE R7 R7 K4 - 0x781E0006, // 0019 JMPF R7 #0021 - 0x8C1C0905, // 001A GETMET R7 R4 K5 - 0x5C240C00, // 001B MOVE R9 R6 - 0x58280003, // 001C LDCONST R10 K3 - 0x582C0006, // 001D LDCONST R11 K6 - 0x7C1C0800, // 001E CALL R7 4 - 0x5C180E00, // 001F MOVE R6 R7 - 0x7001FFF2, // 0020 JMP #0014 - 0x601C0018, // 0021 GETGBL R7 G24 - 0x58200007, // 0022 LDCONST R8 K7 - 0x5C240A00, // 0023 MOVE R9 R5 - 0x5C280400, // 0024 MOVE R10 R2 - 0x5C2C0C00, // 0025 MOVE R11 R6 - 0x7C1C0800, // 0026 CALL R7 4 - 0x60200018, // 0027 GETGBL R8 G24 - 0x58240008, // 0028 LDCONST R9 K8 - 0x5C280E00, // 0029 MOVE R10 R7 - 0x7C200400, // 002A CALL R8 2 - 0x80041000, // 002B RET 1 R8 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: 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[ 7]) { /* 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(run_statements), - /* K4 */ be_nested_str_weak(push), - /* K5 */ be_nested_str_weak(name), - /* K6 */ be_nested_str_weak(comment), - }), - be_str_weak(process_run), - &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 - 0x880C0103, // 0006 GETMBR R3 R0 K3 - 0x8C0C0704, // 0007 GETMET R3 R3 K4 - 0x60140013, // 0008 GETGBL R5 G19 - 0x7C140000, // 0009 CALL R5 0 - 0x98160A01, // 000A SETIDX R5 K5 R1 - 0x98160C02, // 000B SETIDX R5 K6 R2 - 0x7C0C0400, // 000C CALL R3 2 - 0x80000000, // 000D 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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACKET), - }), - be_str_weak(check_right_bracket), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0005, // 0004 JMPF R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0000, // 000A JMPT R2 #000C - 0x50080001, // 000B LDBOOL R2 0 1 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x80040400, // 000D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_identifier_char -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_identifier_char, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(a), - /* K1 */ be_nested_str_weak(z), - /* K2 */ be_nested_str_weak(A), - /* K3 */ be_nested_str_weak(Z), - /* K4 */ be_nested_str_weak(0), - /* K5 */ be_nested_str_weak(9), - /* K6 */ be_nested_str_weak(_), - }), - be_str_weak(is_identifier_char), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x28080300, // 0000 GE R2 R1 K0 - 0x780A0001, // 0001 JMPF R2 #0004 - 0x18080301, // 0002 LE R2 R1 K1 - 0x740A000A, // 0003 JMPT R2 #000F - 0x28080302, // 0004 GE R2 R1 K2 - 0x780A0001, // 0005 JMPF R2 #0008 - 0x18080303, // 0006 LE R2 R1 K3 - 0x740A0006, // 0007 JMPT R2 #000F - 0x28080304, // 0008 GE R2 R1 K4 - 0x780A0001, // 0009 JMPF R2 #000C - 0x18080305, // 000A LE R2 R1 K5 - 0x740A0002, // 000B JMPT R2 #000F - 0x1C080306, // 000C EQ R2 R1 K6 - 0x740A0000, // 000D JMPT R2 #000F - 0x50080001, // 000E LDBOOL R2 0 1 - 0x50080200, // 000F LDBOOL R2 1 0 - 0x80040400, // 0010 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_for_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* name */ - be_nested_proto( - 15, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[24]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(_create_animation_instance_for_validation), - /* K2 */ be_nested_str_weak(at_end), - /* K3 */ be_nested_str_weak(check_right_paren), - /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K5 */ be_nested_str_weak(expect_identifier), - /* K6 */ be_nested_str_weak(_validate_single_parameter), - /* K7 */ be_nested_str_weak(expect_assign), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(argument), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(add), - /* K12 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K13 */ be_nested_str_weak(current), - /* K14 */ be_nested_str_weak(type), - /* K15 */ be_nested_str_weak(animation_dsl), - /* K16 */ be_nested_str_weak(Token), - /* K17 */ be_nested_str_weak(COMMENT), - /* K18 */ be_nested_str_weak(next), - /* K19 */ be_nested_str_weak(COMMA), - /* K20 */ be_nested_str_weak(NEWLINE), - /* K21 */ be_nested_str_weak(error), - /* K22 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K23 */ be_nested_str_weak(expect_right_paren), - }), - be_str_weak(_process_named_arguments_for_animation), - &be_const_str_solidified, - ( &(const binstruction[109]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x8C0C0101, // 0002 GETMET R3 R0 K1 - 0x5C140400, // 0003 MOVE R5 R2 - 0x7C0C0400, // 0004 CALL R3 2 - 0x8C100102, // 0005 GETMET R4 R0 K2 - 0x7C100200, // 0006 CALL R4 1 - 0x74120061, // 0007 JMPT R4 #006A - 0x8C100103, // 0008 GETMET R4 R0 K3 - 0x7C100200, // 0009 CALL R4 1 - 0x7412005E, // 000A JMPT R4 #006A - 0x8C100104, // 000B GETMET R4 R0 K4 - 0x7C100200, // 000C CALL R4 1 - 0x8C100103, // 000D GETMET R4 R0 K3 - 0x7C100200, // 000E CALL R4 1 - 0x78120000, // 000F JMPF R4 #0011 - 0x70020058, // 0010 JMP #006A - 0x8C100105, // 0011 GETMET R4 R0 K5 - 0x7C100200, // 0012 CALL R4 1 - 0x4C140000, // 0013 LDNIL R5 - 0x20140605, // 0014 NE R5 R3 R5 - 0x78160004, // 0015 JMPF R5 #001B - 0x8C140106, // 0016 GETMET R5 R0 K6 - 0x5C1C0400, // 0017 MOVE R7 R2 - 0x5C200800, // 0018 MOVE R8 R4 - 0x5C240600, // 0019 MOVE R9 R3 - 0x7C140800, // 001A CALL R5 4 - 0x8C140107, // 001B GETMET R5 R0 K7 - 0x7C140200, // 001C CALL R5 1 - 0x8C140108, // 001D GETMET R5 R0 K8 - 0x581C0009, // 001E LDCONST R7 K9 - 0x7C140400, // 001F CALL R5 2 - 0x8C18010A, // 0020 GETMET R6 R0 K10 - 0x7C180200, // 0021 CALL R6 1 - 0x8C1C010B, // 0022 GETMET R7 R0 K11 - 0x60240018, // 0023 GETGBL R9 G24 - 0x5828000C, // 0024 LDCONST R10 K12 - 0x5C2C0200, // 0025 MOVE R11 R1 - 0x5C300800, // 0026 MOVE R12 R4 - 0x5C340A00, // 0027 MOVE R13 R5 - 0x5C380C00, // 0028 MOVE R14 R6 - 0x7C240A00, // 0029 CALL R9 5 - 0x7C1C0400, // 002A CALL R7 2 - 0x8C1C0102, // 002B GETMET R7 R0 K2 - 0x7C1C0200, // 002C CALL R7 1 - 0x741E000F, // 002D JMPT R7 #003E - 0x8C1C010D, // 002E GETMET R7 R0 K13 - 0x7C1C0200, // 002F CALL R7 1 - 0x4C200000, // 0030 LDNIL R8 - 0x20200E08, // 0031 NE R8 R7 R8 - 0x78220008, // 0032 JMPF R8 #003C - 0x88200F0E, // 0033 GETMBR R8 R7 K14 - 0xB8261E00, // 0034 GETNGBL R9 K15 - 0x88241310, // 0035 GETMBR R9 R9 K16 - 0x88241311, // 0036 GETMBR R9 R9 K17 - 0x1C201009, // 0037 EQ R8 R8 R9 - 0x78220002, // 0038 JMPF R8 #003C - 0x8C200112, // 0039 GETMET R8 R0 K18 - 0x7C200200, // 003A CALL R8 1 - 0x70020000, // 003B JMP #003D - 0x70020000, // 003C JMP #003E - 0x7001FFEC, // 003D JMP #002B - 0x8C1C010D, // 003E GETMET R7 R0 K13 - 0x7C1C0200, // 003F CALL R7 1 - 0x4C200000, // 0040 LDNIL R8 - 0x201C0E08, // 0041 NE R7 R7 R8 - 0x781E000C, // 0042 JMPF R7 #0050 - 0x8C1C010D, // 0043 GETMET R7 R0 K13 - 0x7C1C0200, // 0044 CALL R7 1 - 0x881C0F0E, // 0045 GETMBR R7 R7 K14 - 0xB8221E00, // 0046 GETNGBL R8 K15 - 0x88201110, // 0047 GETMBR R8 R8 K16 - 0x88201113, // 0048 GETMBR R8 R8 K19 - 0x1C1C0E08, // 0049 EQ R7 R7 R8 - 0x781E0004, // 004A JMPF R7 #0050 - 0x8C1C0112, // 004B GETMET R7 R0 K18 - 0x7C1C0200, // 004C CALL R7 1 - 0x8C1C0104, // 004D GETMET R7 R0 K4 - 0x7C1C0200, // 004E CALL R7 1 - 0x70020018, // 004F JMP #0069 - 0x8C1C010D, // 0050 GETMET R7 R0 K13 - 0x7C1C0200, // 0051 CALL R7 1 - 0x4C200000, // 0052 LDNIL R8 - 0x201C0E08, // 0053 NE R7 R7 R8 - 0x781E000C, // 0054 JMPF R7 #0062 - 0x8C1C010D, // 0055 GETMET R7 R0 K13 - 0x7C1C0200, // 0056 CALL R7 1 - 0x881C0F0E, // 0057 GETMBR R7 R7 K14 - 0xB8221E00, // 0058 GETNGBL R8 K15 - 0x88201110, // 0059 GETMBR R8 R8 K16 - 0x88201114, // 005A GETMBR R8 R8 K20 - 0x1C1C0E08, // 005B EQ R7 R7 R8 - 0x781E0004, // 005C JMPF R7 #0062 - 0x8C1C0112, // 005D GETMET R7 R0 K18 - 0x7C1C0200, // 005E CALL R7 1 - 0x8C1C0104, // 005F GETMET R7 R0 K4 - 0x7C1C0200, // 0060 CALL R7 1 - 0x70020006, // 0061 JMP #0069 - 0x8C1C0103, // 0062 GETMET R7 R0 K3 - 0x7C1C0200, // 0063 CALL R7 1 - 0x741E0003, // 0064 JMPT R7 #0069 - 0x8C1C0115, // 0065 GETMET R7 R0 K21 - 0x58240016, // 0066 LDCONST R9 K22 - 0x7C1C0400, // 0067 CALL R7 2 - 0x70020000, // 0068 JMP #006A - 0x7001FF9A, // 0069 JMP #0005 - 0x8C100117, // 006A GETMET R4 R0 K23 - 0x7C100200, // 006B CALL R4 1 - 0x80000000, // 006C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_unary_expression_raw -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_unary_expression_raw, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_unary_expression_raw), - /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), - /* K11 */ be_nested_str_weak(PLUS), - /* K12 */ be_nested_str_weak(process_primary_expression_raw), - }), - be_str_weak(process_unary_expression_raw), - &be_const_str_solidified, - ( &(const binstruction[38]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x8C080101, // 0005 GETMET R2 R0 K1 - 0x58100002, // 0006 LDCONST R4 K2 - 0x7C080400, // 0007 CALL R2 2 - 0x80060600, // 0008 RET 1 K3 - 0x88080304, // 0009 GETMBR R2 R1 K4 - 0xB80E0A00, // 000A GETNGBL R3 K5 - 0x880C0706, // 000B GETMBR R3 R3 K6 - 0x880C0707, // 000C GETMBR R3 R3 K7 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x780A0008, // 000E JMPF R2 #0018 - 0x8C080108, // 000F GETMET R2 R0 K8 - 0x7C080200, // 0010 CALL R2 1 - 0x8C080109, // 0011 GETMET R2 R0 K9 - 0x7C080200, // 0012 CALL R2 1 - 0x600C0018, // 0013 GETGBL R3 G24 - 0x5810000A, // 0014 LDCONST R4 K10 - 0x5C140400, // 0015 MOVE R5 R2 - 0x7C0C0400, // 0016 CALL R3 2 - 0x80040600, // 0017 RET 1 R3 - 0x88080304, // 0018 GETMBR R2 R1 K4 - 0xB80E0A00, // 0019 GETNGBL R3 K5 - 0x880C0706, // 001A GETMBR R3 R3 K6 - 0x880C070B, // 001B GETMBR R3 R3 K11 - 0x1C080403, // 001C EQ R2 R2 R3 - 0x780A0004, // 001D JMPF R2 #0023 - 0x8C080108, // 001E GETMET R2 R0 K8 - 0x7C080200, // 001F CALL R2 1 - 0x8C080109, // 0020 GETMET R2 R0 K9 - 0x7C080200, // 0021 CALL R2 1 - 0x80040400, // 0022 RET 1 R2 - 0x8C08010C, // 0023 GETMET R2 R0 K12 - 0x7C080200, // 0024 CALL R2 1 - 0x80040400, // 0025 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_error_report -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(has_errors), - /* K1 */ be_nested_str_weak(No_X20compilation_X20errors), - /* K2 */ be_nested_str_weak(Compilation_X20errors_X3A_X0A), - /* K3 */ be_nested_str_weak(errors), - /* K4 */ be_nested_str_weak(_X20_X20), - /* K5 */ be_nested_str_weak(_X0A), - /* K6 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(get_error_report), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060000, // 0002 JMPT R1 #0004 - 0x80060200, // 0003 RET 1 K1 - 0x58040002, // 0004 LDCONST R1 K2 - 0x60080010, // 0005 GETGBL R2 G16 - 0x880C0103, // 0006 GETMBR R3 R0 K3 - 0x7C080200, // 0007 CALL R2 1 - 0xA8020005, // 0008 EXBLK 0 #000F - 0x5C0C0400, // 0009 MOVE R3 R2 - 0x7C0C0000, // 000A CALL R3 0 - 0x00120803, // 000B ADD R4 K4 R3 - 0x00100905, // 000C ADD R4 R4 K5 - 0x00040204, // 000D ADD R1 R1 R4 - 0x7001FFF9, // 000E JMP #0009 - 0x58080006, // 000F LDCONST R2 K6 - 0xAC080200, // 0010 CATCH R2 1 0 - 0xB0080000, // 0011 RAISE 2 R0 R0 - 0x80040200, // 0012 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ - be_nested_proto( - 15, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[34]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(color), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_assign), - /* K6 */ be_nested_str_weak(current), - /* K7 */ be_nested_str_weak(type), - /* K8 */ be_nested_str_weak(animation_dsl), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(KEYWORD), - /* K11 */ be_nested_str_weak(IDENTIFIER), - /* K12 */ be_nested_str_weak(peek), - /* K13 */ be_nested_str_weak(LEFT_PAREN), - /* K14 */ be_nested_str_weak(value), - /* K15 */ be_nested_str_weak(), - /* K16 */ be_nested_str_weak(COMMENT), - /* K17 */ be_nested_str_weak(_X20_X20), - /* K18 */ be_nested_str_weak(animation), - /* K19 */ be_nested_str_weak(is_user_function), - /* K20 */ be_nested_str_weak(process_function_arguments), - /* K21 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K22 */ be_nested_str_weak(engine), - /* K23 */ be_nested_str_weak(add), - /* K24 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), - /* K25 */ be_nested_str_weak(_validate_color_provider_factory_exists), - /* K26 */ be_nested_str_weak(error), - /* K27 */ be_nested_str_weak(Color_X20provider_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), - /* K28 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), - /* K29 */ be_nested_str_weak(_process_named_arguments_for_color_provider), - /* K30 */ be_nested_str_weak(_X25s_), - /* K31 */ be_nested_str_weak(process_value), - /* K32 */ be_nested_str_weak(collect_inline_comment), - /* K33 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - }), - be_str_weak(process_color), - &be_const_str_solidified, - ( &(const binstruction[133]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x7C080200, // 000F CALL R2 1 - 0x880C0507, // 0010 GETMBR R3 R2 K7 - 0xB8121000, // 0011 GETNGBL R4 K8 - 0x88100909, // 0012 GETMBR R4 R4 K9 - 0x8810090A, // 0013 GETMBR R4 R4 K10 - 0x1C0C0604, // 0014 EQ R3 R3 R4 - 0x740E0005, // 0015 JMPT R3 #001C - 0x880C0507, // 0016 GETMBR R3 R2 K7 - 0xB8121000, // 0017 GETNGBL R4 K8 - 0x88100909, // 0018 GETMBR R4 R4 K9 - 0x8810090B, // 0019 GETMBR R4 R4 K11 - 0x1C0C0604, // 001A EQ R3 R3 R4 - 0x780E005A, // 001B JMPF R3 #0077 - 0x8C0C010C, // 001C GETMET R3 R0 K12 - 0x7C0C0200, // 001D CALL R3 1 - 0x4C100000, // 001E LDNIL R4 - 0x200C0604, // 001F NE R3 R3 R4 - 0x780E0055, // 0020 JMPF R3 #0077 - 0x8C0C010C, // 0021 GETMET R3 R0 K12 - 0x7C0C0200, // 0022 CALL R3 1 - 0x880C0707, // 0023 GETMBR R3 R3 K7 - 0xB8121000, // 0024 GETNGBL R4 K8 - 0x88100909, // 0025 GETMBR R4 R4 K9 - 0x8810090D, // 0026 GETMBR R4 R4 K13 - 0x1C0C0604, // 0027 EQ R3 R3 R4 - 0x780E004D, // 0028 JMPF R3 #0077 - 0x880C050E, // 0029 GETMBR R3 R2 K14 - 0x8C100100, // 002A GETMET R4 R0 K0 - 0x7C100200, // 002B CALL R4 1 - 0x5810000F, // 002C LDCONST R4 K15 - 0x8C140106, // 002D GETMET R5 R0 K6 - 0x7C140200, // 002E CALL R5 1 - 0x4C180000, // 002F LDNIL R6 - 0x20140A06, // 0030 NE R5 R5 R6 - 0x7816000E, // 0031 JMPF R5 #0041 - 0x8C140106, // 0032 GETMET R5 R0 K6 - 0x7C140200, // 0033 CALL R5 1 - 0x88140B07, // 0034 GETMBR R5 R5 K7 - 0xB81A1000, // 0035 GETNGBL R6 K8 - 0x88180D09, // 0036 GETMBR R6 R6 K9 - 0x88180D10, // 0037 GETMBR R6 R6 K16 - 0x1C140A06, // 0038 EQ R5 R5 R6 - 0x78160006, // 0039 JMPF R5 #0041 - 0x8C140106, // 003A GETMET R5 R0 K6 - 0x7C140200, // 003B CALL R5 1 - 0x88140B0E, // 003C GETMBR R5 R5 K14 - 0x00162205, // 003D ADD R5 K17 R5 - 0x5C100A00, // 003E MOVE R4 R5 - 0x8C140100, // 003F GETMET R5 R0 K0 - 0x7C140200, // 0040 CALL R5 1 - 0xB8162400, // 0041 GETNGBL R5 K18 - 0x8C140B13, // 0042 GETMET R5 R5 K19 - 0x5C1C0600, // 0043 MOVE R7 R3 - 0x7C140400, // 0044 CALL R5 2 - 0x78160013, // 0045 JMPF R5 #005A - 0x8C140114, // 0046 GETMET R5 R0 K20 - 0x7C140200, // 0047 CALL R5 1 - 0x20180B0F, // 0048 NE R6 R5 K15 - 0x781A0004, // 0049 JMPF R6 #004F - 0x60180018, // 004A GETGBL R6 G24 - 0x581C0015, // 004B LDCONST R7 K21 - 0x5C200A00, // 004C MOVE R8 R5 - 0x7C180400, // 004D CALL R6 2 - 0x70020000, // 004E JMP #0050 - 0x58180016, // 004F LDCONST R6 K22 - 0x8C1C0117, // 0050 GETMET R7 R0 K23 - 0x60240018, // 0051 GETGBL R9 G24 - 0x58280018, // 0052 LDCONST R10 K24 - 0x5C2C0200, // 0053 MOVE R11 R1 - 0x5C300600, // 0054 MOVE R12 R3 - 0x5C340C00, // 0055 MOVE R13 R6 - 0x5C380800, // 0056 MOVE R14 R4 - 0x7C240A00, // 0057 CALL R9 5 - 0x7C1C0400, // 0058 CALL R7 2 - 0x7002001B, // 0059 JMP #0076 - 0x8C140119, // 005A GETMET R5 R0 K25 - 0x5C1C0600, // 005B MOVE R7 R3 - 0x7C140400, // 005C CALL R5 2 - 0x74160008, // 005D JMPT R5 #0067 - 0x8C14011A, // 005E GETMET R5 R0 K26 - 0x601C0018, // 005F GETGBL R7 G24 - 0x5820001B, // 0060 LDCONST R8 K27 - 0x5C240600, // 0061 MOVE R9 R3 - 0x7C1C0400, // 0062 CALL R7 2 - 0x7C140400, // 0063 CALL R5 2 - 0x8C140104, // 0064 GETMET R5 R0 K4 - 0x7C140200, // 0065 CALL R5 1 - 0x80000A00, // 0066 RET 0 - 0x8C140117, // 0067 GETMET R5 R0 K23 - 0x601C0018, // 0068 GETGBL R7 G24 - 0x5820001C, // 0069 LDCONST R8 K28 - 0x5C240200, // 006A MOVE R9 R1 - 0x5C280600, // 006B MOVE R10 R3 - 0x5C2C0800, // 006C MOVE R11 R4 - 0x7C1C0800, // 006D CALL R7 4 - 0x7C140400, // 006E CALL R5 2 - 0x8C14011D, // 006F GETMET R5 R0 K29 - 0x601C0018, // 0070 GETGBL R7 G24 - 0x5820001E, // 0071 LDCONST R8 K30 - 0x5C240200, // 0072 MOVE R9 R1 - 0x7C1C0400, // 0073 CALL R7 2 - 0x5C200600, // 0074 MOVE R8 R3 - 0x7C140600, // 0075 CALL R5 3 - 0x7002000C, // 0076 JMP #0084 - 0x8C0C011F, // 0077 GETMET R3 R0 K31 - 0x58140003, // 0078 LDCONST R5 K3 - 0x7C0C0400, // 0079 CALL R3 2 - 0x8C100120, // 007A GETMET R4 R0 K32 - 0x7C100200, // 007B CALL R4 1 - 0x8C140117, // 007C GETMET R5 R0 K23 - 0x601C0018, // 007D GETGBL R7 G24 - 0x58200021, // 007E LDCONST R8 K33 - 0x5C240200, // 007F MOVE R9 R1 - 0x5C280600, // 0080 MOVE R10 R3 - 0x5C2C0800, // 0081 MOVE R11 R4 - 0x7C1C0800, // 0082 CALL R7 4 - 0x7C140400, // 0083 CALL R5 2 - 0x80000000, // 0084 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_animation_factory_creates_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_validate_factory_function), - /* K1 */ be_nested_str_weak(animation), - }), - be_str_weak(_validate_animation_factory_creates_animation), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0xB8160200, // 0002 GETNGBL R5 K1 - 0x88140B01, // 0003 GETMBR R5 R5 K1 - 0x7C080600, // 0004 CALL R2 3 - 0x80040400, // 0005 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: can_use_as_identifier -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_can_use_as_identifier, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(color), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(palette), - /* K3 */ be_nested_str_weak(startup), - /* K4 */ be_nested_str_weak(shutdown), - /* K5 */ be_nested_str_weak(button_press), - /* K6 */ be_nested_str_weak(button_hold), - /* K7 */ be_nested_str_weak(motion_detected), - /* K8 */ be_nested_str_weak(brightness_change), - /* K9 */ be_nested_str_weak(timer), - /* K10 */ be_nested_str_weak(time), - /* K11 */ be_nested_str_weak(sound_peak), - /* K12 */ be_nested_str_weak(network_message), - /* K13 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(can_use_as_identifier), - &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x400C0500, // 0002 CONNECT R3 R2 K0 - 0x400C0501, // 0003 CONNECT R3 R2 K1 - 0x400C0502, // 0004 CONNECT R3 R2 K2 - 0x400C0503, // 0005 CONNECT R3 R2 K3 - 0x400C0504, // 0006 CONNECT R3 R2 K4 - 0x400C0505, // 0007 CONNECT R3 R2 K5 - 0x400C0506, // 0008 CONNECT R3 R2 K6 - 0x400C0507, // 0009 CONNECT R3 R2 K7 - 0x400C0508, // 000A CONNECT R3 R2 K8 - 0x400C0509, // 000B CONNECT R3 R2 K9 - 0x400C050A, // 000C CONNECT R3 R2 K10 - 0x400C050B, // 000D CONNECT R3 R2 K11 - 0x400C050C, // 000E CONNECT R3 R2 K12 - 0x600C0010, // 000F GETGBL R3 G16 - 0x5C100400, // 0010 MOVE R4 R2 - 0x7C0C0200, // 0011 CALL R3 1 - 0xA8020007, // 0012 EXBLK 0 #001B - 0x5C100600, // 0013 MOVE R4 R3 - 0x7C100000, // 0014 CALL R4 0 - 0x1C140204, // 0015 EQ R5 R1 R4 - 0x78160002, // 0016 JMPF R5 #001A - 0x50140200, // 0017 LDBOOL R5 1 0 - 0xA8040001, // 0018 EXBLK 1 1 - 0x80040A00, // 0019 RET 1 R5 - 0x7001FFF7, // 001A JMP #0013 - 0x580C000D, // 001B LDCONST R3 K13 - 0xAC0C0200, // 001C CATCH R3 1 0 - 0xB0080000, // 001D RAISE 2 R0 R0 - 0x500C0000, // 001E LDBOOL R3 0 0 - 0x80040600, // 001F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_unary_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ - be_nested_proto( - 8, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(nil), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(animation_dsl), - /* K6 */ be_nested_str_weak(Token), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(process_unary_expression), - /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), - /* K11 */ be_nested_str_weak(PLUS), - /* K12 */ be_nested_str_weak(process_primary_expression), - }), - be_str_weak(process_unary_expression), - &be_const_str_solidified, - ( &(const binstruction[44]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x4C100000, // 0002 LDNIL R4 - 0x1C100604, // 0003 EQ R4 R3 R4 - 0x78120003, // 0004 JMPF R4 #0009 - 0x8C100101, // 0005 GETMET R4 R0 K1 - 0x58180002, // 0006 LDCONST R6 K2 - 0x7C100400, // 0007 CALL R4 2 - 0x80060600, // 0008 RET 1 K3 - 0x88100704, // 0009 GETMBR R4 R3 K4 - 0xB8160A00, // 000A GETNGBL R5 K5 - 0x88140B06, // 000B GETMBR R5 R5 K6 - 0x88140B07, // 000C GETMBR R5 R5 K7 - 0x1C100805, // 000D EQ R4 R4 R5 - 0x7812000A, // 000E JMPF R4 #001A - 0x8C100108, // 000F GETMET R4 R0 K8 - 0x7C100200, // 0010 CALL R4 1 - 0x8C100109, // 0011 GETMET R4 R0 K9 - 0x5C180200, // 0012 MOVE R6 R1 - 0x501C0000, // 0013 LDBOOL R7 0 0 - 0x7C100600, // 0014 CALL R4 3 - 0x60140018, // 0015 GETGBL R5 G24 - 0x5818000A, // 0016 LDCONST R6 K10 - 0x5C1C0800, // 0017 MOVE R7 R4 - 0x7C140400, // 0018 CALL R5 2 - 0x80040A00, // 0019 RET 1 R5 - 0x88100704, // 001A GETMBR R4 R3 K4 - 0xB8160A00, // 001B GETNGBL R5 K5 - 0x88140B06, // 001C GETMBR R5 R5 K6 - 0x88140B0B, // 001D GETMBR R5 R5 K11 - 0x1C100805, // 001E EQ R4 R4 R5 - 0x78120006, // 001F JMPF R4 #0027 - 0x8C100108, // 0020 GETMET R4 R0 K8 - 0x7C100200, // 0021 CALL R4 1 - 0x8C100109, // 0022 GETMET R4 R0 K9 - 0x5C180200, // 0023 MOVE R6 R1 - 0x501C0000, // 0024 LDBOOL R7 0 0 - 0x7C100600, // 0025 CALL R4 3 - 0x80040800, // 0026 RET 1 R4 - 0x8C10010C, // 0027 GETMET R4 R0 K12 - 0x5C180200, // 0028 MOVE R6 R1 - 0x5C1C0400, // 0029 MOVE R7 R2 - 0x7C100600, // 002A CALL R4 3 - 0x80040800, // 002B RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_anonymous_function -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_anonymous_function, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(_X28def_X20), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(_X29_X28engine_X29), - }), - be_str_weak(is_anonymous_function), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x1C0C0703, // 0005 EQ R3 R3 K3 - 0x780E0005, // 0006 JMPF R3 #000D - 0x8C0C0501, // 0007 GETMET R3 R2 K1 - 0x5C140200, // 0008 MOVE R5 R1 - 0x58180004, // 0009 LDCONST R6 K4 - 0x7C0C0600, // 000A CALL R3 3 - 0x280C0703, // 000B GE R3 R3 K3 - 0x740E0000, // 000C JMPT R3 #000E - 0x500C0001, // 000D LDBOOL R3 0 1 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0x80040600, // 000F RET 1 R3 + 0x80040400, // 000E RET 1 R2 + 0x70020003, // 000F JMP #0014 + 0x8C080107, // 0010 GETMET R2 R0 K7 + 0x58100008, // 0011 LDCONST R4 K8 + 0x7C080400, // 0012 CALL R2 2 + 0x80061200, // 0013 RET 1 K9 + 0x80000000, // 0014 RET 0 }) ) ); @@ -7693,613 +3381,6 @@ be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_generic, / /*******************************************************************/ -/******************************************************************** -** Solidified function: process_nested_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* 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[28]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(IDENTIFIER), - /* K6 */ be_nested_str_weak(KEYWORD), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(next), - /* K9 */ be_nested_str_weak(error), - /* K10 */ be_nested_str_weak(Expected_X20function_X20name), - /* K11 */ be_nested_str_weak(nil), - /* K12 */ be_nested_str_weak(is_math_method), - /* K13 */ be_nested_str_weak(process_function_arguments_for_expression), - /* K14 */ be_nested_str_weak(self_X2E_X25s_X28_X25s_X29), - /* K15 */ be_nested_str_weak(animation), - /* K16 */ be_nested_str_weak(is_user_function), - /* K17 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), - /* K18 */ be_nested_str_weak(self_X2Eengine), - /* K19 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), - /* K20 */ be_nested_str_weak(_is_simple_function_call), - /* K21 */ be_nested_str_weak(process_function_arguments), - /* K22 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), - /* K23 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - /* K24 */ be_nested_str_weak(_validate_animation_factory_exists), - /* K25 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), - /* K26 */ be_nested_str_weak(skip_function_arguments), - /* K27 */ be_nested_str_weak(_generate_anonymous_function_call), - }), - be_str_weak(process_nested_function_call), - &be_const_str_solidified, - ( &(const binstruction[99]) { /* 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 - 0x780E000F, // 0005 JMPF R3 #0016 - 0x880C0302, // 0006 GETMBR R3 R1 K2 - 0xB8120600, // 0007 GETNGBL R4 K3 - 0x88100904, // 0008 GETMBR R4 R4 K4 - 0x88100905, // 0009 GETMBR R4 R4 K5 - 0x1C0C0604, // 000A EQ R3 R3 R4 - 0x740E0005, // 000B JMPT R3 #0012 - 0x880C0302, // 000C GETMBR R3 R1 K2 - 0xB8120600, // 000D GETNGBL R4 K3 - 0x88100904, // 000E GETMBR R4 R4 K4 - 0x88100906, // 000F GETMBR R4 R4 K6 - 0x1C0C0604, // 0010 EQ R3 R3 R4 - 0x780E0003, // 0011 JMPF R3 #0016 - 0x88080307, // 0012 GETMBR R2 R1 K7 - 0x8C0C0108, // 0013 GETMET R3 R0 K8 - 0x7C0C0200, // 0014 CALL R3 1 - 0x70020003, // 0015 JMP #001A - 0x8C0C0109, // 0016 GETMET R3 R0 K9 - 0x5814000A, // 0017 LDCONST R5 K10 - 0x7C0C0400, // 0018 CALL R3 2 - 0x80061600, // 0019 RET 1 K11 - 0x8C0C010C, // 001A GETMET R3 R0 K12 - 0x5C140400, // 001B MOVE R5 R2 - 0x7C0C0400, // 001C CALL R3 2 - 0x780E0007, // 001D JMPF R3 #0026 - 0x8C0C010D, // 001E GETMET R3 R0 K13 - 0x7C0C0200, // 001F CALL R3 1 - 0x60100018, // 0020 GETGBL R4 G24 - 0x5814000E, // 0021 LDCONST R5 K14 - 0x5C180400, // 0022 MOVE R6 R2 - 0x5C1C0600, // 0023 MOVE R7 R3 - 0x7C100600, // 0024 CALL R4 3 - 0x80040800, // 0025 RET 1 R4 - 0xB80E1E00, // 0026 GETNGBL R3 K15 - 0x8C0C0710, // 0027 GETMET R3 R3 K16 - 0x5C140400, // 0028 MOVE R5 R2 - 0x7C0C0400, // 0029 CALL R3 2 - 0x780E0010, // 002A JMPF R3 #003C - 0x8C0C010D, // 002B GETMET R3 R0 K13 - 0x7C0C0200, // 002C CALL R3 1 - 0x20100701, // 002D NE R4 R3 K1 - 0x78120004, // 002E JMPF R4 #0034 - 0x60100018, // 002F GETGBL R4 G24 - 0x58140011, // 0030 LDCONST R5 K17 - 0x5C180600, // 0031 MOVE R6 R3 - 0x7C100400, // 0032 CALL R4 2 - 0x70020000, // 0033 JMP #0035 - 0x58100012, // 0034 LDCONST R4 K18 - 0x60140018, // 0035 GETGBL R5 G24 - 0x58180013, // 0036 LDCONST R6 K19 - 0x5C1C0400, // 0037 MOVE R7 R2 - 0x5C200800, // 0038 MOVE R8 R4 - 0x7C140600, // 0039 CALL R5 3 - 0x80040A00, // 003A RET 1 R5 - 0x70020025, // 003B JMP #0062 - 0x8C0C0114, // 003C GETMET R3 R0 K20 - 0x5C140400, // 003D MOVE R5 R2 - 0x7C0C0400, // 003E CALL R3 2 - 0x780E0010, // 003F JMPF R3 #0051 - 0x8C0C0115, // 0040 GETMET R3 R0 K21 - 0x7C0C0200, // 0041 CALL R3 1 - 0x20100701, // 0042 NE R4 R3 K1 - 0x78120006, // 0043 JMPF R4 #004B - 0x60100018, // 0044 GETGBL R4 G24 - 0x58140016, // 0045 LDCONST R5 K22 - 0x5C180400, // 0046 MOVE R6 R2 - 0x5C1C0600, // 0047 MOVE R7 R3 - 0x7C100600, // 0048 CALL R4 3 - 0x80040800, // 0049 RET 1 R4 - 0x70020004, // 004A JMP #0050 - 0x60100018, // 004B GETGBL R4 G24 - 0x58140017, // 004C LDCONST R5 K23 - 0x5C180400, // 004D MOVE R6 R2 - 0x7C100400, // 004E CALL R4 2 - 0x80040800, // 004F RET 1 R4 - 0x70020010, // 0050 JMP #0062 - 0x8C0C0118, // 0051 GETMET R3 R0 K24 - 0x5C140400, // 0052 MOVE R5 R2 - 0x7C0C0400, // 0053 CALL R3 2 - 0x740E0008, // 0054 JMPT R3 #005E - 0x8C0C0109, // 0055 GETMET R3 R0 K9 - 0x60140018, // 0056 GETGBL R5 G24 - 0x58180019, // 0057 LDCONST R6 K25 - 0x5C1C0400, // 0058 MOVE R7 R2 - 0x7C140400, // 0059 CALL R5 2 - 0x7C0C0400, // 005A CALL R3 2 - 0x8C0C011A, // 005B GETMET R3 R0 K26 - 0x7C0C0200, // 005C CALL R3 1 - 0x80061600, // 005D RET 1 K11 - 0x8C0C011B, // 005E GETMET R3 R0 K27 - 0x5C140400, // 005F MOVE R5 R2 - 0x7C0C0400, // 0060 CALL R3 2 - 0x80040600, // 0061 RET 1 R3 - 0x80000000, // 0062 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_statement, /* name */ - be_nested_proto( - 15, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[40]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(EOF), - /* K5 */ be_nested_str_weak(COMMENT), - /* K6 */ be_nested_str_weak(add), - /* K7 */ be_nested_str_weak(_X20_X20), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(NEWLINE), - /* K11 */ be_nested_str_weak(KEYWORD), - /* K12 */ be_nested_str_weak(play), - /* K13 */ be_nested_str_weak(), - /* K14 */ be_nested_str_weak(IDENTIFIER), - /* K15 */ be_nested_str_weak(peek), - /* K16 */ be_nested_str_weak(LEFT_PAREN), - /* K17 */ be_nested_str_weak(process_nested_function_call), - /* K18 */ be_nested_str_weak(expect_identifier), - /* K19 */ be_nested_str_weak(animation_X2Eglobal_X28_X27_X25s__X27_X29), - /* K20 */ be_nested_str_weak(0), - /* K21 */ be_nested_str_weak(for), - /* K22 */ be_nested_str_weak(process_time_value), - /* K23 */ be_nested_str_weak(collect_inline_comment), - /* K24 */ be_nested_str_weak(_X20_X20steps_X2Epush_X28animation_X2Ecreate_play_step_X28_X25s_X2C_X20_X25s_X29_X29_X25s), - /* K25 */ be_nested_str_weak(wait), - /* K26 */ be_nested_str_weak(_X20_X20steps_X2Epush_X28animation_X2Ecreate_wait_step_X28_X25s_X29_X29_X25s), - /* K27 */ be_nested_str_weak(repeat), - /* K28 */ be_nested_str_weak(expect_number), - /* K29 */ be_nested_str_weak(expect_keyword), - /* K30 */ be_nested_str_weak(times), - /* K31 */ be_nested_str_weak(expect_colon), - /* K32 */ be_nested_str_weak(_X20_X20for_X20repeat_i_X20_X3A_X200_X2E_X2E_X25s_X2D1), - /* K33 */ be_nested_str_weak(at_end), - /* K34 */ be_nested_str_weak(check_right_brace), - /* K35 */ be_nested_str_weak(_X20_X20_X20_X20), - /* K36 */ be_nested_str_weak(_X20_X20_X20_X20steps_X2Epush_X28animation_X2Ecreate_play_step_X28_X25s_X2C_X20_X25s_X29_X29_X25s), - /* K37 */ be_nested_str_weak(_X20_X20_X20_X20steps_X2Epush_X28animation_X2Ecreate_wait_step_X28_X25s_X29_X29_X25s), - /* K38 */ be_nested_str_weak(_X20_X20end), - /* K39 */ be_nested_str_weak(skip_statement), - }), - be_str_weak(process_sequence_statement), - &be_const_str_solidified, - ( &(const binstruction[335]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x740A0005, // 0004 JMPT R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0000, // 000A JMPF R2 #000C - 0x80000400, // 000B RET 0 - 0x88080301, // 000C GETMBR R2 R1 K1 - 0xB80E0400, // 000D GETNGBL R3 K2 - 0x880C0703, // 000E GETMBR R3 R3 K3 - 0x880C0705, // 000F GETMBR R3 R3 K5 - 0x1C080403, // 0010 EQ R2 R2 R3 - 0x780A0006, // 0011 JMPF R2 #0019 - 0x8C080106, // 0012 GETMET R2 R0 K6 - 0x88100308, // 0013 GETMBR R4 R1 K8 - 0x00120E04, // 0014 ADD R4 K7 R4 - 0x7C080400, // 0015 CALL R2 2 - 0x8C080109, // 0016 GETMET R2 R0 K9 - 0x7C080200, // 0017 CALL R2 1 - 0x80000400, // 0018 RET 0 - 0x88080301, // 0019 GETMBR R2 R1 K1 - 0xB80E0400, // 001A GETNGBL R3 K2 - 0x880C0703, // 001B GETMBR R3 R3 K3 - 0x880C070A, // 001C GETMBR R3 R3 K10 - 0x1C080403, // 001D EQ R2 R2 R3 - 0x780A0002, // 001E JMPF R2 #0022 - 0x8C080109, // 001F GETMET R2 R0 K9 - 0x7C080200, // 0020 CALL R2 1 - 0x80000400, // 0021 RET 0 - 0x88080301, // 0022 GETMBR R2 R1 K1 - 0xB80E0400, // 0023 GETNGBL R3 K2 - 0x880C0703, // 0024 GETMBR R3 R3 K3 - 0x880C070B, // 0025 GETMBR R3 R3 K11 - 0x1C080403, // 0026 EQ R2 R2 R3 - 0x780A0053, // 0027 JMPF R2 #007C - 0x88080308, // 0028 GETMBR R2 R1 K8 - 0x1C08050C, // 0029 EQ R2 R2 K12 - 0x780A0050, // 002A JMPF R2 #007C - 0x8C080109, // 002B GETMET R2 R0 K9 - 0x7C080200, // 002C CALL R2 1 - 0x5808000D, // 002D LDCONST R2 K13 - 0x8C0C0100, // 002E GETMET R3 R0 K0 - 0x7C0C0200, // 002F CALL R3 1 - 0x4C100000, // 0030 LDNIL R4 - 0x20100604, // 0031 NE R4 R3 R4 - 0x7812001C, // 0032 JMPF R4 #0050 - 0x88100701, // 0033 GETMBR R4 R3 K1 - 0xB8160400, // 0034 GETNGBL R5 K2 - 0x88140B03, // 0035 GETMBR R5 R5 K3 - 0x88140B0E, // 0036 GETMBR R5 R5 K14 - 0x1C100805, // 0037 EQ R4 R4 R5 - 0x74120005, // 0038 JMPT R4 #003F - 0x88100701, // 0039 GETMBR R4 R3 K1 - 0xB8160400, // 003A GETNGBL R5 K2 - 0x88140B03, // 003B GETMBR R5 R5 K3 - 0x88140B0B, // 003C GETMBR R5 R5 K11 - 0x1C100805, // 003D EQ R4 R4 R5 - 0x78120010, // 003E JMPF R4 #0050 - 0x8C10010F, // 003F GETMET R4 R0 K15 - 0x7C100200, // 0040 CALL R4 1 - 0x4C140000, // 0041 LDNIL R5 - 0x20100805, // 0042 NE R4 R4 R5 - 0x7812000B, // 0043 JMPF R4 #0050 - 0x8C10010F, // 0044 GETMET R4 R0 K15 - 0x7C100200, // 0045 CALL R4 1 - 0x88100901, // 0046 GETMBR R4 R4 K1 - 0xB8160400, // 0047 GETNGBL R5 K2 - 0x88140B03, // 0048 GETMBR R5 R5 K3 - 0x88140B10, // 0049 GETMBR R5 R5 K16 - 0x1C100805, // 004A EQ R4 R4 R5 - 0x78120003, // 004B JMPF R4 #0050 - 0x8C100111, // 004C GETMET R4 R0 K17 - 0x7C100200, // 004D CALL R4 1 - 0x5C080800, // 004E MOVE R2 R4 - 0x70020006, // 004F JMP #0057 - 0x8C100112, // 0050 GETMET R4 R0 K18 - 0x7C100200, // 0051 CALL R4 1 - 0x60140018, // 0052 GETGBL R5 G24 - 0x58180013, // 0053 LDCONST R6 K19 - 0x5C1C0800, // 0054 MOVE R7 R4 - 0x7C140400, // 0055 CALL R5 2 - 0x5C080A00, // 0056 MOVE R2 R5 - 0x58100014, // 0057 LDCONST R4 K20 - 0x8C140100, // 0058 GETMET R5 R0 K0 - 0x7C140200, // 0059 CALL R5 1 - 0x4C180000, // 005A LDNIL R6 - 0x20140A06, // 005B NE R5 R5 R6 - 0x78160013, // 005C JMPF R5 #0071 - 0x8C140100, // 005D GETMET R5 R0 K0 - 0x7C140200, // 005E CALL R5 1 - 0x88140B01, // 005F GETMBR R5 R5 K1 - 0xB81A0400, // 0060 GETNGBL R6 K2 - 0x88180D03, // 0061 GETMBR R6 R6 K3 - 0x88180D0B, // 0062 GETMBR R6 R6 K11 - 0x1C140A06, // 0063 EQ R5 R5 R6 - 0x7816000B, // 0064 JMPF R5 #0071 - 0x8C140100, // 0065 GETMET R5 R0 K0 - 0x7C140200, // 0066 CALL R5 1 - 0x88140B08, // 0067 GETMBR R5 R5 K8 - 0x1C140B15, // 0068 EQ R5 R5 K21 - 0x78160006, // 0069 JMPF R5 #0071 - 0x8C140109, // 006A GETMET R5 R0 K9 - 0x7C140200, // 006B CALL R5 1 - 0x60140008, // 006C GETGBL R5 G8 - 0x8C180116, // 006D GETMET R6 R0 K22 - 0x7C180200, // 006E CALL R6 1 - 0x7C140200, // 006F CALL R5 1 - 0x5C100A00, // 0070 MOVE R4 R5 - 0x8C140117, // 0071 GETMET R5 R0 K23 - 0x7C140200, // 0072 CALL R5 1 - 0x8C180106, // 0073 GETMET R6 R0 K6 - 0x60200018, // 0074 GETGBL R8 G24 - 0x58240018, // 0075 LDCONST R9 K24 - 0x5C280400, // 0076 MOVE R10 R2 - 0x5C2C0800, // 0077 MOVE R11 R4 - 0x5C300A00, // 0078 MOVE R12 R5 - 0x7C200800, // 0079 CALL R8 4 - 0x7C180400, // 007A CALL R6 2 - 0x700200D1, // 007B JMP #014E - 0x88080301, // 007C GETMBR R2 R1 K1 - 0xB80E0400, // 007D GETNGBL R3 K2 - 0x880C0703, // 007E GETMBR R3 R3 K3 - 0x880C070B, // 007F GETMBR R3 R3 K11 - 0x1C080403, // 0080 EQ R2 R2 R3 - 0x780A0010, // 0081 JMPF R2 #0093 - 0x88080308, // 0082 GETMBR R2 R1 K8 - 0x1C080519, // 0083 EQ R2 R2 K25 - 0x780A000D, // 0084 JMPF R2 #0093 - 0x8C080109, // 0085 GETMET R2 R0 K9 - 0x7C080200, // 0086 CALL R2 1 - 0x8C080116, // 0087 GETMET R2 R0 K22 - 0x7C080200, // 0088 CALL R2 1 - 0x8C0C0117, // 0089 GETMET R3 R0 K23 - 0x7C0C0200, // 008A CALL R3 1 - 0x8C100106, // 008B GETMET R4 R0 K6 - 0x60180018, // 008C GETGBL R6 G24 - 0x581C001A, // 008D LDCONST R7 K26 - 0x5C200400, // 008E MOVE R8 R2 - 0x5C240600, // 008F MOVE R9 R3 - 0x7C180600, // 0090 CALL R6 3 - 0x7C100400, // 0091 CALL R4 2 - 0x700200BA, // 0092 JMP #014E - 0x88080301, // 0093 GETMBR R2 R1 K1 - 0xB80E0400, // 0094 GETNGBL R3 K2 - 0x880C0703, // 0095 GETMBR R3 R3 K3 - 0x880C070B, // 0096 GETMBR R3 R3 K11 - 0x1C080403, // 0097 EQ R2 R2 R3 - 0x780A00B2, // 0098 JMPF R2 #014C - 0x88080308, // 0099 GETMBR R2 R1 K8 - 0x1C08051B, // 009A EQ R2 R2 K27 - 0x780A00AF, // 009B JMPF R2 #014C - 0x8C080109, // 009C GETMET R2 R0 K9 - 0x7C080200, // 009D CALL R2 1 - 0x8C08011C, // 009E GETMET R2 R0 K28 - 0x7C080200, // 009F CALL R2 1 - 0x8C0C011D, // 00A0 GETMET R3 R0 K29 - 0x5814001E, // 00A1 LDCONST R5 K30 - 0x7C0C0400, // 00A2 CALL R3 2 - 0x8C0C011F, // 00A3 GETMET R3 R0 K31 - 0x7C0C0200, // 00A4 CALL R3 1 - 0x8C0C0106, // 00A5 GETMET R3 R0 K6 - 0x60140018, // 00A6 GETGBL R5 G24 - 0x58180020, // 00A7 LDCONST R6 K32 - 0x5C1C0400, // 00A8 MOVE R7 R2 - 0x7C140400, // 00A9 CALL R5 2 - 0x7C0C0400, // 00AA CALL R3 2 - 0x8C0C0121, // 00AB GETMET R3 R0 K33 - 0x7C0C0200, // 00AC CALL R3 1 - 0x740E0097, // 00AD JMPT R3 #0146 - 0x8C0C0122, // 00AE GETMET R3 R0 K34 - 0x7C0C0200, // 00AF CALL R3 1 - 0x740E0094, // 00B0 JMPT R3 #0146 - 0x8C0C0100, // 00B1 GETMET R3 R0 K0 - 0x7C0C0200, // 00B2 CALL R3 1 - 0x4C100000, // 00B3 LDNIL R4 - 0x1C100604, // 00B4 EQ R4 R3 R4 - 0x74120005, // 00B5 JMPT R4 #00BC - 0x88100701, // 00B6 GETMBR R4 R3 K1 - 0xB8160400, // 00B7 GETNGBL R5 K2 - 0x88140B03, // 00B8 GETMBR R5 R5 K3 - 0x88140B04, // 00B9 GETMBR R5 R5 K4 - 0x1C100805, // 00BA EQ R4 R4 R5 - 0x78120000, // 00BB JMPF R4 #00BD - 0x70020088, // 00BC JMP #0146 - 0x88100701, // 00BD GETMBR R4 R3 K1 - 0xB8160400, // 00BE GETNGBL R5 K2 - 0x88140B03, // 00BF GETMBR R5 R5 K3 - 0x88140B05, // 00C0 GETMBR R5 R5 K5 - 0x1C100805, // 00C1 EQ R4 R4 R5 - 0x78120006, // 00C2 JMPF R4 #00CA - 0x8C100106, // 00C3 GETMET R4 R0 K6 - 0x88180708, // 00C4 GETMBR R6 R3 K8 - 0x001A4606, // 00C5 ADD R6 K35 R6 - 0x7C100400, // 00C6 CALL R4 2 - 0x8C100109, // 00C7 GETMET R4 R0 K9 - 0x7C100200, // 00C8 CALL R4 1 - 0x7001FFE0, // 00C9 JMP #00AB - 0x88100701, // 00CA GETMBR R4 R3 K1 - 0xB8160400, // 00CB GETNGBL R5 K2 - 0x88140B03, // 00CC GETMBR R5 R5 K3 - 0x88140B0A, // 00CD GETMBR R5 R5 K10 - 0x1C100805, // 00CE EQ R4 R4 R5 - 0x78120002, // 00CF JMPF R4 #00D3 - 0x8C100109, // 00D0 GETMET R4 R0 K9 - 0x7C100200, // 00D1 CALL R4 1 - 0x7001FFD7, // 00D2 JMP #00AB - 0x88100701, // 00D3 GETMBR R4 R3 K1 - 0xB8160400, // 00D4 GETNGBL R5 K2 - 0x88140B03, // 00D5 GETMBR R5 R5 K3 - 0x88140B0B, // 00D6 GETMBR R5 R5 K11 - 0x1C100805, // 00D7 EQ R4 R4 R5 - 0x78120053, // 00D8 JMPF R4 #012D - 0x88100708, // 00D9 GETMBR R4 R3 K8 - 0x1C10090C, // 00DA EQ R4 R4 K12 - 0x78120050, // 00DB JMPF R4 #012D - 0x8C100109, // 00DC GETMET R4 R0 K9 - 0x7C100200, // 00DD CALL R4 1 - 0x5810000D, // 00DE LDCONST R4 K13 - 0x8C140100, // 00DF GETMET R5 R0 K0 - 0x7C140200, // 00E0 CALL R5 1 - 0x4C180000, // 00E1 LDNIL R6 - 0x20180A06, // 00E2 NE R6 R5 R6 - 0x781A001C, // 00E3 JMPF R6 #0101 - 0x88180B01, // 00E4 GETMBR R6 R5 K1 - 0xB81E0400, // 00E5 GETNGBL R7 K2 - 0x881C0F03, // 00E6 GETMBR R7 R7 K3 - 0x881C0F0E, // 00E7 GETMBR R7 R7 K14 - 0x1C180C07, // 00E8 EQ R6 R6 R7 - 0x741A0005, // 00E9 JMPT R6 #00F0 - 0x88180B01, // 00EA GETMBR R6 R5 K1 - 0xB81E0400, // 00EB GETNGBL R7 K2 - 0x881C0F03, // 00EC GETMBR R7 R7 K3 - 0x881C0F0B, // 00ED GETMBR R7 R7 K11 - 0x1C180C07, // 00EE EQ R6 R6 R7 - 0x781A0010, // 00EF JMPF R6 #0101 - 0x8C18010F, // 00F0 GETMET R6 R0 K15 - 0x7C180200, // 00F1 CALL R6 1 - 0x4C1C0000, // 00F2 LDNIL R7 - 0x20180C07, // 00F3 NE R6 R6 R7 - 0x781A000B, // 00F4 JMPF R6 #0101 - 0x8C18010F, // 00F5 GETMET R6 R0 K15 - 0x7C180200, // 00F6 CALL R6 1 - 0x88180D01, // 00F7 GETMBR R6 R6 K1 - 0xB81E0400, // 00F8 GETNGBL R7 K2 - 0x881C0F03, // 00F9 GETMBR R7 R7 K3 - 0x881C0F10, // 00FA GETMBR R7 R7 K16 - 0x1C180C07, // 00FB EQ R6 R6 R7 - 0x781A0003, // 00FC JMPF R6 #0101 - 0x8C180111, // 00FD GETMET R6 R0 K17 - 0x7C180200, // 00FE CALL R6 1 - 0x5C100C00, // 00FF MOVE R4 R6 - 0x70020006, // 0100 JMP #0108 - 0x8C180112, // 0101 GETMET R6 R0 K18 - 0x7C180200, // 0102 CALL R6 1 - 0x601C0018, // 0103 GETGBL R7 G24 - 0x58200013, // 0104 LDCONST R8 K19 - 0x5C240C00, // 0105 MOVE R9 R6 - 0x7C1C0400, // 0106 CALL R7 2 - 0x5C100E00, // 0107 MOVE R4 R7 - 0x58180014, // 0108 LDCONST R6 K20 - 0x8C1C0100, // 0109 GETMET R7 R0 K0 - 0x7C1C0200, // 010A CALL R7 1 - 0x4C200000, // 010B LDNIL R8 - 0x201C0E08, // 010C NE R7 R7 R8 - 0x781E0013, // 010D JMPF R7 #0122 - 0x8C1C0100, // 010E GETMET R7 R0 K0 - 0x7C1C0200, // 010F CALL R7 1 - 0x881C0F01, // 0110 GETMBR R7 R7 K1 - 0xB8220400, // 0111 GETNGBL R8 K2 - 0x88201103, // 0112 GETMBR R8 R8 K3 - 0x8820110B, // 0113 GETMBR R8 R8 K11 - 0x1C1C0E08, // 0114 EQ R7 R7 R8 - 0x781E000B, // 0115 JMPF R7 #0122 - 0x8C1C0100, // 0116 GETMET R7 R0 K0 - 0x7C1C0200, // 0117 CALL R7 1 - 0x881C0F08, // 0118 GETMBR R7 R7 K8 - 0x1C1C0F15, // 0119 EQ R7 R7 K21 - 0x781E0006, // 011A JMPF R7 #0122 - 0x8C1C0109, // 011B GETMET R7 R0 K9 - 0x7C1C0200, // 011C CALL R7 1 - 0x601C0008, // 011D GETGBL R7 G8 - 0x8C200116, // 011E GETMET R8 R0 K22 - 0x7C200200, // 011F CALL R8 1 - 0x7C1C0200, // 0120 CALL R7 1 - 0x5C180E00, // 0121 MOVE R6 R7 - 0x8C1C0117, // 0122 GETMET R7 R0 K23 - 0x7C1C0200, // 0123 CALL R7 1 - 0x8C200106, // 0124 GETMET R8 R0 K6 - 0x60280018, // 0125 GETGBL R10 G24 - 0x582C0024, // 0126 LDCONST R11 K36 - 0x5C300800, // 0127 MOVE R12 R4 - 0x5C340C00, // 0128 MOVE R13 R6 - 0x5C380E00, // 0129 MOVE R14 R7 - 0x7C280800, // 012A CALL R10 4 - 0x7C200400, // 012B CALL R8 2 - 0x70020017, // 012C JMP #0145 - 0x88100701, // 012D GETMBR R4 R3 K1 - 0xB8160400, // 012E GETNGBL R5 K2 - 0x88140B03, // 012F GETMBR R5 R5 K3 - 0x88140B0B, // 0130 GETMBR R5 R5 K11 - 0x1C100805, // 0131 EQ R4 R4 R5 - 0x78120010, // 0132 JMPF R4 #0144 - 0x88100708, // 0133 GETMBR R4 R3 K8 - 0x1C100919, // 0134 EQ R4 R4 K25 - 0x7812000D, // 0135 JMPF R4 #0144 - 0x8C100109, // 0136 GETMET R4 R0 K9 - 0x7C100200, // 0137 CALL R4 1 - 0x8C100116, // 0138 GETMET R4 R0 K22 - 0x7C100200, // 0139 CALL R4 1 - 0x8C140117, // 013A GETMET R5 R0 K23 - 0x7C140200, // 013B CALL R5 1 - 0x8C180106, // 013C GETMET R6 R0 K6 - 0x60200018, // 013D GETGBL R8 G24 - 0x58240025, // 013E LDCONST R9 K37 - 0x5C280800, // 013F MOVE R10 R4 - 0x5C2C0A00, // 0140 MOVE R11 R5 - 0x7C200600, // 0141 CALL R8 3 - 0x7C180400, // 0142 CALL R6 2 - 0x70020000, // 0143 JMP #0145 - 0x70020000, // 0144 JMP #0146 - 0x7001FF64, // 0145 JMP #00AB - 0x8C0C0106, // 0146 GETMET R3 R0 K6 - 0x60140018, // 0147 GETGBL R5 G24 - 0x58180026, // 0148 LDCONST R6 K38 - 0x7C140200, // 0149 CALL R5 1 - 0x7C0C0400, // 014A CALL R3 2 - 0x70020001, // 014B JMP #014E - 0x8C080127, // 014C GETMET R2 R0 K39 - 0x7C080200, // 014D CALL R2 1 - 0x80000000, // 014E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_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[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(process_expression), - }), - be_str_weak(process_value), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x80040400, // 0003 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_expression_argument -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_expression_argument, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(process_additive_expression_raw), - }), - be_str_weak(process_expression_argument), - &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x80040200, // 0002 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: at_end ********************************************************************/ @@ -8354,109 +3435,44 @@ be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ /******************************************************************** -** Solidified function: get_errors +** Solidified function: is_anonymous_function ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_errors, /* name */ +be_local_closure(class_SimpleDSLTranspiler_is_anonymous_function, /* name */ be_nested_proto( - 2, /* nstack */ - 1, /* argc */ + 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[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(errors), - }), - be_str_weak(get_errors), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_computed_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_is_computed_expression, /* name */ - be_nested_proto( - 9, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ + ( &(const bvalue[ 5]) { /* constants */ /* K0 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(_X28), + /* K2 */ be_nested_str_weak(_X28def_X20), /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(animation_X2Eglobal), - /* K5 */ be_nested_str_weak(animation_X2E), - /* K6 */ be_nested_str_weak(_), + /* K4 */ be_nested_str_weak(_X29_X28engine_X29), }), - be_str_weak(is_computed_expression), + be_str_weak(is_anonymous_function), &be_const_str_solidified, - ( &(const binstruction[52]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x8C140901, // 0001 GETMET R5 R4 K1 - 0x5C1C0200, // 0002 MOVE R7 R1 - 0x58200002, // 0003 LDCONST R8 K2 - 0x7C140600, // 0004 CALL R5 3 - 0x28140B03, // 0005 GE R5 R5 K3 - 0x7416002A, // 0006 JMPT R5 #0032 - 0x8C140901, // 0007 GETMET R5 R4 K1 - 0x5C1C0600, // 0008 MOVE R7 R3 - 0x58200002, // 0009 LDCONST R8 K2 - 0x7C140600, // 000A CALL R5 3 - 0x28140B03, // 000B GE R5 R5 K3 - 0x74160024, // 000C JMPT R5 #0032 - 0x8C140901, // 000D GETMET R5 R4 K1 - 0x5C1C0200, // 000E MOVE R7 R1 - 0x58200004, // 000F LDCONST R8 K4 - 0x7C140600, // 0010 CALL R5 3 - 0x28140B03, // 0011 GE R5 R5 K3 - 0x7416001E, // 0012 JMPT R5 #0032 - 0x8C140901, // 0013 GETMET R5 R4 K1 - 0x5C1C0600, // 0014 MOVE R7 R3 - 0x58200004, // 0015 LDCONST R8 K4 - 0x7C140600, // 0016 CALL R5 3 - 0x28140B03, // 0017 GE R5 R5 K3 - 0x74160018, // 0018 JMPT R5 #0032 - 0x8C140901, // 0019 GETMET R5 R4 K1 - 0x5C1C0200, // 001A MOVE R7 R1 - 0x58200005, // 001B LDCONST R8 K5 - 0x7C140600, // 001C CALL R5 3 - 0x28140B03, // 001D GE R5 R5 K3 - 0x74160012, // 001E JMPT R5 #0032 - 0x8C140901, // 001F GETMET R5 R4 K1 - 0x5C1C0600, // 0020 MOVE R7 R3 - 0x58200005, // 0021 LDCONST R8 K5 - 0x7C140600, // 0022 CALL R5 3 - 0x28140B03, // 0023 GE R5 R5 K3 - 0x7416000C, // 0024 JMPT R5 #0032 - 0x8C140901, // 0025 GETMET R5 R4 K1 - 0x5C1C0200, // 0026 MOVE R7 R1 - 0x58200006, // 0027 LDCONST R8 K6 - 0x7C140600, // 0028 CALL R5 3 - 0x28140B03, // 0029 GE R5 R5 K3 - 0x74160006, // 002A JMPT R5 #0032 - 0x8C140901, // 002B GETMET R5 R4 K1 - 0x5C1C0600, // 002C MOVE R7 R3 - 0x58200006, // 002D LDCONST R8 K6 - 0x7C140600, // 002E CALL R5 3 - 0x28140B03, // 002F GE R5 R5 K3 - 0x74160000, // 0030 JMPT R5 #0032 - 0x50140001, // 0031 LDBOOL R5 0 1 - 0x50140200, // 0032 LDBOOL R5 1 0 - 0x80040A00, // 0033 RET 1 R5 + ( &(const binstruction[16]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x1C0C0703, // 0005 EQ R3 R3 K3 + 0x780E0005, // 0006 JMPF R3 #000D + 0x8C0C0501, // 0007 GETMET R3 R2 K1 + 0x5C140200, // 0008 MOVE R5 R1 + 0x58180004, // 0009 LDCONST R6 K4 + 0x7C0C0600, // 000A CALL R3 3 + 0x280C0703, // 000B GE R3 R3 K3 + 0x740E0000, // 000C JMPT R3 #000E + 0x500C0001, // 000D LDBOOL R3 0 1 + 0x500C0200, // 000E LDBOOL R3 1 0 + 0x80040600, // 000F RET 1 R3 }) ) ); @@ -8464,11 +3480,44 @@ be_local_closure(class_SimpleDSLTranspiler_is_computed_expression, /* name */ /******************************************************************** -** Solidified function: process_additive_expression_raw +** Solidified function: _validate_color_provider_factory_exists ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists, /* name */ be_nested_proto( - 10, /* nstack */ + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_validate_factory_function), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(color_provider), + }), + be_str_weak(_validate_color_provider_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0xB8160200, // 0002 GETNGBL R5 K1 + 0x88140B02, // 0003 GETMBR R5 R5 K2 + 0x7C080600, // 0004 CALL R2 3 + 0x80040400, // 0005 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_percentage_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name */ + be_nested_proto( + 7, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -8477,59 +3526,73 @@ be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(process_multiplicative_expression_raw), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(animation_dsl), - /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(PLUS), - /* K7 */ be_nested_str_weak(MINUS), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(PERCENTAGE), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_const_int(0), + /* K8 */ be_nested_str_weak(NUMBER), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Expected_X20percentage_X20value), }), - be_str_weak(process_additive_expression_raw), + be_str_weak(process_percentage_value), &be_const_str_solidified, - ( &(const binstruction[38]) { /* code */ + ( &(const binstruction[52]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x740A001F, // 0004 JMPT R2 #0025 - 0x8C080102, // 0005 GETMET R2 R0 K2 - 0x7C080200, // 0006 CALL R2 1 - 0x4C0C0000, // 0007 LDNIL R3 - 0x200C0403, // 0008 NE R3 R2 R3 - 0x780E0018, // 0009 JMPF R3 #0023 - 0x880C0503, // 000A GETMBR R3 R2 K3 - 0xB8120800, // 000B GETNGBL R4 K4 - 0x88100905, // 000C GETMBR R4 R4 K5 - 0x88100906, // 000D GETMBR R4 R4 K6 - 0x1C0C0604, // 000E EQ R3 R3 R4 - 0x740E0005, // 000F JMPT R3 #0016 - 0x880C0503, // 0010 GETMBR R3 R2 K3 - 0xB8120800, // 0011 GETNGBL R4 K4 - 0x88100905, // 0012 GETMBR R4 R4 K5 - 0x88100907, // 0013 GETMBR R4 R4 K7 - 0x1C0C0604, // 0014 EQ R3 R3 R4 - 0x780E000C, // 0015 JMPF R3 #0023 - 0x880C0508, // 0016 GETMBR R3 R2 K8 - 0x8C100109, // 0017 GETMET R4 R0 K9 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0015, // 0004 JMPF R2 #001B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A000F, // 000A JMPF R2 #001B + 0x88080305, // 000B GETMBR R2 R1 K5 + 0x8C0C0106, // 000C GETMET R3 R0 K6 + 0x7C0C0200, // 000D CALL R3 1 + 0x600C000A, // 000E GETGBL R3 G10 + 0x5411FFFD, // 000F LDINT R4 -2 + 0x40120E04, // 0010 CONNECT R4 K7 R4 + 0x94100404, // 0011 GETIDX R4 R2 R4 + 0x7C0C0200, // 0012 CALL R3 1 + 0x60100009, // 0013 GETGBL R4 G9 + 0x541600FE, // 0014 LDINT R5 255 + 0x08140605, // 0015 MUL R5 R3 R5 + 0x541A0063, // 0016 LDINT R6 100 + 0x0C140A06, // 0017 DIV R5 R5 R6 0x7C100200, // 0018 CALL R4 1 - 0x8C100100, // 0019 GETMET R4 R0 K0 - 0x7C100200, // 001A CALL R4 1 - 0x60140018, // 001B GETGBL R5 G24 - 0x5818000A, // 001C LDCONST R6 K10 - 0x5C1C0200, // 001D MOVE R7 R1 - 0x5C200600, // 001E MOVE R8 R3 - 0x5C240800, // 001F MOVE R9 R4 - 0x7C140800, // 0020 CALL R5 4 - 0x5C040A00, // 0021 MOVE R1 R5 - 0x70020000, // 0022 JMP #0024 - 0x70020000, // 0023 JMP #0025 - 0x7001FFDC, // 0024 JMP #0002 - 0x80040200, // 0025 RET 1 R1 + 0x80040800, // 0019 RET 1 R4 + 0x70020017, // 001A JMP #0033 + 0x4C080000, // 001B LDNIL R2 + 0x20080202, // 001C NE R2 R1 R2 + 0x780A000F, // 001D JMPF R2 #002E + 0x88080301, // 001E GETMBR R2 R1 K1 + 0xB80E0400, // 001F GETNGBL R3 K2 + 0x880C0703, // 0020 GETMBR R3 R3 K3 + 0x880C0708, // 0021 GETMBR R3 R3 K8 + 0x1C080403, // 0022 EQ R2 R2 R3 + 0x780A0009, // 0023 JMPF R2 #002E + 0x88080305, // 0024 GETMBR R2 R1 K5 + 0x8C0C0106, // 0025 GETMET R3 R0 K6 + 0x7C0C0200, // 0026 CALL R3 1 + 0x600C0009, // 0027 GETGBL R3 G9 + 0x6010000A, // 0028 GETGBL R4 G10 + 0x5C140400, // 0029 MOVE R5 R2 + 0x7C100200, // 002A CALL R4 1 + 0x7C0C0200, // 002B CALL R3 1 + 0x80040600, // 002C RET 1 R3 + 0x70020004, // 002D JMP #0033 + 0x8C080109, // 002E GETMET R2 R0 K9 + 0x5810000A, // 002F LDCONST R4 K10 + 0x7C080400, // 0030 CALL R2 2 + 0x540A00FE, // 0031 LDINT R2 255 + 0x80040400, // 0032 RET 1 R2 + 0x80000000, // 0033 RET 0 }) ) ); @@ -8537,49 +3600,31 @@ be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* /******************************************************************** -** Solidified function: expect_comma +** Solidified function: _validate_animation_factory_creates_animation ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation, /* name */ be_nested_proto( - 5, /* nstack */ - 1, /* argc */ + 6, /* nstack */ + 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(COMMA), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_validate_factory_function), + /* K1 */ be_nested_str_weak(animation), }), - be_str_weak(expect_comma), + be_str_weak(_validate_animation_factory_creates_animation), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 + ( &(const binstruction[ 6]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0xB8160200, // 0002 GETNGBL R5 K1 + 0x88140B01, // 0003 GETMBR R5 R5 K1 + 0x7C080600, // 0004 CALL R2 3 + 0x80040400, // 0005 RET 1 R2 }) ) ); @@ -8587,49 +3632,226 @@ be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ /******************************************************************** -** Solidified function: expect_right_paren +** Solidified function: convert_color ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ +be_local_closure(class_SimpleDSLTranspiler_convert_color, /* name */ be_nested_proto( - 5, /* nstack */ - 1, /* argc */ + 17, /* nstack */ + 2, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_PAREN), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20_X27_X29_X27), + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(startswith), + /* K2 */ be_nested_str_weak(0x), + /* K3 */ be_nested_str_weak(0xFF_X25s), + /* K4 */ be_const_int(2), + /* K5 */ be_const_int(2147483647), + /* K6 */ be_nested_str_weak(_X23), + /* K7 */ be_nested_str_weak(0x_X25s), + /* K8 */ be_const_int(1), + /* K9 */ be_const_int(3), + /* K10 */ be_nested_str_weak(0x_X25s_X25s_X25s_X25s_X25s_X25s_X25s_X25s), + /* K11 */ be_nested_str_weak(0xFF_X25s_X25s_X25s_X25s_X25s_X25s), + /* K12 */ be_nested_str_weak(animation_dsl), + /* K13 */ be_nested_str_weak(is_color_name), + /* K14 */ be_nested_str_weak(get_named_color_value), + /* K15 */ be_nested_str_weak(0xFFFFFFFF), }), - be_str_weak(expect_right_paren), + be_str_weak(convert_color), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x8C080105, // 000B GETMET R2 R0 K5 - 0x7C080200, // 000C CALL R2 1 - 0x70020002, // 000D JMP #0011 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x58100007, // 000F LDCONST R4 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x80000000, // 0011 RET 0 + ( &(const binstruction[110]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x780E0013, // 0005 JMPF R3 #001A + 0x600C000C, // 0006 GETGBL R3 G12 + 0x5C100200, // 0007 MOVE R4 R1 + 0x7C0C0200, // 0008 CALL R3 1 + 0x54120009, // 0009 LDINT R4 10 + 0x1C0C0604, // 000A EQ R3 R3 R4 + 0x780E0001, // 000B JMPF R3 #000E + 0x80040200, // 000C RET 1 R1 + 0x7002000B, // 000D JMP #001A + 0x600C000C, // 000E GETGBL R3 G12 + 0x5C100200, // 000F MOVE R4 R1 + 0x7C0C0200, // 0010 CALL R3 1 + 0x54120007, // 0011 LDINT R4 8 + 0x1C0C0604, // 0012 EQ R3 R3 R4 + 0x780E0005, // 0013 JMPF R3 #001A + 0x600C0018, // 0014 GETGBL R3 G24 + 0x58100003, // 0015 LDCONST R4 K3 + 0x40160905, // 0016 CONNECT R5 K4 K5 + 0x94140205, // 0017 GETIDX R5 R1 R5 + 0x7C0C0400, // 0018 CALL R3 2 + 0x80040600, // 0019 RET 1 R3 + 0x8C0C0501, // 001A GETMET R3 R2 K1 + 0x5C140200, // 001B MOVE R5 R1 + 0x58180006, // 001C LDCONST R6 K6 + 0x7C0C0600, // 001D CALL R3 3 + 0x780E0044, // 001E JMPF R3 #0064 + 0x600C000C, // 001F GETGBL R3 G12 + 0x5C100200, // 0020 MOVE R4 R1 + 0x7C0C0200, // 0021 CALL R3 1 + 0x54120008, // 0022 LDINT R4 9 + 0x1C0C0604, // 0023 EQ R3 R3 R4 + 0x780E0006, // 0024 JMPF R3 #002C + 0x600C0018, // 0025 GETGBL R3 G24 + 0x58100007, // 0026 LDCONST R4 K7 + 0x40161105, // 0027 CONNECT R5 K8 K5 + 0x94140205, // 0028 GETIDX R5 R1 R5 + 0x7C0C0400, // 0029 CALL R3 2 + 0x80040600, // 002A RET 1 R3 + 0x70020037, // 002B JMP #0064 + 0x600C000C, // 002C GETGBL R3 G12 + 0x5C100200, // 002D MOVE R4 R1 + 0x7C0C0200, // 002E CALL R3 1 + 0x54120006, // 002F LDINT R4 7 + 0x1C0C0604, // 0030 EQ R3 R3 R4 + 0x780E0006, // 0031 JMPF R3 #0039 + 0x600C0018, // 0032 GETGBL R3 G24 + 0x58100003, // 0033 LDCONST R4 K3 + 0x40161105, // 0034 CONNECT R5 K8 K5 + 0x94140205, // 0035 GETIDX R5 R1 R5 + 0x7C0C0400, // 0036 CALL R3 2 + 0x80040600, // 0037 RET 1 R3 + 0x7002002A, // 0038 JMP #0064 + 0x600C000C, // 0039 GETGBL R3 G12 + 0x5C100200, // 003A MOVE R4 R1 + 0x7C0C0200, // 003B CALL R3 1 + 0x54120004, // 003C LDINT R4 5 + 0x1C0C0604, // 003D EQ R3 R3 R4 + 0x780E0011, // 003E JMPF R3 #0051 + 0x940C0308, // 003F GETIDX R3 R1 K8 + 0x94100304, // 0040 GETIDX R4 R1 K4 + 0x94140309, // 0041 GETIDX R5 R1 K9 + 0x541A0003, // 0042 LDINT R6 4 + 0x94180206, // 0043 GETIDX R6 R1 R6 + 0x601C0018, // 0044 GETGBL R7 G24 + 0x5820000A, // 0045 LDCONST R8 K10 + 0x5C240600, // 0046 MOVE R9 R3 + 0x5C280600, // 0047 MOVE R10 R3 + 0x5C2C0800, // 0048 MOVE R11 R4 + 0x5C300800, // 0049 MOVE R12 R4 + 0x5C340A00, // 004A MOVE R13 R5 + 0x5C380A00, // 004B MOVE R14 R5 + 0x5C3C0C00, // 004C MOVE R15 R6 + 0x5C400C00, // 004D MOVE R16 R6 + 0x7C1C1200, // 004E CALL R7 9 + 0x80040E00, // 004F RET 1 R7 + 0x70020012, // 0050 JMP #0064 + 0x600C000C, // 0051 GETGBL R3 G12 + 0x5C100200, // 0052 MOVE R4 R1 + 0x7C0C0200, // 0053 CALL R3 1 + 0x54120003, // 0054 LDINT R4 4 + 0x1C0C0604, // 0055 EQ R3 R3 R4 + 0x780E000C, // 0056 JMPF R3 #0064 + 0x940C0308, // 0057 GETIDX R3 R1 K8 + 0x94100304, // 0058 GETIDX R4 R1 K4 + 0x94140309, // 0059 GETIDX R5 R1 K9 + 0x60180018, // 005A GETGBL R6 G24 + 0x581C000B, // 005B LDCONST R7 K11 + 0x5C200600, // 005C MOVE R8 R3 + 0x5C240600, // 005D MOVE R9 R3 + 0x5C280800, // 005E MOVE R10 R4 + 0x5C2C0800, // 005F MOVE R11 R4 + 0x5C300A00, // 0060 MOVE R12 R5 + 0x5C340A00, // 0061 MOVE R13 R5 + 0x7C180E00, // 0062 CALL R6 7 + 0x80040C00, // 0063 RET 1 R6 + 0xB80E1800, // 0064 GETNGBL R3 K12 + 0x8C0C070D, // 0065 GETMET R3 R3 K13 + 0x5C140200, // 0066 MOVE R5 R1 + 0x7C0C0400, // 0067 CALL R3 2 + 0x780E0003, // 0068 JMPF R3 #006D + 0x8C0C010E, // 0069 GETMET R3 R0 K14 + 0x5C140200, // 006A MOVE R5 R1 + 0x7C0C0400, // 006B CALL R3 2 + 0x80040600, // 006C RET 1 R3 + 0x80061E00, // 006D RET 1 K15 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_computation_closure +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_create_computation_closure, /* name */ + be_nested_proto( + 12, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(transform_operand_for_closure), + /* K2 */ be_nested_str_weak(find), + /* K3 */ be_nested_str_weak(_X20_X20), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(replace), + /* K6 */ be_nested_str_weak(_X20), + /* K7 */ be_nested_str_weak(def_X20_X28self_X29_X20return_X20_X25s_X20_X25s_X20_X25s_X20end), + /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), + }), + be_str_weak(create_computation_closure), + &be_const_str_solidified, + ( &(const binstruction[44]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x8C140101, // 0001 GETMET R5 R0 K1 + 0x5C1C0200, // 0002 MOVE R7 R1 + 0x7C140400, // 0003 CALL R5 2 + 0x8C180101, // 0004 GETMET R6 R0 K1 + 0x5C200600, // 0005 MOVE R8 R3 + 0x7C180400, // 0006 CALL R6 2 + 0x8C1C0902, // 0007 GETMET R7 R4 K2 + 0x5C240A00, // 0008 MOVE R9 R5 + 0x58280003, // 0009 LDCONST R10 K3 + 0x7C1C0600, // 000A CALL R7 3 + 0x281C0F04, // 000B GE R7 R7 K4 + 0x781E0006, // 000C JMPF R7 #0014 + 0x8C1C0905, // 000D GETMET R7 R4 K5 + 0x5C240A00, // 000E MOVE R9 R5 + 0x58280003, // 000F LDCONST R10 K3 + 0x582C0006, // 0010 LDCONST R11 K6 + 0x7C1C0800, // 0011 CALL R7 4 + 0x5C140E00, // 0012 MOVE R5 R7 + 0x7001FFF2, // 0013 JMP #0007 + 0x8C1C0902, // 0014 GETMET R7 R4 K2 + 0x5C240C00, // 0015 MOVE R9 R6 + 0x58280003, // 0016 LDCONST R10 K3 + 0x7C1C0600, // 0017 CALL R7 3 + 0x281C0F04, // 0018 GE R7 R7 K4 + 0x781E0006, // 0019 JMPF R7 #0021 + 0x8C1C0905, // 001A GETMET R7 R4 K5 + 0x5C240C00, // 001B MOVE R9 R6 + 0x58280003, // 001C LDCONST R10 K3 + 0x582C0006, // 001D LDCONST R11 K6 + 0x7C1C0800, // 001E CALL R7 4 + 0x5C180E00, // 001F MOVE R6 R7 + 0x7001FFF2, // 0020 JMP #0014 + 0x601C0018, // 0021 GETGBL R7 G24 + 0x58200007, // 0022 LDCONST R8 K7 + 0x5C240A00, // 0023 MOVE R9 R5 + 0x5C280400, // 0024 MOVE R10 R2 + 0x5C2C0C00, // 0025 MOVE R11 R6 + 0x7C1C0800, // 0026 CALL R7 4 + 0x60200018, // 0027 GETGBL R8 G24 + 0x58240008, // 0028 LDCONST R9 K8 + 0x5C280E00, // 0029 MOVE R10 R7 + 0x7C200400, // 002A CALL R8 2 + 0x80041000, // 002B RET 1 R8 }) ) ); @@ -8663,7 +3885,7 @@ be_local_closure(class_SimpleDSLTranspiler_transform_expression_for_closure, / /* K10 */ be_nested_str_weak(_), /* K11 */ be_nested_str_weak(self_X2Eresolve_X28), /* K12 */ be_nested_str_weak(animation_X2E), - /* K13 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20param_name_X2C_X20time_ms_X29), + /* K13 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X29), }), be_str_weak(transform_expression_for_closure), &be_const_str_solidified, @@ -8898,11 +4120,61 @@ be_local_closure(class_SimpleDSLTranspiler_transform_expression_for_closure, / /******************************************************************** -** Solidified function: transform_operand_for_closure +** Solidified function: collect_inline_comment ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transform_operand_for_closure, /* name */ +be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ be_nested_proto( - 11, /* nstack */ + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(COMMENT), + /* K5 */ be_nested_str_weak(_X20_X20), + /* K6 */ be_nested_str_weak(value), + /* K7 */ be_nested_str_weak(next), + /* K8 */ be_nested_str_weak(), + }), + be_str_weak(collect_inline_comment), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A000A, // 0004 JMPF R2 #0010 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0004, // 000A JMPF R2 #0010 + 0x88080306, // 000B GETMBR R2 R1 K6 + 0x000A0A02, // 000C ADD R2 K5 R2 + 0x8C0C0107, // 000D GETMET R3 R0 K7 + 0x7C0C0200, // 000E CALL R3 1 + 0x80040400, // 000F RET 1 R2 + 0x80061000, // 0010 RET 1 K8 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_add, /* name */ + be_nested_proto( + 5, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -8910,92 +4182,104 @@ be_local_closure(class_SimpleDSLTranspiler_transform_operand_for_closure, /* n 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[12]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(animation_X2Ecreate_closure_value), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(return_X20_X28), - /* K5 */ be_nested_str_weak(_X20_X20), - /* K6 */ be_nested_str_weak(replace), - /* K7 */ be_nested_str_weak(_X20), - /* K8 */ be_nested_str_weak(_), - /* K9 */ be_nested_str_weak(_X28), - /* K10 */ be_nested_str_weak(animation_X2E), - /* K11 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20param_name_X2C_X20time_ms_X29), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(output), + /* K1 */ be_nested_str_weak(push), }), - be_str_weak(transform_operand_for_closure), + be_str_weak(add), &be_const_str_solidified, - ( &(const binstruction[69]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x280C0703, // 0005 GE R3 R3 K3 - 0x780E001A, // 0006 JMPF R3 #0022 - 0x8C0C0501, // 0007 GETMET R3 R2 K1 - 0x5C140200, // 0008 MOVE R5 R1 - 0x58180004, // 0009 LDCONST R6 K4 - 0x7C0C0600, // 000A CALL R3 3 - 0x54120007, // 000B LDINT R4 8 - 0x000C0604, // 000C ADD R3 R3 R4 - 0x6010000C, // 000D GETGBL R4 G12 - 0x5C140200, // 000E MOVE R5 R1 - 0x7C100200, // 000F CALL R4 1 - 0x54160004, // 0010 LDINT R5 5 - 0x04100805, // 0011 SUB R4 R4 R5 - 0x40140604, // 0012 CONNECT R5 R3 R4 - 0x94140205, // 0013 GETIDX R5 R1 R5 - 0x8C180501, // 0014 GETMET R6 R2 K1 - 0x5C200A00, // 0015 MOVE R8 R5 - 0x58240005, // 0016 LDCONST R9 K5 - 0x7C180600, // 0017 CALL R6 3 - 0x28180D03, // 0018 GE R6 R6 K3 - 0x781A0006, // 0019 JMPF R6 #0021 - 0x8C180506, // 001A GETMET R6 R2 K6 - 0x5C200A00, // 001B MOVE R8 R5 - 0x58240005, // 001C LDCONST R9 K5 - 0x58280007, // 001D LDCONST R10 K7 - 0x7C180800, // 001E CALL R6 4 - 0x5C140C00, // 001F MOVE R5 R6 - 0x7001FFF2, // 0020 JMP #0014 - 0x80040A00, // 0021 RET 1 R5 - 0x8C0C0501, // 0022 GETMET R3 R2 K1 - 0x5C140200, // 0023 MOVE R5 R1 - 0x58180008, // 0024 LDCONST R6 K8 - 0x7C0C0600, // 0025 CALL R3 3 - 0x280C0703, // 0026 GE R3 R3 K3 - 0x8C100501, // 0027 GETMET R4 R2 K1 - 0x5C180200, // 0028 MOVE R6 R1 - 0x581C0007, // 0029 LDCONST R7 K7 - 0x7C100600, // 002A CALL R4 3 - 0x28100903, // 002B GE R4 R4 K3 - 0x8C140501, // 002C GETMET R5 R2 K1 - 0x5C1C0200, // 002D MOVE R7 R1 - 0x58200009, // 002E LDCONST R8 K9 - 0x7C140600, // 002F CALL R5 3 - 0x28140B03, // 0030 GE R5 R5 K3 - 0x8C180501, // 0031 GETMET R6 R2 K1 - 0x5C200200, // 0032 MOVE R8 R1 - 0x5824000A, // 0033 LDCONST R9 K10 - 0x7C180600, // 0034 CALL R6 3 - 0x28180D03, // 0035 GE R6 R6 K3 - 0x780E000B, // 0036 JMPF R3 #0043 - 0x5C1C0800, // 0037 MOVE R7 R4 - 0x741E0009, // 0038 JMPT R7 #0043 - 0x5C1C0A00, // 0039 MOVE R7 R5 - 0x741E0007, // 003A JMPT R7 #0043 - 0x5C1C0C00, // 003B MOVE R7 R6 - 0x741E0005, // 003C JMPT R7 #0043 - 0x601C0018, // 003D GETGBL R7 G24 - 0x5820000B, // 003E LDCONST R8 K11 - 0x5C240200, // 003F MOVE R9 R1 - 0x7C1C0400, // 0040 CALL R7 2 - 0x80040E00, // 0041 RET 1 R7 - 0x70020000, // 0042 JMP #0044 - 0x80040200, // 0043 RET 1 R1 - 0x80000000, // 0044 RET 0 + ( &(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: 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 }) ) ); @@ -9053,9 +4337,737 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_brace, /* name */ /******************************************************************** -** Solidified function: process_multiplicative_expression_raw +** Solidified function: process_time_value ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* 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[11]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(TIME), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(convert_time_to_ms), + /* K8 */ be_nested_str_weak(NUMBER), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Expected_X20time_X20value), + }), + be_str_weak(process_time_value), + &be_const_str_solidified, + ( &(const binstruction[46]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A000D, // 0004 JMPF R2 #0013 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0007, // 000A JMPF R2 #0013 + 0x88080305, // 000B GETMBR R2 R1 K5 + 0x8C0C0106, // 000C GETMET R3 R0 K6 + 0x7C0C0200, // 000D CALL R3 1 + 0x8C0C0107, // 000E GETMET R3 R0 K7 + 0x5C140400, // 000F MOVE R5 R2 + 0x7C0C0400, // 0010 CALL R3 2 + 0x80040600, // 0011 RET 1 R3 + 0x70020019, // 0012 JMP #002D + 0x4C080000, // 0013 LDNIL R2 + 0x20080202, // 0014 NE R2 R1 R2 + 0x780A0011, // 0015 JMPF R2 #0028 + 0x88080301, // 0016 GETMBR R2 R1 K1 + 0xB80E0400, // 0017 GETNGBL R3 K2 + 0x880C0703, // 0018 GETMBR R3 R3 K3 + 0x880C0708, // 0019 GETMBR R3 R3 K8 + 0x1C080403, // 001A EQ R2 R2 R3 + 0x780A000B, // 001B JMPF R2 #0028 + 0x88080305, // 001C GETMBR R2 R1 K5 + 0x8C0C0106, // 001D GETMET R3 R0 K6 + 0x7C0C0200, // 001E CALL R3 1 + 0x600C0009, // 001F GETGBL R3 G9 + 0x6010000A, // 0020 GETGBL R4 G10 + 0x5C140400, // 0021 MOVE R5 R2 + 0x7C100200, // 0022 CALL R4 1 + 0x7C0C0200, // 0023 CALL R3 1 + 0x541203E7, // 0024 LDINT R4 1000 + 0x080C0604, // 0025 MUL R3 R3 R4 + 0x80040600, // 0026 RET 1 R3 + 0x70020004, // 0027 JMP #002D + 0x8C080109, // 0028 GETMET R2 R0 K9 + 0x5810000A, // 0029 LDCONST R4 K10 + 0x7C080400, // 002A CALL R2 2 + 0x540A03E7, // 002B LDINT R2 1000 + 0x80040400, // 002C RET 1 R2 + 0x80000000, // 002D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_init, /* name */ + be_nested_proto( + 3, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[10]) { /* constants */ + /* K0 */ be_nested_str_weak(tokens), + /* K1 */ be_nested_str_weak(pos), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(output), + /* K4 */ be_nested_str_weak(errors), + /* K5 */ be_nested_str_weak(run_statements), + /* K6 */ be_nested_str_weak(first_statement), + /* K7 */ be_nested_str_weak(strip_initialized), + /* K8 */ be_nested_str_weak(sequence_names), + /* K9 */ be_nested_str_weak(symbol_table), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[29]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A0001, // 0002 JMPF R2 #0005 + 0x5C080200, // 0003 MOVE R2 R1 + 0x70020001, // 0004 JMP #0007 + 0x60080012, // 0005 GETGBL R2 G18 + 0x7C080000, // 0006 CALL R2 0 + 0x90020002, // 0007 SETMBR R0 K0 R2 + 0x90020302, // 0008 SETMBR R0 K1 K2 + 0x60080012, // 0009 GETGBL R2 G18 + 0x7C080000, // 000A CALL R2 0 + 0x90020602, // 000B SETMBR R0 K3 R2 + 0x60080012, // 000C GETGBL R2 G18 + 0x7C080000, // 000D CALL R2 0 + 0x90020802, // 000E SETMBR R0 K4 R2 + 0x60080012, // 000F GETGBL R2 G18 + 0x7C080000, // 0010 CALL R2 0 + 0x90020A02, // 0011 SETMBR R0 K5 R2 + 0x50080200, // 0012 LDBOOL R2 1 0 + 0x90020C02, // 0013 SETMBR R0 K6 R2 + 0x50080000, // 0014 LDBOOL R2 0 0 + 0x90020E02, // 0015 SETMBR R0 K7 R2 + 0x60080013, // 0016 GETGBL R2 G19 + 0x7C080000, // 0017 CALL R2 0 + 0x90021002, // 0018 SETMBR R0 K8 R2 + 0x60080013, // 0019 GETGBL R2 G19 + 0x7C080000, // 001A CALL R2 0 + 0x90021202, // 001B SETMBR R0 K9 R2 + 0x80000000, // 001C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: next +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_next, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_nested_str_weak(tokens), + /* K2 */ be_const_int(1), + }), + be_str_weak(next), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x6008000C, // 0001 GETGBL R2 G12 + 0x880C0101, // 0002 GETMBR R3 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x14040202, // 0004 LT R1 R1 R2 + 0x78060002, // 0005 JMPF R1 #0009 + 0x88040100, // 0006 GETMBR R1 R0 K0 + 0x00040302, // 0007 ADD R1 R1 K2 + 0x90020001, // 0008 SETMBR R0 K0 R1 + 0x80000000, // 0009 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_right_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_BRACKET), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), + }), + be_str_weak(expect_right_bracket), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_single_parameter +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_single_parameter, /* name */ + be_nested_proto( + 12, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(contains), + /* K2 */ be_nested_str_weak(_has_param), + /* K3 */ be_nested_str_weak(current), + /* K4 */ be_nested_str_weak(line), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Animation_X20_X27_X25s_X27_X20does_X20not_X20have_X20parameter_X20_X27_X25s_X27_X2E_X20Check_X20the_X20animation_X20documentation_X20for_X20valid_X20parameters_X2E), + }), + be_str_weak(_validate_single_parameter), + &be_const_str_solidified, + ( &(const binstruction[38]) { /* code */ + 0xA802001F, // 0000 EXBLK 0 #0021 + 0xA4120000, // 0001 IMPORT R4 K0 + 0x4C140000, // 0002 LDNIL R5 + 0x20140605, // 0003 NE R5 R3 R5 + 0x78160019, // 0004 JMPF R5 #001F + 0x8C140901, // 0005 GETMET R5 R4 K1 + 0x5C1C0600, // 0006 MOVE R7 R3 + 0x58200002, // 0007 LDCONST R8 K2 + 0x7C140600, // 0008 CALL R5 3 + 0x78160014, // 0009 JMPF R5 #001F + 0x8C140702, // 000A GETMET R5 R3 K2 + 0x5C1C0400, // 000B MOVE R7 R2 + 0x7C140400, // 000C CALL R5 2 + 0x74160010, // 000D JMPT R5 #001F + 0x8C140103, // 000E GETMET R5 R0 K3 + 0x7C140200, // 000F CALL R5 1 + 0x4C180000, // 0010 LDNIL R6 + 0x20140A06, // 0011 NE R5 R5 R6 + 0x78160003, // 0012 JMPF R5 #0017 + 0x8C140103, // 0013 GETMET R5 R0 K3 + 0x7C140200, // 0014 CALL R5 1 + 0x88140B04, // 0015 GETMBR R5 R5 K4 + 0x70020000, // 0016 JMP #0018 + 0x58140005, // 0017 LDCONST R5 K5 + 0x8C180106, // 0018 GETMET R6 R0 K6 + 0x60200018, // 0019 GETGBL R8 G24 + 0x58240007, // 001A LDCONST R9 K7 + 0x5C280200, // 001B MOVE R10 R1 + 0x5C2C0400, // 001C MOVE R11 R2 + 0x7C200600, // 001D CALL R8 3 + 0x7C180400, // 001E CALL R6 2 + 0xA8040001, // 001F EXBLK 1 1 + 0x70020003, // 0020 JMP #0025 + 0xAC100002, // 0021 CATCH R4 0 2 + 0x70020000, // 0022 JMP #0024 + 0x70020000, // 0023 JMP #0025 + 0xB0080000, // 0024 RAISE 2 R0 R0 + 0x80000000, // 0025 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_palette +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_palette, /* 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[37]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(palette), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(expect_left_bracket), + /* K7 */ be_nested_str_weak(at_end), + /* K8 */ be_nested_str_weak(check_right_bracket), + /* K9 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K10 */ be_nested_str_weak(expect_left_paren), + /* K11 */ be_nested_str_weak(expect_number), + /* K12 */ be_nested_str_weak(expect_comma), + /* K13 */ be_nested_str_weak(process_value), + /* K14 */ be_nested_str_weak(color), + /* K15 */ be_nested_str_weak(expect_right_paren), + /* K16 */ be_nested_str_weak(convert_to_vrgb), + /* K17 */ be_nested_str_weak(push), + /* K18 */ be_nested_str_weak(_X22_X25s_X22), + /* K19 */ be_nested_str_weak(current), + /* K20 */ be_nested_str_weak(type), + /* K21 */ be_nested_str_weak(animation_dsl), + /* K22 */ be_nested_str_weak(Token), + /* K23 */ be_nested_str_weak(COMMENT), + /* K24 */ be_nested_str_weak(COMMA), + /* K25 */ be_nested_str_weak(NEWLINE), + /* K26 */ be_nested_str_weak(error), + /* K27 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20palette_X20definition), + /* K28 */ be_nested_str_weak(expect_right_bracket), + /* K29 */ be_nested_str_weak(collect_inline_comment), + /* K30 */ be_nested_str_weak(), + /* K31 */ be_const_int(0), + /* K32 */ be_const_int(1), + /* K33 */ be_nested_str_weak(_X20), + /* K34 */ be_nested_str_weak(stop_iteration), + /* K35 */ be_nested_str_weak(add), + /* K36 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20bytes_X28_X25s_X29_X25s), + }), + be_str_weak(process_palette), + &be_const_str_solidified, + ( &(const binstruction[147]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x7C080200, // 000F CALL R2 1 + 0x60080012, // 0010 GETGBL R2 G18 + 0x7C080000, // 0011 CALL R2 0 + 0x8C0C0107, // 0012 GETMET R3 R0 K7 + 0x7C0C0200, // 0013 CALL R3 1 + 0x740E005C, // 0014 JMPT R3 #0072 + 0x8C0C0108, // 0015 GETMET R3 R0 K8 + 0x7C0C0200, // 0016 CALL R3 1 + 0x740E0059, // 0017 JMPT R3 #0072 + 0x8C0C0109, // 0018 GETMET R3 R0 K9 + 0x7C0C0200, // 0019 CALL R3 1 + 0x8C0C0108, // 001A GETMET R3 R0 K8 + 0x7C0C0200, // 001B CALL R3 1 + 0x780E0000, // 001C JMPF R3 #001E + 0x70020053, // 001D JMP #0072 + 0x8C0C010A, // 001E GETMET R3 R0 K10 + 0x7C0C0200, // 001F CALL R3 1 + 0x8C0C010B, // 0020 GETMET R3 R0 K11 + 0x7C0C0200, // 0021 CALL R3 1 + 0x8C10010C, // 0022 GETMET R4 R0 K12 + 0x7C100200, // 0023 CALL R4 1 + 0x8C10010D, // 0024 GETMET R4 R0 K13 + 0x5818000E, // 0025 LDCONST R6 K14 + 0x7C100400, // 0026 CALL R4 2 + 0x8C14010F, // 0027 GETMET R5 R0 K15 + 0x7C140200, // 0028 CALL R5 1 + 0x8C140110, // 0029 GETMET R5 R0 K16 + 0x5C1C0600, // 002A MOVE R7 R3 + 0x5C200800, // 002B MOVE R8 R4 + 0x7C140600, // 002C CALL R5 3 + 0x8C180511, // 002D GETMET R6 R2 K17 + 0x60200018, // 002E GETGBL R8 G24 + 0x58240012, // 002F LDCONST R9 K18 + 0x5C280A00, // 0030 MOVE R10 R5 + 0x7C200400, // 0031 CALL R8 2 + 0x7C180400, // 0032 CALL R6 2 + 0x8C180107, // 0033 GETMET R6 R0 K7 + 0x7C180200, // 0034 CALL R6 1 + 0x741A000F, // 0035 JMPT R6 #0046 + 0x8C180113, // 0036 GETMET R6 R0 K19 + 0x7C180200, // 0037 CALL R6 1 + 0x4C1C0000, // 0038 LDNIL R7 + 0x201C0C07, // 0039 NE R7 R6 R7 + 0x781E0008, // 003A JMPF R7 #0044 + 0x881C0D14, // 003B GETMBR R7 R6 K20 + 0xB8222A00, // 003C GETNGBL R8 K21 + 0x88201116, // 003D GETMBR R8 R8 K22 + 0x88201117, // 003E GETMBR R8 R8 K23 + 0x1C1C0E08, // 003F EQ R7 R7 R8 + 0x781E0002, // 0040 JMPF R7 #0044 + 0x8C1C0100, // 0041 GETMET R7 R0 K0 + 0x7C1C0200, // 0042 CALL R7 1 + 0x70020000, // 0043 JMP #0045 + 0x70020000, // 0044 JMP #0046 + 0x7001FFEC, // 0045 JMP #0033 + 0x8C180113, // 0046 GETMET R6 R0 K19 + 0x7C180200, // 0047 CALL R6 1 + 0x4C1C0000, // 0048 LDNIL R7 + 0x20180C07, // 0049 NE R6 R6 R7 + 0x781A000C, // 004A JMPF R6 #0058 + 0x8C180113, // 004B GETMET R6 R0 K19 + 0x7C180200, // 004C CALL R6 1 + 0x88180D14, // 004D GETMBR R6 R6 K20 + 0xB81E2A00, // 004E GETNGBL R7 K21 + 0x881C0F16, // 004F GETMBR R7 R7 K22 + 0x881C0F18, // 0050 GETMBR R7 R7 K24 + 0x1C180C07, // 0051 EQ R6 R6 R7 + 0x781A0004, // 0052 JMPF R6 #0058 + 0x8C180100, // 0053 GETMET R6 R0 K0 + 0x7C180200, // 0054 CALL R6 1 + 0x8C180109, // 0055 GETMET R6 R0 K9 + 0x7C180200, // 0056 CALL R6 1 + 0x70020018, // 0057 JMP #0071 + 0x8C180113, // 0058 GETMET R6 R0 K19 + 0x7C180200, // 0059 CALL R6 1 + 0x4C1C0000, // 005A LDNIL R7 + 0x20180C07, // 005B NE R6 R6 R7 + 0x781A000C, // 005C JMPF R6 #006A + 0x8C180113, // 005D GETMET R6 R0 K19 + 0x7C180200, // 005E CALL R6 1 + 0x88180D14, // 005F GETMBR R6 R6 K20 + 0xB81E2A00, // 0060 GETNGBL R7 K21 + 0x881C0F16, // 0061 GETMBR R7 R7 K22 + 0x881C0F19, // 0062 GETMBR R7 R7 K25 + 0x1C180C07, // 0063 EQ R6 R6 R7 + 0x781A0004, // 0064 JMPF R6 #006A + 0x8C180100, // 0065 GETMET R6 R0 K0 + 0x7C180200, // 0066 CALL R6 1 + 0x8C180109, // 0067 GETMET R6 R0 K9 + 0x7C180200, // 0068 CALL R6 1 + 0x70020006, // 0069 JMP #0071 + 0x8C180108, // 006A GETMET R6 R0 K8 + 0x7C180200, // 006B CALL R6 1 + 0x741A0003, // 006C JMPT R6 #0071 + 0x8C18011A, // 006D GETMET R6 R0 K26 + 0x5820001B, // 006E LDCONST R8 K27 + 0x7C180400, // 006F CALL R6 2 + 0x70020000, // 0070 JMP #0072 + 0x7001FF9F, // 0071 JMP #0012 + 0x8C0C011C, // 0072 GETMET R3 R0 K28 + 0x7C0C0200, // 0073 CALL R3 1 + 0x8C0C011D, // 0074 GETMET R3 R0 K29 + 0x7C0C0200, // 0075 CALL R3 1 + 0x5810001E, // 0076 LDCONST R4 K30 + 0x60140010, // 0077 GETGBL R5 G16 + 0x6018000C, // 0078 GETGBL R6 G12 + 0x5C1C0400, // 0079 MOVE R7 R2 + 0x7C180200, // 007A CALL R6 1 + 0x04180D20, // 007B SUB R6 R6 K32 + 0x401A3E06, // 007C CONNECT R6 K31 R6 + 0x7C140200, // 007D CALL R5 1 + 0xA8020007, // 007E EXBLK 0 #0087 + 0x5C180A00, // 007F MOVE R6 R5 + 0x7C180000, // 0080 CALL R6 0 + 0x241C0D1F, // 0081 GT R7 R6 K31 + 0x781E0000, // 0082 JMPF R7 #0084 + 0x00100921, // 0083 ADD R4 R4 K33 + 0x941C0406, // 0084 GETIDX R7 R2 R6 + 0x00100807, // 0085 ADD R4 R4 R7 + 0x7001FFF7, // 0086 JMP #007F + 0x58140022, // 0087 LDCONST R5 K34 + 0xAC140200, // 0088 CATCH R5 1 0 + 0xB0080000, // 0089 RAISE 2 R0 R0 + 0x8C140123, // 008A GETMET R5 R0 K35 + 0x601C0018, // 008B GETGBL R7 G24 + 0x58200024, // 008C LDCONST R8 K36 + 0x5C240200, // 008D MOVE R9 R1 + 0x5C280800, // 008E MOVE R10 R4 + 0x5C2C0600, // 008F MOVE R11 R3 + 0x7C1C0800, // 0090 CALL R7 4 + 0x7C140400, // 0091 CALL R5 2 + 0x80000000, // 0092 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_comma +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(COMMA), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), + }), + be_str_weak(expect_comma), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_function_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[21]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_paren), + /* K3 */ be_nested_str_weak(skip_whitespace), + /* K4 */ be_nested_str_weak(process_value), + /* K5 */ be_nested_str_weak(argument), + /* K6 */ be_nested_str_weak(push), + /* K7 */ be_nested_str_weak(current), + /* K8 */ be_nested_str_weak(type), + /* K9 */ be_nested_str_weak(animation_dsl), + /* K10 */ be_nested_str_weak(Token), + /* K11 */ be_nested_str_weak(COMMA), + /* K12 */ be_nested_str_weak(next), + /* K13 */ be_nested_str_weak(error), + /* K14 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K15 */ be_nested_str_weak(expect_right_paren), + /* K16 */ be_nested_str_weak(), + /* K17 */ be_const_int(0), + /* K18 */ be_const_int(1), + /* K19 */ be_nested_str_weak(_X2C_X20), + /* K20 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(process_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[73]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x60040012, // 0002 GETGBL R1 G18 + 0x7C040000, // 0003 CALL R1 0 + 0x8C080101, // 0004 GETMET R2 R0 K1 + 0x7C080200, // 0005 CALL R2 1 + 0x740A002A, // 0006 JMPT R2 #0032 + 0x8C080102, // 0007 GETMET R2 R0 K2 + 0x7C080200, // 0008 CALL R2 1 + 0x740A0027, // 0009 JMPT R2 #0032 + 0x8C080103, // 000A GETMET R2 R0 K3 + 0x7C080200, // 000B CALL R2 1 + 0x8C080102, // 000C GETMET R2 R0 K2 + 0x7C080200, // 000D CALL R2 1 + 0x780A0000, // 000E JMPF R2 #0010 + 0x70020021, // 000F JMP #0032 + 0x8C080104, // 0010 GETMET R2 R0 K4 + 0x58100005, // 0011 LDCONST R4 K5 + 0x7C080400, // 0012 CALL R2 2 + 0x8C0C0306, // 0013 GETMET R3 R1 K6 + 0x5C140400, // 0014 MOVE R5 R2 + 0x7C0C0400, // 0015 CALL R3 2 + 0x8C0C0103, // 0016 GETMET R3 R0 K3 + 0x7C0C0200, // 0017 CALL R3 1 + 0x8C0C0107, // 0018 GETMET R3 R0 K7 + 0x7C0C0200, // 0019 CALL R3 1 + 0x4C100000, // 001A LDNIL R4 + 0x200C0604, // 001B NE R3 R3 R4 + 0x780E000C, // 001C JMPF R3 #002A + 0x8C0C0107, // 001D GETMET R3 R0 K7 + 0x7C0C0200, // 001E CALL R3 1 + 0x880C0708, // 001F GETMBR R3 R3 K8 + 0xB8121200, // 0020 GETNGBL R4 K9 + 0x8810090A, // 0021 GETMBR R4 R4 K10 + 0x8810090B, // 0022 GETMBR R4 R4 K11 + 0x1C0C0604, // 0023 EQ R3 R3 R4 + 0x780E0004, // 0024 JMPF R3 #002A + 0x8C0C010C, // 0025 GETMET R3 R0 K12 + 0x7C0C0200, // 0026 CALL R3 1 + 0x8C0C0103, // 0027 GETMET R3 R0 K3 + 0x7C0C0200, // 0028 CALL R3 1 + 0x70020006, // 0029 JMP #0031 + 0x8C0C0102, // 002A GETMET R3 R0 K2 + 0x7C0C0200, // 002B CALL R3 1 + 0x740E0003, // 002C JMPT R3 #0031 + 0x8C0C010D, // 002D GETMET R3 R0 K13 + 0x5814000E, // 002E LDCONST R5 K14 + 0x7C0C0400, // 002F CALL R3 2 + 0x70020000, // 0030 JMP #0032 + 0x7001FFD1, // 0031 JMP #0004 + 0x8C08010F, // 0032 GETMET R2 R0 K15 + 0x7C080200, // 0033 CALL R2 1 + 0x58080010, // 0034 LDCONST R2 K16 + 0x600C0010, // 0035 GETGBL R3 G16 + 0x6010000C, // 0036 GETGBL R4 G12 + 0x5C140200, // 0037 MOVE R5 R1 + 0x7C100200, // 0038 CALL R4 1 + 0x04100912, // 0039 SUB R4 R4 K18 + 0x40122204, // 003A CONNECT R4 K17 R4 + 0x7C0C0200, // 003B CALL R3 1 + 0xA8020007, // 003C EXBLK 0 #0045 + 0x5C100600, // 003D MOVE R4 R3 + 0x7C100000, // 003E CALL R4 0 + 0x24140911, // 003F GT R5 R4 K17 + 0x78160000, // 0040 JMPF R5 #0042 + 0x00080513, // 0041 ADD R2 R2 K19 + 0x94140204, // 0042 GETIDX R5 R1 R4 + 0x00080405, // 0043 ADD R2 R2 R5 + 0x7001FFF7, // 0044 JMP #003D + 0x580C0014, // 0045 LDCONST R3 K20 + 0xAC0C0200, // 0046 CATCH R3 1 0 + 0xB0080000, // 0047 RAISE 2 R0 R0 + 0x80040400, // 0048 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: 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_additive_expression_raw +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_additive_expression_raw, /* name */ be_nested_proto( 10, /* nstack */ 1, /* argc */ @@ -9066,19 +5078,19 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(process_unary_expression_raw), + /* K0 */ be_nested_str_weak(process_multiplicative_expression_raw), /* K1 */ be_nested_str_weak(at_end), /* K2 */ be_nested_str_weak(current), /* K3 */ be_nested_str_weak(type), /* K4 */ be_nested_str_weak(animation_dsl), /* K5 */ be_nested_str_weak(Token), - /* K6 */ be_nested_str_weak(MULTIPLY), - /* K7 */ be_nested_str_weak(DIVIDE), + /* K6 */ be_nested_str_weak(PLUS), + /* K7 */ be_nested_str_weak(MINUS), /* K8 */ be_nested_str_weak(value), /* K9 */ be_nested_str_weak(next), /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), }), - be_str_weak(process_multiplicative_expression_raw), + be_str_weak(process_additive_expression_raw), &be_const_str_solidified, ( &(const binstruction[38]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 @@ -9125,6 +5137,3510 @@ be_local_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw /*******************************************************************/ +/******************************************************************** +** Solidified function: check_right_brace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_BRACE), + }), + be_str_weak(check_right_brace), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0005, // 0004 JMPF R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A0000, // 000A JMPT R2 #000C + 0x50080001, // 000B LDBOOL R2 0 1 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x80040400, // 000D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: validate_user_name +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ + be_nested_proto( + 13, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(Token), + /* K2 */ be_nested_str_weak(color_names), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K5 */ be_nested_str_weak(stop_iteration), + /* K6 */ be_nested_str_weak(statement_keywords), + /* K7 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + }), + be_str_weak(validate_user_name), + &be_const_str_solidified, + ( &(const binstruction[53]) { /* code */ + 0x600C0010, // 0000 GETGBL R3 G16 + 0xB8120000, // 0001 GETNGBL R4 K0 + 0x88100901, // 0002 GETMBR R4 R4 K1 + 0x88100902, // 0003 GETMBR R4 R4 K2 + 0x7C0C0200, // 0004 CALL R3 1 + 0xA802000F, // 0005 EXBLK 0 #0016 + 0x5C100600, // 0006 MOVE R4 R3 + 0x7C100000, // 0007 CALL R4 0 + 0x1C140204, // 0008 EQ R5 R1 R4 + 0x7816000A, // 0009 JMPF R5 #0015 + 0x8C140103, // 000A GETMET R5 R0 K3 + 0x601C0018, // 000B GETGBL R7 G24 + 0x58200004, // 000C LDCONST R8 K4 + 0x5C240200, // 000D MOVE R9 R1 + 0x5C280200, // 000E MOVE R10 R1 + 0x5C2C0200, // 000F MOVE R11 R1 + 0x7C1C0800, // 0010 CALL R7 4 + 0x7C140400, // 0011 CALL R5 2 + 0x50140000, // 0012 LDBOOL R5 0 0 + 0xA8040001, // 0013 EXBLK 1 1 + 0x80040A00, // 0014 RET 1 R5 + 0x7001FFEF, // 0015 JMP #0006 + 0x580C0005, // 0016 LDCONST R3 K5 + 0xAC0C0200, // 0017 CATCH R3 1 0 + 0xB0080000, // 0018 RAISE 2 R0 R0 + 0x600C0010, // 0019 GETGBL R3 G16 + 0xB8120000, // 001A GETNGBL R4 K0 + 0x88100901, // 001B GETMBR R4 R4 K1 + 0x88100906, // 001C GETMBR R4 R4 K6 + 0x7C0C0200, // 001D CALL R3 1 + 0xA8020010, // 001E EXBLK 0 #0030 + 0x5C100600, // 001F MOVE R4 R3 + 0x7C100000, // 0020 CALL R4 0 + 0x1C140204, // 0021 EQ R5 R1 R4 + 0x7816000B, // 0022 JMPF R5 #002F + 0x8C140103, // 0023 GETMET R5 R0 K3 + 0x601C0018, // 0024 GETGBL R7 G24 + 0x58200007, // 0025 LDCONST R8 K7 + 0x5C240200, // 0026 MOVE R9 R1 + 0x5C280400, // 0027 MOVE R10 R2 + 0x5C2C0200, // 0028 MOVE R11 R1 + 0x5C300200, // 0029 MOVE R12 R1 + 0x7C1C0A00, // 002A CALL R7 5 + 0x7C140400, // 002B CALL R5 2 + 0x50140000, // 002C LDBOOL R5 0 0 + 0xA8040001, // 002D EXBLK 1 1 + 0x80040A00, // 002E RET 1 R5 + 0x7001FFEE, // 002F JMP #001F + 0x580C0005, // 0030 LDCONST R3 K5 + 0xAC0C0200, // 0031 CATCH R3 1 0 + 0xB0080000, // 0032 RAISE 2 R0 R0 + 0x500C0200, // 0033 LDBOOL R3 1 0 + 0x80040600, // 0034 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: generate_engine_start +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_generate_engine_start, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(run_statements), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(name), + /* K3 */ be_nested_str_weak(comment), + /* K4 */ be_nested_str_weak(sequence_names), + /* K5 */ be_nested_str_weak(contains), + /* K6 */ be_nested_str_weak(add), + /* K7 */ be_nested_str_weak(engine_X2Eadd_sequence_manager_X28_X25s__X29_X25s), + /* K8 */ be_nested_str_weak(engine_X2Eadd_animation_X28_X25s__X29_X25s), + /* K9 */ be_nested_str_weak(stop_iteration), + /* K10 */ be_nested_str_weak(engine_X2Estart_X28_X29), + }), + be_str_weak(generate_engine_start), + &be_const_str_solidified, + ( &(const binstruction[42]) { /* code */ + 0x6004000C, // 0000 GETGBL R1 G12 + 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x7C040200, // 0002 CALL R1 1 + 0x1C040301, // 0003 EQ R1 R1 K1 + 0x78060000, // 0004 JMPF R1 #0006 + 0x80000200, // 0005 RET 0 + 0x60040010, // 0006 GETGBL R1 G16 + 0x88080100, // 0007 GETMBR R2 R0 K0 + 0x7C040200, // 0008 CALL R1 1 + 0xA8020018, // 0009 EXBLK 0 #0023 + 0x5C080200, // 000A MOVE R2 R1 + 0x7C080000, // 000B CALL R2 0 + 0x940C0502, // 000C GETIDX R3 R2 K2 + 0x94100503, // 000D GETIDX R4 R2 K3 + 0x88140104, // 000E GETMBR R5 R0 K4 + 0x8C140B05, // 000F GETMET R5 R5 K5 + 0x5C1C0600, // 0010 MOVE R7 R3 + 0x7C140400, // 0011 CALL R5 2 + 0x78160007, // 0012 JMPF R5 #001B + 0x8C140106, // 0013 GETMET R5 R0 K6 + 0x601C0018, // 0014 GETGBL R7 G24 + 0x58200007, // 0015 LDCONST R8 K7 + 0x5C240600, // 0016 MOVE R9 R3 + 0x5C280800, // 0017 MOVE R10 R4 + 0x7C1C0600, // 0018 CALL R7 3 + 0x7C140400, // 0019 CALL R5 2 + 0x70020006, // 001A JMP #0022 + 0x8C140106, // 001B GETMET R5 R0 K6 + 0x601C0018, // 001C GETGBL R7 G24 + 0x58200008, // 001D LDCONST R8 K8 + 0x5C240600, // 001E MOVE R9 R3 + 0x5C280800, // 001F MOVE R10 R4 + 0x7C1C0600, // 0020 CALL R7 3 + 0x7C140400, // 0021 CALL R5 2 + 0x7001FFE6, // 0022 JMP #000A + 0x58040009, // 0023 LDCONST R1 K9 + 0xAC040200, // 0024 CATCH R1 1 0 + 0xB0080000, // 0025 RAISE 2 R0 R0 + 0x8C040106, // 0026 GETMET R1 R0 K6 + 0x580C000A, // 0027 LDCONST R3 K10 + 0x7C040400, // 0028 CALL R1 2 + 0x80000000, // 0029 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: skip_whitespace_including_newlines +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(COMMENT), + /* K6 */ be_nested_str_weak(NEWLINE), + /* K7 */ be_nested_str_weak(next), + }), + be_str_weak(skip_whitespace_including_newlines), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x74060015, // 0002 JMPT R1 #0019 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x20080202, // 0006 NE R2 R1 R2 + 0x780A000E, // 0007 JMPF R2 #0017 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0xB80E0600, // 0009 GETNGBL R3 K3 + 0x880C0704, // 000A GETMBR R3 R3 K4 + 0x880C0705, // 000B GETMBR R3 R3 K5 + 0x1C080403, // 000C EQ R2 R2 R3 + 0x740A0005, // 000D JMPT R2 #0014 + 0x88080302, // 000E GETMBR R2 R1 K2 + 0xB80E0600, // 000F GETNGBL R3 K3 + 0x880C0704, // 0010 GETMBR R3 R3 K4 + 0x880C0706, // 0011 GETMBR R3 R3 K6 + 0x1C080403, // 0012 EQ R2 R2 R3 + 0x780A0002, // 0013 JMPF R2 #0017 + 0x8C080107, // 0014 GETMET R2 R0 K7 + 0x7C080200, // 0015 CALL R2 1 + 0x70020000, // 0016 JMP #0018 + 0x70020000, // 0017 JMP #0019 + 0x7001FFE6, // 0018 JMP #0000 + 0x80000000, // 0019 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_unary_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ + be_nested_proto( + 8, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(MINUS), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_unary_expression), + /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), + /* K11 */ be_nested_str_weak(PLUS), + /* K12 */ be_nested_str_weak(process_primary_expression), + }), + be_str_weak(process_unary_expression), + &be_const_str_solidified, + ( &(const binstruction[44]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x4C100000, // 0002 LDNIL R4 + 0x1C100604, // 0003 EQ R4 R3 R4 + 0x78120003, // 0004 JMPF R4 #0009 + 0x8C100101, // 0005 GETMET R4 R0 K1 + 0x58180002, // 0006 LDCONST R6 K2 + 0x7C100400, // 0007 CALL R4 2 + 0x80060600, // 0008 RET 1 K3 + 0x88100704, // 0009 GETMBR R4 R3 K4 + 0xB8160A00, // 000A GETNGBL R5 K5 + 0x88140B06, // 000B GETMBR R5 R5 K6 + 0x88140B07, // 000C GETMBR R5 R5 K7 + 0x1C100805, // 000D EQ R4 R4 R5 + 0x7812000A, // 000E JMPF R4 #001A + 0x8C100108, // 000F GETMET R4 R0 K8 + 0x7C100200, // 0010 CALL R4 1 + 0x8C100109, // 0011 GETMET R4 R0 K9 + 0x5C180200, // 0012 MOVE R6 R1 + 0x501C0000, // 0013 LDBOOL R7 0 0 + 0x7C100600, // 0014 CALL R4 3 + 0x60140018, // 0015 GETGBL R5 G24 + 0x5818000A, // 0016 LDCONST R6 K10 + 0x5C1C0800, // 0017 MOVE R7 R4 + 0x7C140400, // 0018 CALL R5 2 + 0x80040A00, // 0019 RET 1 R5 + 0x88100704, // 001A GETMBR R4 R3 K4 + 0xB8160A00, // 001B GETNGBL R5 K5 + 0x88140B06, // 001C GETMBR R5 R5 K6 + 0x88140B0B, // 001D GETMBR R5 R5 K11 + 0x1C100805, // 001E EQ R4 R4 R5 + 0x78120006, // 001F JMPF R4 #0027 + 0x8C100108, // 0020 GETMET R4 R0 K8 + 0x7C100200, // 0021 CALL R4 1 + 0x8C100109, // 0022 GETMET R4 R0 K9 + 0x5C180200, // 0023 MOVE R6 R1 + 0x501C0000, // 0024 LDBOOL R7 0 0 + 0x7C100600, // 0025 CALL R4 3 + 0x80040800, // 0026 RET 1 R4 + 0x8C10010C, // 0027 GETMET R4 R0 K12 + 0x5C180200, // 0028 MOVE R6 R1 + 0x5C1C0400, // 0029 MOVE R7 R2 + 0x7C100600, // 002A CALL R4 3 + 0x80040800, // 002B RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_statement, /* name */ + be_nested_proto( + 15, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[42]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(EOF), + /* K5 */ be_nested_str_weak(COMMENT), + /* K6 */ be_nested_str_weak(add), + /* K7 */ be_nested_str_weak(_X20_X20), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(NEWLINE), + /* K11 */ be_nested_str_weak(KEYWORD), + /* K12 */ be_nested_str_weak(play), + /* K13 */ be_nested_str_weak(), + /* K14 */ be_nested_str_weak(IDENTIFIER), + /* K15 */ be_nested_str_weak(peek), + /* K16 */ be_nested_str_weak(LEFT_PAREN), + /* K17 */ be_nested_str_weak(process_nested_function_call), + /* K18 */ be_nested_str_weak(expect_identifier), + /* K19 */ be_nested_str_weak(_validate_object_reference), + /* K20 */ be_nested_str_weak(sequence_X20play), + /* K21 */ be_nested_str_weak(animation_X2Eglobal_X28_X27_X25s__X27_X29), + /* K22 */ be_nested_str_weak(0), + /* K23 */ be_nested_str_weak(for), + /* K24 */ be_nested_str_weak(process_time_value), + /* K25 */ be_nested_str_weak(collect_inline_comment), + /* K26 */ be_nested_str_weak(_X20_X20steps_X2Epush_X28animation_X2Ecreate_play_step_X28_X25s_X2C_X20_X25s_X29_X29_X25s), + /* K27 */ be_nested_str_weak(wait), + /* K28 */ be_nested_str_weak(_X20_X20steps_X2Epush_X28animation_X2Ecreate_wait_step_X28_X25s_X29_X29_X25s), + /* K29 */ be_nested_str_weak(repeat), + /* K30 */ be_nested_str_weak(expect_number), + /* K31 */ be_nested_str_weak(expect_keyword), + /* K32 */ be_nested_str_weak(times), + /* K33 */ be_nested_str_weak(expect_colon), + /* K34 */ be_nested_str_weak(_X20_X20for_X20repeat_i_X20_X3A_X200_X2E_X2E_X25s_X2D1), + /* K35 */ be_nested_str_weak(at_end), + /* K36 */ be_nested_str_weak(check_right_brace), + /* K37 */ be_nested_str_weak(_X20_X20_X20_X20), + /* K38 */ be_nested_str_weak(_X20_X20_X20_X20steps_X2Epush_X28animation_X2Ecreate_play_step_X28_X25s_X2C_X20_X25s_X29_X29_X25s), + /* K39 */ be_nested_str_weak(_X20_X20_X20_X20steps_X2Epush_X28animation_X2Ecreate_wait_step_X28_X25s_X29_X29_X25s), + /* K40 */ be_nested_str_weak(_X20_X20end), + /* K41 */ be_nested_str_weak(skip_statement), + }), + be_str_weak(process_sequence_statement), + &be_const_str_solidified, + ( &(const binstruction[343]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x740A0005, // 0004 JMPT R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0000, // 000A JMPF R2 #000C + 0x80000400, // 000B RET 0 + 0x88080301, // 000C GETMBR R2 R1 K1 + 0xB80E0400, // 000D GETNGBL R3 K2 + 0x880C0703, // 000E GETMBR R3 R3 K3 + 0x880C0705, // 000F GETMBR R3 R3 K5 + 0x1C080403, // 0010 EQ R2 R2 R3 + 0x780A0006, // 0011 JMPF R2 #0019 + 0x8C080106, // 0012 GETMET R2 R0 K6 + 0x88100308, // 0013 GETMBR R4 R1 K8 + 0x00120E04, // 0014 ADD R4 K7 R4 + 0x7C080400, // 0015 CALL R2 2 + 0x8C080109, // 0016 GETMET R2 R0 K9 + 0x7C080200, // 0017 CALL R2 1 + 0x80000400, // 0018 RET 0 + 0x88080301, // 0019 GETMBR R2 R1 K1 + 0xB80E0400, // 001A GETNGBL R3 K2 + 0x880C0703, // 001B GETMBR R3 R3 K3 + 0x880C070A, // 001C GETMBR R3 R3 K10 + 0x1C080403, // 001D EQ R2 R2 R3 + 0x780A0002, // 001E JMPF R2 #0022 + 0x8C080109, // 001F GETMET R2 R0 K9 + 0x7C080200, // 0020 CALL R2 1 + 0x80000400, // 0021 RET 0 + 0x88080301, // 0022 GETMBR R2 R1 K1 + 0xB80E0400, // 0023 GETNGBL R3 K2 + 0x880C0703, // 0024 GETMBR R3 R3 K3 + 0x880C070B, // 0025 GETMBR R3 R3 K11 + 0x1C080403, // 0026 EQ R2 R2 R3 + 0x780A0057, // 0027 JMPF R2 #0080 + 0x88080308, // 0028 GETMBR R2 R1 K8 + 0x1C08050C, // 0029 EQ R2 R2 K12 + 0x780A0054, // 002A JMPF R2 #0080 + 0x8C080109, // 002B GETMET R2 R0 K9 + 0x7C080200, // 002C CALL R2 1 + 0x5808000D, // 002D LDCONST R2 K13 + 0x8C0C0100, // 002E GETMET R3 R0 K0 + 0x7C0C0200, // 002F CALL R3 1 + 0x4C100000, // 0030 LDNIL R4 + 0x20100604, // 0031 NE R4 R3 R4 + 0x7812001C, // 0032 JMPF R4 #0050 + 0x88100701, // 0033 GETMBR R4 R3 K1 + 0xB8160400, // 0034 GETNGBL R5 K2 + 0x88140B03, // 0035 GETMBR R5 R5 K3 + 0x88140B0E, // 0036 GETMBR R5 R5 K14 + 0x1C100805, // 0037 EQ R4 R4 R5 + 0x74120005, // 0038 JMPT R4 #003F + 0x88100701, // 0039 GETMBR R4 R3 K1 + 0xB8160400, // 003A GETNGBL R5 K2 + 0x88140B03, // 003B GETMBR R5 R5 K3 + 0x88140B0B, // 003C GETMBR R5 R5 K11 + 0x1C100805, // 003D EQ R4 R4 R5 + 0x78120010, // 003E JMPF R4 #0050 + 0x8C10010F, // 003F GETMET R4 R0 K15 + 0x7C100200, // 0040 CALL R4 1 + 0x4C140000, // 0041 LDNIL R5 + 0x20100805, // 0042 NE R4 R4 R5 + 0x7812000B, // 0043 JMPF R4 #0050 + 0x8C10010F, // 0044 GETMET R4 R0 K15 + 0x7C100200, // 0045 CALL R4 1 + 0x88100901, // 0046 GETMBR R4 R4 K1 + 0xB8160400, // 0047 GETNGBL R5 K2 + 0x88140B03, // 0048 GETMBR R5 R5 K3 + 0x88140B10, // 0049 GETMBR R5 R5 K16 + 0x1C100805, // 004A EQ R4 R4 R5 + 0x78120003, // 004B JMPF R4 #0050 + 0x8C100111, // 004C GETMET R4 R0 K17 + 0x7C100200, // 004D CALL R4 1 + 0x5C080800, // 004E MOVE R2 R4 + 0x7002000A, // 004F JMP #005B + 0x8C100112, // 0050 GETMET R4 R0 K18 + 0x7C100200, // 0051 CALL R4 1 + 0x8C140113, // 0052 GETMET R5 R0 K19 + 0x5C1C0800, // 0053 MOVE R7 R4 + 0x58200014, // 0054 LDCONST R8 K20 + 0x7C140600, // 0055 CALL R5 3 + 0x60140018, // 0056 GETGBL R5 G24 + 0x58180015, // 0057 LDCONST R6 K21 + 0x5C1C0800, // 0058 MOVE R7 R4 + 0x7C140400, // 0059 CALL R5 2 + 0x5C080A00, // 005A MOVE R2 R5 + 0x58100016, // 005B LDCONST R4 K22 + 0x8C140100, // 005C GETMET R5 R0 K0 + 0x7C140200, // 005D CALL R5 1 + 0x4C180000, // 005E LDNIL R6 + 0x20140A06, // 005F NE R5 R5 R6 + 0x78160013, // 0060 JMPF R5 #0075 + 0x8C140100, // 0061 GETMET R5 R0 K0 + 0x7C140200, // 0062 CALL R5 1 + 0x88140B01, // 0063 GETMBR R5 R5 K1 + 0xB81A0400, // 0064 GETNGBL R6 K2 + 0x88180D03, // 0065 GETMBR R6 R6 K3 + 0x88180D0B, // 0066 GETMBR R6 R6 K11 + 0x1C140A06, // 0067 EQ R5 R5 R6 + 0x7816000B, // 0068 JMPF R5 #0075 + 0x8C140100, // 0069 GETMET R5 R0 K0 + 0x7C140200, // 006A CALL R5 1 + 0x88140B08, // 006B GETMBR R5 R5 K8 + 0x1C140B17, // 006C EQ R5 R5 K23 + 0x78160006, // 006D JMPF R5 #0075 + 0x8C140109, // 006E GETMET R5 R0 K9 + 0x7C140200, // 006F CALL R5 1 + 0x60140008, // 0070 GETGBL R5 G8 + 0x8C180118, // 0071 GETMET R6 R0 K24 + 0x7C180200, // 0072 CALL R6 1 + 0x7C140200, // 0073 CALL R5 1 + 0x5C100A00, // 0074 MOVE R4 R5 + 0x8C140119, // 0075 GETMET R5 R0 K25 + 0x7C140200, // 0076 CALL R5 1 + 0x8C180106, // 0077 GETMET R6 R0 K6 + 0x60200018, // 0078 GETGBL R8 G24 + 0x5824001A, // 0079 LDCONST R9 K26 + 0x5C280400, // 007A MOVE R10 R2 + 0x5C2C0800, // 007B MOVE R11 R4 + 0x5C300A00, // 007C MOVE R12 R5 + 0x7C200800, // 007D CALL R8 4 + 0x7C180400, // 007E CALL R6 2 + 0x700200D5, // 007F JMP #0156 + 0x88080301, // 0080 GETMBR R2 R1 K1 + 0xB80E0400, // 0081 GETNGBL R3 K2 + 0x880C0703, // 0082 GETMBR R3 R3 K3 + 0x880C070B, // 0083 GETMBR R3 R3 K11 + 0x1C080403, // 0084 EQ R2 R2 R3 + 0x780A0010, // 0085 JMPF R2 #0097 + 0x88080308, // 0086 GETMBR R2 R1 K8 + 0x1C08051B, // 0087 EQ R2 R2 K27 + 0x780A000D, // 0088 JMPF R2 #0097 + 0x8C080109, // 0089 GETMET R2 R0 K9 + 0x7C080200, // 008A CALL R2 1 + 0x8C080118, // 008B GETMET R2 R0 K24 + 0x7C080200, // 008C CALL R2 1 + 0x8C0C0119, // 008D GETMET R3 R0 K25 + 0x7C0C0200, // 008E CALL R3 1 + 0x8C100106, // 008F GETMET R4 R0 K6 + 0x60180018, // 0090 GETGBL R6 G24 + 0x581C001C, // 0091 LDCONST R7 K28 + 0x5C200400, // 0092 MOVE R8 R2 + 0x5C240600, // 0093 MOVE R9 R3 + 0x7C180600, // 0094 CALL R6 3 + 0x7C100400, // 0095 CALL R4 2 + 0x700200BE, // 0096 JMP #0156 + 0x88080301, // 0097 GETMBR R2 R1 K1 + 0xB80E0400, // 0098 GETNGBL R3 K2 + 0x880C0703, // 0099 GETMBR R3 R3 K3 + 0x880C070B, // 009A GETMBR R3 R3 K11 + 0x1C080403, // 009B EQ R2 R2 R3 + 0x780A00B6, // 009C JMPF R2 #0154 + 0x88080308, // 009D GETMBR R2 R1 K8 + 0x1C08051D, // 009E EQ R2 R2 K29 + 0x780A00B3, // 009F JMPF R2 #0154 + 0x8C080109, // 00A0 GETMET R2 R0 K9 + 0x7C080200, // 00A1 CALL R2 1 + 0x8C08011E, // 00A2 GETMET R2 R0 K30 + 0x7C080200, // 00A3 CALL R2 1 + 0x8C0C011F, // 00A4 GETMET R3 R0 K31 + 0x58140020, // 00A5 LDCONST R5 K32 + 0x7C0C0400, // 00A6 CALL R3 2 + 0x8C0C0121, // 00A7 GETMET R3 R0 K33 + 0x7C0C0200, // 00A8 CALL R3 1 + 0x8C0C0106, // 00A9 GETMET R3 R0 K6 + 0x60140018, // 00AA GETGBL R5 G24 + 0x58180022, // 00AB LDCONST R6 K34 + 0x5C1C0400, // 00AC MOVE R7 R2 + 0x7C140400, // 00AD CALL R5 2 + 0x7C0C0400, // 00AE CALL R3 2 + 0x8C0C0123, // 00AF GETMET R3 R0 K35 + 0x7C0C0200, // 00B0 CALL R3 1 + 0x740E009B, // 00B1 JMPT R3 #014E + 0x8C0C0124, // 00B2 GETMET R3 R0 K36 + 0x7C0C0200, // 00B3 CALL R3 1 + 0x740E0098, // 00B4 JMPT R3 #014E + 0x8C0C0100, // 00B5 GETMET R3 R0 K0 + 0x7C0C0200, // 00B6 CALL R3 1 + 0x4C100000, // 00B7 LDNIL R4 + 0x1C100604, // 00B8 EQ R4 R3 R4 + 0x74120005, // 00B9 JMPT R4 #00C0 + 0x88100701, // 00BA GETMBR R4 R3 K1 + 0xB8160400, // 00BB GETNGBL R5 K2 + 0x88140B03, // 00BC GETMBR R5 R5 K3 + 0x88140B04, // 00BD GETMBR R5 R5 K4 + 0x1C100805, // 00BE EQ R4 R4 R5 + 0x78120000, // 00BF JMPF R4 #00C1 + 0x7002008C, // 00C0 JMP #014E + 0x88100701, // 00C1 GETMBR R4 R3 K1 + 0xB8160400, // 00C2 GETNGBL R5 K2 + 0x88140B03, // 00C3 GETMBR R5 R5 K3 + 0x88140B05, // 00C4 GETMBR R5 R5 K5 + 0x1C100805, // 00C5 EQ R4 R4 R5 + 0x78120006, // 00C6 JMPF R4 #00CE + 0x8C100106, // 00C7 GETMET R4 R0 K6 + 0x88180708, // 00C8 GETMBR R6 R3 K8 + 0x001A4A06, // 00C9 ADD R6 K37 R6 + 0x7C100400, // 00CA CALL R4 2 + 0x8C100109, // 00CB GETMET R4 R0 K9 + 0x7C100200, // 00CC CALL R4 1 + 0x7001FFE0, // 00CD JMP #00AF + 0x88100701, // 00CE GETMBR R4 R3 K1 + 0xB8160400, // 00CF GETNGBL R5 K2 + 0x88140B03, // 00D0 GETMBR R5 R5 K3 + 0x88140B0A, // 00D1 GETMBR R5 R5 K10 + 0x1C100805, // 00D2 EQ R4 R4 R5 + 0x78120002, // 00D3 JMPF R4 #00D7 + 0x8C100109, // 00D4 GETMET R4 R0 K9 + 0x7C100200, // 00D5 CALL R4 1 + 0x7001FFD7, // 00D6 JMP #00AF + 0x88100701, // 00D7 GETMBR R4 R3 K1 + 0xB8160400, // 00D8 GETNGBL R5 K2 + 0x88140B03, // 00D9 GETMBR R5 R5 K3 + 0x88140B0B, // 00DA GETMBR R5 R5 K11 + 0x1C100805, // 00DB EQ R4 R4 R5 + 0x78120057, // 00DC JMPF R4 #0135 + 0x88100708, // 00DD GETMBR R4 R3 K8 + 0x1C10090C, // 00DE EQ R4 R4 K12 + 0x78120054, // 00DF JMPF R4 #0135 + 0x8C100109, // 00E0 GETMET R4 R0 K9 + 0x7C100200, // 00E1 CALL R4 1 + 0x5810000D, // 00E2 LDCONST R4 K13 + 0x8C140100, // 00E3 GETMET R5 R0 K0 + 0x7C140200, // 00E4 CALL R5 1 + 0x4C180000, // 00E5 LDNIL R6 + 0x20180A06, // 00E6 NE R6 R5 R6 + 0x781A001C, // 00E7 JMPF R6 #0105 + 0x88180B01, // 00E8 GETMBR R6 R5 K1 + 0xB81E0400, // 00E9 GETNGBL R7 K2 + 0x881C0F03, // 00EA GETMBR R7 R7 K3 + 0x881C0F0E, // 00EB GETMBR R7 R7 K14 + 0x1C180C07, // 00EC EQ R6 R6 R7 + 0x741A0005, // 00ED JMPT R6 #00F4 + 0x88180B01, // 00EE GETMBR R6 R5 K1 + 0xB81E0400, // 00EF GETNGBL R7 K2 + 0x881C0F03, // 00F0 GETMBR R7 R7 K3 + 0x881C0F0B, // 00F1 GETMBR R7 R7 K11 + 0x1C180C07, // 00F2 EQ R6 R6 R7 + 0x781A0010, // 00F3 JMPF R6 #0105 + 0x8C18010F, // 00F4 GETMET R6 R0 K15 + 0x7C180200, // 00F5 CALL R6 1 + 0x4C1C0000, // 00F6 LDNIL R7 + 0x20180C07, // 00F7 NE R6 R6 R7 + 0x781A000B, // 00F8 JMPF R6 #0105 + 0x8C18010F, // 00F9 GETMET R6 R0 K15 + 0x7C180200, // 00FA CALL R6 1 + 0x88180D01, // 00FB GETMBR R6 R6 K1 + 0xB81E0400, // 00FC GETNGBL R7 K2 + 0x881C0F03, // 00FD GETMBR R7 R7 K3 + 0x881C0F10, // 00FE GETMBR R7 R7 K16 + 0x1C180C07, // 00FF EQ R6 R6 R7 + 0x781A0003, // 0100 JMPF R6 #0105 + 0x8C180111, // 0101 GETMET R6 R0 K17 + 0x7C180200, // 0102 CALL R6 1 + 0x5C100C00, // 0103 MOVE R4 R6 + 0x7002000A, // 0104 JMP #0110 + 0x8C180112, // 0105 GETMET R6 R0 K18 + 0x7C180200, // 0106 CALL R6 1 + 0x8C1C0113, // 0107 GETMET R7 R0 K19 + 0x5C240C00, // 0108 MOVE R9 R6 + 0x58280014, // 0109 LDCONST R10 K20 + 0x7C1C0600, // 010A CALL R7 3 + 0x601C0018, // 010B GETGBL R7 G24 + 0x58200015, // 010C LDCONST R8 K21 + 0x5C240C00, // 010D MOVE R9 R6 + 0x7C1C0400, // 010E CALL R7 2 + 0x5C100E00, // 010F MOVE R4 R7 + 0x58180016, // 0110 LDCONST R6 K22 + 0x8C1C0100, // 0111 GETMET R7 R0 K0 + 0x7C1C0200, // 0112 CALL R7 1 + 0x4C200000, // 0113 LDNIL R8 + 0x201C0E08, // 0114 NE R7 R7 R8 + 0x781E0013, // 0115 JMPF R7 #012A + 0x8C1C0100, // 0116 GETMET R7 R0 K0 + 0x7C1C0200, // 0117 CALL R7 1 + 0x881C0F01, // 0118 GETMBR R7 R7 K1 + 0xB8220400, // 0119 GETNGBL R8 K2 + 0x88201103, // 011A GETMBR R8 R8 K3 + 0x8820110B, // 011B GETMBR R8 R8 K11 + 0x1C1C0E08, // 011C EQ R7 R7 R8 + 0x781E000B, // 011D JMPF R7 #012A + 0x8C1C0100, // 011E GETMET R7 R0 K0 + 0x7C1C0200, // 011F CALL R7 1 + 0x881C0F08, // 0120 GETMBR R7 R7 K8 + 0x1C1C0F17, // 0121 EQ R7 R7 K23 + 0x781E0006, // 0122 JMPF R7 #012A + 0x8C1C0109, // 0123 GETMET R7 R0 K9 + 0x7C1C0200, // 0124 CALL R7 1 + 0x601C0008, // 0125 GETGBL R7 G8 + 0x8C200118, // 0126 GETMET R8 R0 K24 + 0x7C200200, // 0127 CALL R8 1 + 0x7C1C0200, // 0128 CALL R7 1 + 0x5C180E00, // 0129 MOVE R6 R7 + 0x8C1C0119, // 012A GETMET R7 R0 K25 + 0x7C1C0200, // 012B CALL R7 1 + 0x8C200106, // 012C GETMET R8 R0 K6 + 0x60280018, // 012D GETGBL R10 G24 + 0x582C0026, // 012E LDCONST R11 K38 + 0x5C300800, // 012F MOVE R12 R4 + 0x5C340C00, // 0130 MOVE R13 R6 + 0x5C380E00, // 0131 MOVE R14 R7 + 0x7C280800, // 0132 CALL R10 4 + 0x7C200400, // 0133 CALL R8 2 + 0x70020017, // 0134 JMP #014D + 0x88100701, // 0135 GETMBR R4 R3 K1 + 0xB8160400, // 0136 GETNGBL R5 K2 + 0x88140B03, // 0137 GETMBR R5 R5 K3 + 0x88140B0B, // 0138 GETMBR R5 R5 K11 + 0x1C100805, // 0139 EQ R4 R4 R5 + 0x78120010, // 013A JMPF R4 #014C + 0x88100708, // 013B GETMBR R4 R3 K8 + 0x1C10091B, // 013C EQ R4 R4 K27 + 0x7812000D, // 013D JMPF R4 #014C + 0x8C100109, // 013E GETMET R4 R0 K9 + 0x7C100200, // 013F CALL R4 1 + 0x8C100118, // 0140 GETMET R4 R0 K24 + 0x7C100200, // 0141 CALL R4 1 + 0x8C140119, // 0142 GETMET R5 R0 K25 + 0x7C140200, // 0143 CALL R5 1 + 0x8C180106, // 0144 GETMET R6 R0 K6 + 0x60200018, // 0145 GETGBL R8 G24 + 0x58240027, // 0146 LDCONST R9 K39 + 0x5C280800, // 0147 MOVE R10 R4 + 0x5C2C0A00, // 0148 MOVE R11 R5 + 0x7C200600, // 0149 CALL R8 3 + 0x7C180400, // 014A CALL R6 2 + 0x70020000, // 014B JMP #014D + 0x70020000, // 014C JMP #014E + 0x7001FF60, // 014D JMP #00AF + 0x8C0C0106, // 014E GETMET R3 R0 K6 + 0x60140018, // 014F GETGBL R5 G24 + 0x58180028, // 0150 LDCONST R6 K40 + 0x7C140200, // 0151 CALL R5 1 + 0x7C0C0400, // 0152 CALL R3 2 + 0x70020001, // 0153 JMP #0156 + 0x8C080129, // 0154 GETMET R2 R0 K41 + 0x7C080200, // 0155 CALL R2 1 + 0x80000000, // 0156 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_set +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_set, /* 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[10]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(variable), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(process_value), + /* K7 */ be_nested_str_weak(collect_inline_comment), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + }), + be_str_weak(process_set), + &be_const_str_solidified, + ( &(const binstruction[28]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100003, // 000F LDCONST R4 K3 + 0x7C080400, // 0010 CALL R2 2 + 0x8C0C0107, // 0011 GETMET R3 R0 K7 + 0x7C0C0200, // 0012 CALL R3 1 + 0x8C100108, // 0013 GETMET R4 R0 K8 + 0x60180018, // 0014 GETGBL R6 G24 + 0x581C0009, // 0015 LDCONST R7 K9 + 0x5C200200, // 0016 MOVE R8 R1 + 0x5C240400, // 0017 MOVE R9 R2 + 0x5C280600, // 0018 MOVE R10 R3 + 0x7C180800, // 0019 CALL R6 4 + 0x7C100400, // 001A CALL R4 2 + 0x80000000, // 001B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_statement, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[34]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(EOF), + /* K5 */ be_nested_str_weak(COMMENT), + /* K6 */ be_nested_str_weak(add), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(NEWLINE), + /* K10 */ be_nested_str_weak(first_statement), + /* K11 */ be_nested_str_weak(KEYWORD), + /* K12 */ be_nested_str_weak(IDENTIFIER), + /* K13 */ be_nested_str_weak(strip), + /* K14 */ be_nested_str_weak(error), + /* K15 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), + /* K16 */ be_nested_str_weak(skip_statement), + /* K17 */ be_nested_str_weak(strip_initialized), + /* K18 */ be_nested_str_weak(generate_default_strip_initialization), + /* K19 */ be_nested_str_weak(color), + /* K20 */ be_nested_str_weak(process_color), + /* K21 */ be_nested_str_weak(palette), + /* K22 */ be_nested_str_weak(process_palette), + /* K23 */ be_nested_str_weak(animation), + /* K24 */ be_nested_str_weak(process_animation), + /* K25 */ be_nested_str_weak(set), + /* K26 */ be_nested_str_weak(process_set), + /* K27 */ be_nested_str_weak(sequence), + /* K28 */ be_nested_str_weak(process_sequence), + /* K29 */ be_nested_str_weak(run), + /* K30 */ be_nested_str_weak(process_run), + /* K31 */ be_nested_str_weak(on), + /* K32 */ be_nested_str_weak(process_event_handler), + /* K33 */ be_nested_str_weak(process_property_assignment), + }), + be_str_weak(process_statement), + &be_const_str_solidified, + ( &(const binstruction[129]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x740A0005, // 0004 JMPT R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0000, // 000A JMPF R2 #000C + 0x80000400, // 000B RET 0 + 0x88080301, // 000C GETMBR R2 R1 K1 + 0xB80E0400, // 000D GETNGBL R3 K2 + 0x880C0703, // 000E GETMBR R3 R3 K3 + 0x880C0705, // 000F GETMBR R3 R3 K5 + 0x1C080403, // 0010 EQ R2 R2 R3 + 0x780A0005, // 0011 JMPF R2 #0018 + 0x8C080106, // 0012 GETMET R2 R0 K6 + 0x88100307, // 0013 GETMBR R4 R1 K7 + 0x7C080400, // 0014 CALL R2 2 + 0x8C080108, // 0015 GETMET R2 R0 K8 + 0x7C080200, // 0016 CALL R2 1 + 0x80000400, // 0017 RET 0 + 0x88080301, // 0018 GETMBR R2 R1 K1 + 0xB80E0400, // 0019 GETNGBL R3 K2 + 0x880C0703, // 001A GETMBR R3 R3 K3 + 0x880C0709, // 001B GETMBR R3 R3 K9 + 0x1C080403, // 001C EQ R2 R2 R3 + 0x780A0002, // 001D JMPF R2 #0021 + 0x8C080108, // 001E GETMET R2 R0 K8 + 0x7C080200, // 001F CALL R2 1 + 0x80000400, // 0020 RET 0 + 0x8808010A, // 0021 GETMBR R2 R0 K10 + 0x880C0301, // 0022 GETMBR R3 R1 K1 + 0xB8120400, // 0023 GETNGBL R4 K2 + 0x88100903, // 0024 GETMBR R4 R4 K3 + 0x8810090B, // 0025 GETMBR R4 R4 K11 + 0x1C0C0604, // 0026 EQ R3 R3 R4 + 0x740E0005, // 0027 JMPT R3 #002E + 0x880C0301, // 0028 GETMBR R3 R1 K1 + 0xB8120400, // 0029 GETNGBL R4 K2 + 0x88100903, // 002A GETMBR R4 R4 K3 + 0x8810090C, // 002B GETMBR R4 R4 K12 + 0x1C0C0604, // 002C EQ R3 R3 R4 + 0x780E0001, // 002D JMPF R3 #0030 + 0x500C0000, // 002E LDBOOL R3 0 0 + 0x90021403, // 002F SETMBR R0 K10 R3 + 0x880C0301, // 0030 GETMBR R3 R1 K1 + 0xB8120400, // 0031 GETNGBL R4 K2 + 0x88100903, // 0032 GETMBR R4 R4 K3 + 0x8810090B, // 0033 GETMBR R4 R4 K11 + 0x1C0C0604, // 0034 EQ R3 R3 R4 + 0x780E003A, // 0035 JMPF R3 #0071 + 0x880C0307, // 0036 GETMBR R3 R1 K7 + 0x1C0C070D, // 0037 EQ R3 R3 K13 + 0x780E0006, // 0038 JMPF R3 #0040 + 0x8C0C010E, // 0039 GETMET R3 R0 K14 + 0x5814000F, // 003A LDCONST R5 K15 + 0x7C0C0400, // 003B CALL R3 2 + 0x8C0C0110, // 003C GETMET R3 R0 K16 + 0x7C0C0200, // 003D CALL R3 1 + 0x80000600, // 003E RET 0 + 0x7002002F, // 003F JMP #0070 + 0x880C0111, // 0040 GETMBR R3 R0 K17 + 0x740E0001, // 0041 JMPT R3 #0044 + 0x8C0C0112, // 0042 GETMET R3 R0 K18 + 0x7C0C0200, // 0043 CALL R3 1 + 0x880C0307, // 0044 GETMBR R3 R1 K7 + 0x1C0C0713, // 0045 EQ R3 R3 K19 + 0x780E0002, // 0046 JMPF R3 #004A + 0x8C0C0114, // 0047 GETMET R3 R0 K20 + 0x7C0C0200, // 0048 CALL R3 1 + 0x70020025, // 0049 JMP #0070 + 0x880C0307, // 004A GETMBR R3 R1 K7 + 0x1C0C0715, // 004B EQ R3 R3 K21 + 0x780E0002, // 004C JMPF R3 #0050 + 0x8C0C0116, // 004D GETMET R3 R0 K22 + 0x7C0C0200, // 004E CALL R3 1 + 0x7002001F, // 004F JMP #0070 + 0x880C0307, // 0050 GETMBR R3 R1 K7 + 0x1C0C0717, // 0051 EQ R3 R3 K23 + 0x780E0002, // 0052 JMPF R3 #0056 + 0x8C0C0118, // 0053 GETMET R3 R0 K24 + 0x7C0C0200, // 0054 CALL R3 1 + 0x70020019, // 0055 JMP #0070 + 0x880C0307, // 0056 GETMBR R3 R1 K7 + 0x1C0C0719, // 0057 EQ R3 R3 K25 + 0x780E0002, // 0058 JMPF R3 #005C + 0x8C0C011A, // 0059 GETMET R3 R0 K26 + 0x7C0C0200, // 005A CALL R3 1 + 0x70020013, // 005B JMP #0070 + 0x880C0307, // 005C GETMBR R3 R1 K7 + 0x1C0C071B, // 005D EQ R3 R3 K27 + 0x780E0002, // 005E JMPF R3 #0062 + 0x8C0C011C, // 005F GETMET R3 R0 K28 + 0x7C0C0200, // 0060 CALL R3 1 + 0x7002000D, // 0061 JMP #0070 + 0x880C0307, // 0062 GETMBR R3 R1 K7 + 0x1C0C071D, // 0063 EQ R3 R3 K29 + 0x780E0002, // 0064 JMPF R3 #0068 + 0x8C0C011E, // 0065 GETMET R3 R0 K30 + 0x7C0C0200, // 0066 CALL R3 1 + 0x70020007, // 0067 JMP #0070 + 0x880C0307, // 0068 GETMBR R3 R1 K7 + 0x1C0C071F, // 0069 EQ R3 R3 K31 + 0x780E0002, // 006A JMPF R3 #006E + 0x8C0C0120, // 006B GETMET R3 R0 K32 + 0x7C0C0200, // 006C CALL R3 1 + 0x70020001, // 006D JMP #0070 + 0x8C0C0110, // 006E GETMET R3 R0 K16 + 0x7C0C0200, // 006F CALL R3 1 + 0x7002000E, // 0070 JMP #0080 + 0x880C0301, // 0071 GETMBR R3 R1 K1 + 0xB8120400, // 0072 GETNGBL R4 K2 + 0x88100903, // 0073 GETMBR R4 R4 K3 + 0x8810090C, // 0074 GETMBR R4 R4 K12 + 0x1C0C0604, // 0075 EQ R3 R3 R4 + 0x780E0006, // 0076 JMPF R3 #007E + 0x880C0111, // 0077 GETMBR R3 R0 K17 + 0x740E0001, // 0078 JMPT R3 #007B + 0x8C0C0112, // 0079 GETMET R3 R0 K18 + 0x7C0C0200, // 007A CALL R3 1 + 0x8C0C0121, // 007B GETMET R3 R0 K33 + 0x7C0C0200, // 007C CALL R3 1 + 0x70020001, // 007D JMP #0080 + 0x8C0C0110, // 007E GETMET R3 R0 K16 + 0x7C0C0200, // 007F CALL R3 1 + 0x80000000, // 0080 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ + be_nested_proto( + 15, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[37]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(animation), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(current), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(KEYWORD), + /* K11 */ be_nested_str_weak(IDENTIFIER), + /* K12 */ be_nested_str_weak(peek), + /* K13 */ be_nested_str_weak(LEFT_PAREN), + /* K14 */ be_nested_str_weak(value), + /* K15 */ be_nested_str_weak(), + /* K16 */ be_nested_str_weak(COMMENT), + /* K17 */ be_nested_str_weak(_X20_X20), + /* K18 */ be_nested_str_weak(is_user_function), + /* K19 */ be_nested_str_weak(process_function_arguments), + /* K20 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K21 */ be_nested_str_weak(engine), + /* K22 */ be_nested_str_weak(add), + /* K23 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), + /* K24 */ be_nested_str_weak(_validate_animation_factory_creates_animation), + /* K25 */ be_nested_str_weak(error), + /* K26 */ 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), + /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), + /* K28 */ be_nested_str_weak(_create_instance_for_validation), + /* K29 */ be_nested_str_weak(symbol_table), + /* K30 */ be_nested_str_weak(_process_named_arguments_for_animation), + /* K31 */ be_nested_str_weak(_X25s_), + /* K32 */ be_nested_str_weak(process_value), + /* K33 */ be_nested_str_weak(collect_inline_comment), + /* K34 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + /* K35 */ be_nested_str_weak(contains), + /* K36 */ be_nested_str_weak(string), + }), + be_str_weak(process_animation), + &be_const_str_solidified, + ( &(const binstruction[189]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x7C080200, // 000F CALL R2 1 + 0x880C0507, // 0010 GETMBR R3 R2 K7 + 0xB8121000, // 0011 GETNGBL R4 K8 + 0x88100909, // 0012 GETMBR R4 R4 K9 + 0x8810090A, // 0013 GETMBR R4 R4 K10 + 0x1C0C0604, // 0014 EQ R3 R3 R4 + 0x740E0005, // 0015 JMPT R3 #001C + 0x880C0507, // 0016 GETMBR R3 R2 K7 + 0xB8121000, // 0017 GETNGBL R4 K8 + 0x88100909, // 0018 GETMBR R4 R4 K9 + 0x8810090B, // 0019 GETMBR R4 R4 K11 + 0x1C0C0604, // 001A EQ R3 R3 R4 + 0x780E0062, // 001B JMPF R3 #007F + 0x8C0C010C, // 001C GETMET R3 R0 K12 + 0x7C0C0200, // 001D CALL R3 1 + 0x4C100000, // 001E LDNIL R4 + 0x200C0604, // 001F NE R3 R3 R4 + 0x780E005D, // 0020 JMPF R3 #007F + 0x8C0C010C, // 0021 GETMET R3 R0 K12 + 0x7C0C0200, // 0022 CALL R3 1 + 0x880C0707, // 0023 GETMBR R3 R3 K7 + 0xB8121000, // 0024 GETNGBL R4 K8 + 0x88100909, // 0025 GETMBR R4 R4 K9 + 0x8810090D, // 0026 GETMBR R4 R4 K13 + 0x1C0C0604, // 0027 EQ R3 R3 R4 + 0x780E0055, // 0028 JMPF R3 #007F + 0x880C050E, // 0029 GETMBR R3 R2 K14 + 0x8C100100, // 002A GETMET R4 R0 K0 + 0x7C100200, // 002B CALL R4 1 + 0x5810000F, // 002C LDCONST R4 K15 + 0x8C140106, // 002D GETMET R5 R0 K6 + 0x7C140200, // 002E CALL R5 1 + 0x4C180000, // 002F LDNIL R6 + 0x20140A06, // 0030 NE R5 R5 R6 + 0x7816000E, // 0031 JMPF R5 #0041 + 0x8C140106, // 0032 GETMET R5 R0 K6 + 0x7C140200, // 0033 CALL R5 1 + 0x88140B07, // 0034 GETMBR R5 R5 K7 + 0xB81A1000, // 0035 GETNGBL R6 K8 + 0x88180D09, // 0036 GETMBR R6 R6 K9 + 0x88180D10, // 0037 GETMBR R6 R6 K16 + 0x1C140A06, // 0038 EQ R5 R5 R6 + 0x78160006, // 0039 JMPF R5 #0041 + 0x8C140106, // 003A GETMET R5 R0 K6 + 0x7C140200, // 003B CALL R5 1 + 0x88140B0E, // 003C GETMBR R5 R5 K14 + 0x00162205, // 003D ADD R5 K17 R5 + 0x5C100A00, // 003E MOVE R4 R5 + 0x8C140100, // 003F GETMET R5 R0 K0 + 0x7C140200, // 0040 CALL R5 1 + 0xB8160600, // 0041 GETNGBL R5 K3 + 0x8C140B12, // 0042 GETMET R5 R5 K18 + 0x5C1C0600, // 0043 MOVE R7 R3 + 0x7C140400, // 0044 CALL R5 2 + 0x78160013, // 0045 JMPF R5 #005A + 0x8C140113, // 0046 GETMET R5 R0 K19 + 0x7C140200, // 0047 CALL R5 1 + 0x20180B0F, // 0048 NE R6 R5 K15 + 0x781A0004, // 0049 JMPF R6 #004F + 0x60180018, // 004A GETGBL R6 G24 + 0x581C0014, // 004B LDCONST R7 K20 + 0x5C200A00, // 004C MOVE R8 R5 + 0x7C180400, // 004D CALL R6 2 + 0x70020000, // 004E JMP #0050 + 0x58180015, // 004F LDCONST R6 K21 + 0x8C1C0116, // 0050 GETMET R7 R0 K22 + 0x60240018, // 0051 GETGBL R9 G24 + 0x58280017, // 0052 LDCONST R10 K23 + 0x5C2C0200, // 0053 MOVE R11 R1 + 0x5C300600, // 0054 MOVE R12 R3 + 0x5C340C00, // 0055 MOVE R13 R6 + 0x5C380800, // 0056 MOVE R14 R4 + 0x7C240A00, // 0057 CALL R9 5 + 0x7C1C0400, // 0058 CALL R7 2 + 0x70020023, // 0059 JMP #007E + 0x8C140118, // 005A GETMET R5 R0 K24 + 0x5C1C0600, // 005B MOVE R7 R3 + 0x7C140400, // 005C CALL R5 2 + 0x74160008, // 005D JMPT R5 #0067 + 0x8C140119, // 005E GETMET R5 R0 K25 + 0x601C0018, // 005F GETGBL R7 G24 + 0x5820001A, // 0060 LDCONST R8 K26 + 0x5C240600, // 0061 MOVE R9 R3 + 0x7C1C0400, // 0062 CALL R7 2 + 0x7C140400, // 0063 CALL R5 2 + 0x8C140104, // 0064 GETMET R5 R0 K4 + 0x7C140200, // 0065 CALL R5 1 + 0x80000A00, // 0066 RET 0 + 0x8C140116, // 0067 GETMET R5 R0 K22 + 0x601C0018, // 0068 GETGBL R7 G24 + 0x5820001B, // 0069 LDCONST R8 K27 + 0x5C240200, // 006A MOVE R9 R1 + 0x5C280600, // 006B MOVE R10 R3 + 0x5C2C0800, // 006C MOVE R11 R4 + 0x7C1C0800, // 006D CALL R7 4 + 0x7C140400, // 006E CALL R5 2 + 0x8C14011C, // 006F GETMET R5 R0 K28 + 0x5C1C0600, // 0070 MOVE R7 R3 + 0x7C140400, // 0071 CALL R5 2 + 0x4C180000, // 0072 LDNIL R6 + 0x20180A06, // 0073 NE R6 R5 R6 + 0x781A0001, // 0074 JMPF R6 #0077 + 0x8818011D, // 0075 GETMBR R6 R0 K29 + 0x98180205, // 0076 SETIDX R6 R1 R5 + 0x8C18011E, // 0077 GETMET R6 R0 K30 + 0x60200018, // 0078 GETGBL R8 G24 + 0x5824001F, // 0079 LDCONST R9 K31 + 0x5C280200, // 007A MOVE R10 R1 + 0x7C200400, // 007B CALL R8 2 + 0x5C240600, // 007C MOVE R9 R3 + 0x7C180600, // 007D CALL R6 3 + 0x7002003C, // 007E JMP #00BC + 0x8C0C0106, // 007F GETMET R3 R0 K6 + 0x7C0C0200, // 0080 CALL R3 1 + 0x4C100000, // 0081 LDNIL R4 + 0x20100604, // 0082 NE R4 R3 R4 + 0x78120012, // 0083 JMPF R4 #0097 + 0x88100707, // 0084 GETMBR R4 R3 K7 + 0xB8161000, // 0085 GETNGBL R5 K8 + 0x88140B09, // 0086 GETMBR R5 R5 K9 + 0x88140B0B, // 0087 GETMBR R5 R5 K11 + 0x1C100805, // 0088 EQ R4 R4 R5 + 0x7812000C, // 0089 JMPF R4 #0097 + 0x8C10010C, // 008A GETMET R4 R0 K12 + 0x7C100200, // 008B CALL R4 1 + 0x4C140000, // 008C LDNIL R5 + 0x1C100805, // 008D EQ R4 R4 R5 + 0x74120008, // 008E JMPT R4 #0098 + 0x8C10010C, // 008F GETMET R4 R0 K12 + 0x7C100200, // 0090 CALL R4 1 + 0x88100907, // 0091 GETMBR R4 R4 K7 + 0xB8161000, // 0092 GETNGBL R5 K8 + 0x88140B09, // 0093 GETMBR R5 R5 K9 + 0x88140B0D, // 0094 GETMBR R5 R5 K13 + 0x20100805, // 0095 NE R4 R4 R5 + 0x74120000, // 0096 JMPT R4 #0098 + 0x50100001, // 0097 LDBOOL R4 0 1 + 0x50100200, // 0098 LDBOOL R4 1 0 + 0x78120001, // 0099 JMPF R4 #009C + 0x8814070E, // 009A GETMBR R5 R3 K14 + 0x70020000, // 009B JMP #009D + 0x4C140000, // 009C LDNIL R5 + 0x8C180120, // 009D GETMET R6 R0 K32 + 0x58200003, // 009E LDCONST R8 K3 + 0x7C180400, // 009F CALL R6 2 + 0x8C1C0121, // 00A0 GETMET R7 R0 K33 + 0x7C1C0200, // 00A1 CALL R7 1 + 0x8C200116, // 00A2 GETMET R8 R0 K22 + 0x60280018, // 00A3 GETGBL R10 G24 + 0x582C0022, // 00A4 LDCONST R11 K34 + 0x5C300200, // 00A5 MOVE R12 R1 + 0x5C340C00, // 00A6 MOVE R13 R6 + 0x5C380E00, // 00A7 MOVE R14 R7 + 0x7C280800, // 00A8 CALL R10 4 + 0x7C200400, // 00A9 CALL R8 2 + 0x78120010, // 00AA JMPF R4 #00BC + 0x4C200000, // 00AB LDNIL R8 + 0x20200A08, // 00AC NE R8 R5 R8 + 0x7822000D, // 00AD JMPF R8 #00BC + 0x8820011D, // 00AE GETMBR R8 R0 K29 + 0x8C201123, // 00AF GETMET R8 R8 K35 + 0x5C280A00, // 00B0 MOVE R10 R5 + 0x7C200400, // 00B1 CALL R8 2 + 0x78220008, // 00B2 JMPF R8 #00BC + 0x8820011D, // 00B3 GETMBR R8 R0 K29 + 0x94201005, // 00B4 GETIDX R8 R8 R5 + 0x60240004, // 00B5 GETGBL R9 G4 + 0x5C281000, // 00B6 MOVE R10 R8 + 0x7C240200, // 00B7 CALL R9 1 + 0x20241324, // 00B8 NE R9 R9 K36 + 0x78260001, // 00B9 JMPF R9 #00BC + 0x8824011D, // 00BA GETMBR R9 R0 K29 + 0x98240208, // 00BB SETIDX R9 R1 R8 + 0x80000000, // 00BC RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_animation_factory_exists +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(is_math_method), + /* K1 */ be_nested_str_weak(_validate_factory_function), + }), + be_str_weak(_validate_animation_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x780A0001, // 0003 JMPF R2 #0006 + 0x50080200, // 0004 LDBOOL R2 1 0 + 0x80040400, // 0005 RET 1 R2 + 0x8C080101, // 0006 GETMET R2 R0 K1 + 0x5C100200, // 0007 MOVE R4 R1 + 0x4C140000, // 0008 LDNIL R5 + 0x7C080600, // 0009 CALL R2 3 + 0x80040400, // 000A RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_primary_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name */ + be_nested_proto( + 13, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[53]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(LEFT_PAREN), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_additive_expression), + /* K10 */ be_nested_str_weak(expect_right_paren), + /* K11 */ be_nested_str_weak(_X28_X25s_X29), + /* K12 */ be_nested_str_weak(KEYWORD), + /* K13 */ be_nested_str_weak(IDENTIFIER), + /* K14 */ be_nested_str_weak(peek), + /* K15 */ be_nested_str_weak(value), + /* K16 */ be_nested_str_weak(_is_simple_function_call), + /* K17 */ be_nested_str_weak(process_function_call), + /* K18 */ be_nested_str_weak(argument), + /* K19 */ be_nested_str_weak(property), + /* K20 */ be_nested_str_weak(variable), + /* K21 */ be_nested_str_weak(process_nested_function_call), + /* K22 */ be_nested_str_weak(COLOR), + /* K23 */ be_nested_str_weak(convert_color), + /* K24 */ be_nested_str_weak(TIME), + /* K25 */ be_nested_str_weak(process_time_value), + /* K26 */ be_nested_str_weak(PERCENTAGE), + /* K27 */ be_nested_str_weak(process_percentage_value), + /* K28 */ be_nested_str_weak(NUMBER), + /* K29 */ be_nested_str_weak(STRING), + /* K30 */ be_nested_str_weak(_X22_X25s_X22), + /* K31 */ be_nested_str_weak(LEFT_BRACKET), + /* K32 */ be_nested_str_weak(process_array_literal), + /* K33 */ be_nested_str_weak(DOT), + /* K34 */ be_nested_str_weak(expect_identifier), + /* K35 */ be_nested_str_weak(symbol_table), + /* K36 */ be_nested_str_weak(contains), + /* K37 */ be_nested_str_weak(string), + /* K38 */ be_nested_str_weak(_validate_single_parameter), + /* K39 */ 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), + /* K40 */ be_nested_str_weak(introspect), + /* K41 */ be_nested_str_weak(), + /* K42 */ be_nested_str_weak(animation), + /* K43 */ be_nested_str_weak(animation_X2E_X25s), + /* K44 */ be_nested_str_weak(_X25s_), + /* K45 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20_X27_X25s_X27_X29), + /* K46 */ be_nested_str_weak(startswith), + /* K47 */ be_nested_str_weak(PALETTE_), + /* K48 */ be_nested_str_weak(is_color_name), + /* K49 */ be_nested_str_weak(get_named_color_value), + /* K50 */ be_nested_str_weak(true), + /* K51 */ be_nested_str_weak(false), + /* K52 */ be_nested_str_weak(Unexpected_X20value_X3A_X20_X25s), + }), + be_str_weak(process_primary_expression), + &be_const_str_solidified, + ( &(const binstruction[298]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x4C100000, // 0002 LDNIL R4 + 0x1C100604, // 0003 EQ R4 R3 R4 + 0x78120003, // 0004 JMPF R4 #0009 + 0x8C100101, // 0005 GETMET R4 R0 K1 + 0x58180002, // 0006 LDCONST R6 K2 + 0x7C100400, // 0007 CALL R4 2 + 0x80060600, // 0008 RET 1 K3 + 0x88100704, // 0009 GETMBR R4 R3 K4 + 0xB8160A00, // 000A GETNGBL R5 K5 + 0x88140B06, // 000B GETMBR R5 R5 K6 + 0x88140B07, // 000C GETMBR R5 R5 K7 + 0x1C100805, // 000D EQ R4 R4 R5 + 0x7812000C, // 000E JMPF R4 #001C + 0x8C100108, // 000F GETMET R4 R0 K8 + 0x7C100200, // 0010 CALL R4 1 + 0x8C100109, // 0011 GETMET R4 R0 K9 + 0x5C180200, // 0012 MOVE R6 R1 + 0x501C0000, // 0013 LDBOOL R7 0 0 + 0x7C100600, // 0014 CALL R4 3 + 0x8C14010A, // 0015 GETMET R5 R0 K10 + 0x7C140200, // 0016 CALL R5 1 + 0x60140018, // 0017 GETGBL R5 G24 + 0x5818000B, // 0018 LDCONST R6 K11 + 0x5C1C0800, // 0019 MOVE R7 R4 + 0x7C140400, // 001A CALL R5 2 + 0x80040A00, // 001B RET 1 R5 + 0x88100704, // 001C GETMBR R4 R3 K4 + 0xB8160A00, // 001D GETNGBL R5 K5 + 0x88140B06, // 001E GETMBR R5 R5 K6 + 0x88140B0C, // 001F GETMBR R5 R5 K12 + 0x1C100805, // 0020 EQ R4 R4 R5 + 0x74120005, // 0021 JMPT R4 #0028 + 0x88100704, // 0022 GETMBR R4 R3 K4 + 0xB8160A00, // 0023 GETNGBL R5 K5 + 0x88140B06, // 0024 GETMBR R5 R5 K6 + 0x88140B0D, // 0025 GETMBR R5 R5 K13 + 0x1C100805, // 0026 EQ R4 R4 R5 + 0x78120024, // 0027 JMPF R4 #004D + 0x8C10010E, // 0028 GETMET R4 R0 K14 + 0x7C100200, // 0029 CALL R4 1 + 0x4C140000, // 002A LDNIL R5 + 0x20100805, // 002B NE R4 R4 R5 + 0x7812001F, // 002C JMPF R4 #004D + 0x8C10010E, // 002D GETMET R4 R0 K14 + 0x7C100200, // 002E CALL R4 1 + 0x88100904, // 002F GETMBR R4 R4 K4 + 0xB8160A00, // 0030 GETNGBL R5 K5 + 0x88140B06, // 0031 GETMBR R5 R5 K6 + 0x88140B07, // 0032 GETMBR R5 R5 K7 + 0x1C100805, // 0033 EQ R4 R4 R5 + 0x78120017, // 0034 JMPF R4 #004D + 0x8810070F, // 0035 GETMBR R4 R3 K15 + 0x8C140110, // 0036 GETMET R5 R0 K16 + 0x5C1C0800, // 0037 MOVE R7 R4 + 0x7C140400, // 0038 CALL R5 2 + 0x78160004, // 0039 JMPF R5 #003F + 0x8C140111, // 003A GETMET R5 R0 K17 + 0x5C1C0200, // 003B MOVE R7 R1 + 0x7C140400, // 003C CALL R5 2 + 0x80040A00, // 003D RET 1 R5 + 0x7002000D, // 003E JMP #004D + 0x1C140312, // 003F EQ R5 R1 K18 + 0x74160003, // 0040 JMPT R5 #0045 + 0x1C140313, // 0041 EQ R5 R1 K19 + 0x74160001, // 0042 JMPT R5 #0045 + 0x1C140314, // 0043 EQ R5 R1 K20 + 0x78160003, // 0044 JMPF R5 #0049 + 0x8C140115, // 0045 GETMET R5 R0 K21 + 0x7C140200, // 0046 CALL R5 1 + 0x80040A00, // 0047 RET 1 R5 + 0x70020003, // 0048 JMP #004D + 0x8C140111, // 0049 GETMET R5 R0 K17 + 0x5C1C0200, // 004A MOVE R7 R1 + 0x7C140400, // 004B CALL R5 2 + 0x80040A00, // 004C RET 1 R5 + 0x88100704, // 004D GETMBR R4 R3 K4 + 0xB8160A00, // 004E GETNGBL R5 K5 + 0x88140B06, // 004F GETMBR R5 R5 K6 + 0x88140B16, // 0050 GETMBR R5 R5 K22 + 0x1C100805, // 0051 EQ R4 R4 R5 + 0x78120005, // 0052 JMPF R4 #0059 + 0x8C100108, // 0053 GETMET R4 R0 K8 + 0x7C100200, // 0054 CALL R4 1 + 0x8C100117, // 0055 GETMET R4 R0 K23 + 0x8818070F, // 0056 GETMBR R6 R3 K15 + 0x7C100400, // 0057 CALL R4 2 + 0x80040800, // 0058 RET 1 R4 + 0x88100704, // 0059 GETMBR R4 R3 K4 + 0xB8160A00, // 005A GETNGBL R5 K5 + 0x88140B06, // 005B GETMBR R5 R5 K6 + 0x88140B18, // 005C GETMBR R5 R5 K24 + 0x1C100805, // 005D EQ R4 R4 R5 + 0x78120004, // 005E JMPF R4 #0064 + 0x60100008, // 005F GETGBL R4 G8 + 0x8C140119, // 0060 GETMET R5 R0 K25 + 0x7C140200, // 0061 CALL R5 1 + 0x7C100200, // 0062 CALL R4 1 + 0x80040800, // 0063 RET 1 R4 + 0x88100704, // 0064 GETMBR R4 R3 K4 + 0xB8160A00, // 0065 GETNGBL R5 K5 + 0x88140B06, // 0066 GETMBR R5 R5 K6 + 0x88140B1A, // 0067 GETMBR R5 R5 K26 + 0x1C100805, // 0068 EQ R4 R4 R5 + 0x78120004, // 0069 JMPF R4 #006F + 0x60100008, // 006A GETGBL R4 G8 + 0x8C14011B, // 006B GETMET R5 R0 K27 + 0x7C140200, // 006C CALL R5 1 + 0x7C100200, // 006D CALL R4 1 + 0x80040800, // 006E RET 1 R4 + 0x88100704, // 006F GETMBR R4 R3 K4 + 0xB8160A00, // 0070 GETNGBL R5 K5 + 0x88140B06, // 0071 GETMBR R5 R5 K6 + 0x88140B1C, // 0072 GETMBR R5 R5 K28 + 0x1C100805, // 0073 EQ R4 R4 R5 + 0x78120003, // 0074 JMPF R4 #0079 + 0x8810070F, // 0075 GETMBR R4 R3 K15 + 0x8C140108, // 0076 GETMET R5 R0 K8 + 0x7C140200, // 0077 CALL R5 1 + 0x80040800, // 0078 RET 1 R4 + 0x88100704, // 0079 GETMBR R4 R3 K4 + 0xB8160A00, // 007A GETNGBL R5 K5 + 0x88140B06, // 007B GETMBR R5 R5 K6 + 0x88140B1D, // 007C GETMBR R5 R5 K29 + 0x1C100805, // 007D EQ R4 R4 R5 + 0x78120007, // 007E JMPF R4 #0087 + 0x8810070F, // 007F GETMBR R4 R3 K15 + 0x8C140108, // 0080 GETMET R5 R0 K8 + 0x7C140200, // 0081 CALL R5 1 + 0x60140018, // 0082 GETGBL R5 G24 + 0x5818001E, // 0083 LDCONST R6 K30 + 0x5C1C0800, // 0084 MOVE R7 R4 + 0x7C140400, // 0085 CALL R5 2 + 0x80040A00, // 0086 RET 1 R5 + 0x88100704, // 0087 GETMBR R4 R3 K4 + 0xB8160A00, // 0088 GETNGBL R5 K5 + 0x88140B06, // 0089 GETMBR R5 R5 K6 + 0x88140B1F, // 008A GETMBR R5 R5 K31 + 0x1C100805, // 008B EQ R4 R4 R5 + 0x78120002, // 008C JMPF R4 #0090 + 0x8C100120, // 008D GETMET R4 R0 K32 + 0x7C100200, // 008E CALL R4 1 + 0x80040800, // 008F RET 1 R4 + 0x88100704, // 0090 GETMBR R4 R3 K4 + 0xB8160A00, // 0091 GETNGBL R5 K5 + 0x88140B06, // 0092 GETMBR R5 R5 K6 + 0x88140B0D, // 0093 GETMBR R5 R5 K13 + 0x1C100805, // 0094 EQ R4 R4 R5 + 0x7812006C, // 0095 JMPF R4 #0103 + 0x8810070F, // 0096 GETMBR R4 R3 K15 + 0x8C140108, // 0097 GETMET R5 R0 K8 + 0x7C140200, // 0098 CALL R5 1 + 0x8C140100, // 0099 GETMET R5 R0 K0 + 0x7C140200, // 009A CALL R5 1 + 0x4C180000, // 009B LDNIL R6 + 0x20140A06, // 009C NE R5 R5 R6 + 0x7816003F, // 009D JMPF R5 #00DE + 0x8C140100, // 009E GETMET R5 R0 K0 + 0x7C140200, // 009F CALL R5 1 + 0x88140B04, // 00A0 GETMBR R5 R5 K4 + 0xB81A0A00, // 00A1 GETNGBL R6 K5 + 0x88180D06, // 00A2 GETMBR R6 R6 K6 + 0x88180D21, // 00A3 GETMBR R6 R6 K33 + 0x1C140A06, // 00A4 EQ R5 R5 R6 + 0x78160037, // 00A5 JMPF R5 #00DE + 0x8C140108, // 00A6 GETMET R5 R0 K8 + 0x7C140200, // 00A7 CALL R5 1 + 0x8C140122, // 00A8 GETMET R5 R0 K34 + 0x7C140200, // 00A9 CALL R5 1 + 0x88180123, // 00AA GETMBR R6 R0 K35 + 0x8C180D24, // 00AB GETMET R6 R6 K36 + 0x5C200800, // 00AC MOVE R8 R4 + 0x7C180400, // 00AD CALL R6 2 + 0x781A0016, // 00AE JMPF R6 #00C6 + 0x88180123, // 00AF GETMBR R6 R0 K35 + 0x94180C04, // 00B0 GETIDX R6 R6 R4 + 0x601C0004, // 00B1 GETGBL R7 G4 + 0x5C200C00, // 00B2 MOVE R8 R6 + 0x7C1C0200, // 00B3 CALL R7 1 + 0x201C0F25, // 00B4 NE R7 R7 K37 + 0x781E0008, // 00B5 JMPF R7 #00BF + 0x601C0005, // 00B6 GETGBL R7 G5 + 0x5C200C00, // 00B7 MOVE R8 R6 + 0x7C1C0200, // 00B8 CALL R7 1 + 0x8C200126, // 00B9 GETMET R8 R0 K38 + 0x5C280E00, // 00BA MOVE R10 R7 + 0x5C2C0A00, // 00BB MOVE R11 R5 + 0x5C300C00, // 00BC MOVE R12 R6 + 0x7C200800, // 00BD CALL R8 4 + 0x70020006, // 00BE JMP #00C6 + 0x8C1C0101, // 00BF GETMET R7 R0 K1 + 0x60240018, // 00C0 GETGBL R9 G24 + 0x58280027, // 00C1 LDCONST R10 K39 + 0x5C2C0800, // 00C2 MOVE R11 R4 + 0x7C240400, // 00C3 CALL R9 2 + 0x7C1C0400, // 00C4 CALL R7 2 + 0x80060600, // 00C5 RET 1 K3 + 0xA41A5000, // 00C6 IMPORT R6 K40 + 0x581C0029, // 00C7 LDCONST R7 K41 + 0x8C200D24, // 00C8 GETMET R8 R6 K36 + 0xB82A5400, // 00C9 GETNGBL R10 K42 + 0x5C2C0800, // 00CA MOVE R11 R4 + 0x7C200600, // 00CB CALL R8 3 + 0x78220005, // 00CC JMPF R8 #00D3 + 0x60200018, // 00CD GETGBL R8 G24 + 0x5824002B, // 00CE LDCONST R9 K43 + 0x5C280800, // 00CF MOVE R10 R4 + 0x7C200400, // 00D0 CALL R8 2 + 0x5C1C1000, // 00D1 MOVE R7 R8 + 0x70020004, // 00D2 JMP #00D8 + 0x60200018, // 00D3 GETGBL R8 G24 + 0x5824002C, // 00D4 LDCONST R9 K44 + 0x5C280800, // 00D5 MOVE R10 R4 + 0x7C200400, // 00D6 CALL R8 2 + 0x5C1C1000, // 00D7 MOVE R7 R8 + 0x60200018, // 00D8 GETGBL R8 G24 + 0x5824002D, // 00D9 LDCONST R9 K45 + 0x5C280E00, // 00DA MOVE R10 R7 + 0x5C2C0A00, // 00DB MOVE R11 R5 + 0x7C200600, // 00DC CALL R8 3 + 0x80041000, // 00DD RET 1 R8 + 0xA4164A00, // 00DE IMPORT R5 K37 + 0x8C180B2E, // 00DF GETMET R6 R5 K46 + 0x5C200800, // 00E0 MOVE R8 R4 + 0x5824002F, // 00E1 LDCONST R9 K47 + 0x7C180600, // 00E2 CALL R6 3 + 0x781A0004, // 00E3 JMPF R6 #00E9 + 0x60180018, // 00E4 GETGBL R6 G24 + 0x581C002B, // 00E5 LDCONST R7 K43 + 0x5C200800, // 00E6 MOVE R8 R4 + 0x7C180400, // 00E7 CALL R6 2 + 0x80040C00, // 00E8 RET 1 R6 + 0xB81A0A00, // 00E9 GETNGBL R6 K5 + 0x8C180D30, // 00EA GETMET R6 R6 K48 + 0x5C200800, // 00EB MOVE R8 R4 + 0x7C180400, // 00EC CALL R6 2 + 0x781A0003, // 00ED JMPF R6 #00F2 + 0x8C180131, // 00EE GETMET R6 R0 K49 + 0x5C200800, // 00EF MOVE R8 R4 + 0x7C180400, // 00F0 CALL R6 2 + 0x80040C00, // 00F1 RET 1 R6 + 0xA41A5000, // 00F2 IMPORT R6 K40 + 0x8C1C0D24, // 00F3 GETMET R7 R6 K36 + 0xB8265400, // 00F4 GETNGBL R9 K42 + 0x5C280800, // 00F5 MOVE R10 R4 + 0x7C1C0600, // 00F6 CALL R7 3 + 0x781E0005, // 00F7 JMPF R7 #00FE + 0x601C0018, // 00F8 GETGBL R7 G24 + 0x5820002B, // 00F9 LDCONST R8 K43 + 0x5C240800, // 00FA MOVE R9 R4 + 0x7C1C0400, // 00FB CALL R7 2 + 0x80040E00, // 00FC RET 1 R7 + 0x70020004, // 00FD JMP #0103 + 0x601C0018, // 00FE GETGBL R7 G24 + 0x5820002C, // 00FF LDCONST R8 K44 + 0x5C240800, // 0100 MOVE R9 R4 + 0x7C1C0400, // 0101 CALL R7 2 + 0x80040E00, // 0102 RET 1 R7 + 0x88100704, // 0103 GETMBR R4 R3 K4 + 0xB8160A00, // 0104 GETNGBL R5 K5 + 0x88140B06, // 0105 GETMBR R5 R5 K6 + 0x88140B0C, // 0106 GETMBR R5 R5 K12 + 0x1C100805, // 0107 EQ R4 R4 R5 + 0x78120009, // 0108 JMPF R4 #0113 + 0x8810070F, // 0109 GETMBR R4 R3 K15 + 0x1C100932, // 010A EQ R4 R4 K50 + 0x74120002, // 010B JMPT R4 #010F + 0x8810070F, // 010C GETMBR R4 R3 K15 + 0x1C100933, // 010D EQ R4 R4 K51 + 0x78120003, // 010E JMPF R4 #0113 + 0x8810070F, // 010F GETMBR R4 R3 K15 + 0x8C140108, // 0110 GETMET R5 R0 K8 + 0x7C140200, // 0111 CALL R5 1 + 0x80040800, // 0112 RET 1 R4 + 0x88100704, // 0113 GETMBR R4 R3 K4 + 0xB8160A00, // 0114 GETNGBL R5 K5 + 0x88140B06, // 0115 GETMBR R5 R5 K6 + 0x88140B0C, // 0116 GETMBR R5 R5 K12 + 0x1C100805, // 0117 EQ R4 R4 R5 + 0x78120007, // 0118 JMPF R4 #0121 + 0x8810070F, // 0119 GETMBR R4 R3 K15 + 0x8C140108, // 011A GETMET R5 R0 K8 + 0x7C140200, // 011B CALL R5 1 + 0x60140018, // 011C GETGBL R5 G24 + 0x5818002B, // 011D LDCONST R6 K43 + 0x5C1C0800, // 011E MOVE R7 R4 + 0x7C140400, // 011F CALL R5 2 + 0x80040A00, // 0120 RET 1 R5 + 0x8C100101, // 0121 GETMET R4 R0 K1 + 0x60180018, // 0122 GETGBL R6 G24 + 0x581C0034, // 0123 LDCONST R7 K52 + 0x8820070F, // 0124 GETMBR R8 R3 K15 + 0x7C180400, // 0125 CALL R6 2 + 0x7C100400, // 0126 CALL R4 2 + 0x8C100108, // 0127 GETMET R4 R0 K8 + 0x7C100200, // 0128 CALL R4 1 + 0x80060600, // 0129 RET 1 K3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_color +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ + be_nested_proto( + 15, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[38]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(color), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(current), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(KEYWORD), + /* K11 */ be_nested_str_weak(IDENTIFIER), + /* K12 */ be_nested_str_weak(peek), + /* K13 */ be_nested_str_weak(LEFT_PAREN), + /* K14 */ be_nested_str_weak(value), + /* K15 */ be_nested_str_weak(), + /* K16 */ be_nested_str_weak(COMMENT), + /* K17 */ be_nested_str_weak(_X20_X20), + /* K18 */ be_nested_str_weak(animation), + /* K19 */ be_nested_str_weak(is_user_function), + /* K20 */ be_nested_str_weak(process_function_arguments), + /* K21 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K22 */ be_nested_str_weak(engine), + /* K23 */ be_nested_str_weak(add), + /* K24 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29_X25s), + /* K25 */ be_nested_str_weak(_validate_color_provider_factory_exists), + /* K26 */ be_nested_str_weak(error), + /* K27 */ be_nested_str_weak(Color_X20provider_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), + /* K28 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2E_X25s_X28engine_X29_X25s), + /* K29 */ be_nested_str_weak(_create_instance_for_validation), + /* K30 */ be_nested_str_weak(symbol_table), + /* K31 */ be_nested_str_weak(_process_named_arguments_for_color_provider), + /* K32 */ be_nested_str_weak(_X25s_), + /* K33 */ be_nested_str_weak(process_value), + /* K34 */ be_nested_str_weak(collect_inline_comment), + /* K35 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + /* K36 */ be_nested_str_weak(contains), + /* K37 */ be_nested_str_weak(string), + }), + be_str_weak(process_color), + &be_const_str_solidified, + ( &(const binstruction[189]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x7C080200, // 000F CALL R2 1 + 0x880C0507, // 0010 GETMBR R3 R2 K7 + 0xB8121000, // 0011 GETNGBL R4 K8 + 0x88100909, // 0012 GETMBR R4 R4 K9 + 0x8810090A, // 0013 GETMBR R4 R4 K10 + 0x1C0C0604, // 0014 EQ R3 R3 R4 + 0x740E0005, // 0015 JMPT R3 #001C + 0x880C0507, // 0016 GETMBR R3 R2 K7 + 0xB8121000, // 0017 GETNGBL R4 K8 + 0x88100909, // 0018 GETMBR R4 R4 K9 + 0x8810090B, // 0019 GETMBR R4 R4 K11 + 0x1C0C0604, // 001A EQ R3 R3 R4 + 0x780E0062, // 001B JMPF R3 #007F + 0x8C0C010C, // 001C GETMET R3 R0 K12 + 0x7C0C0200, // 001D CALL R3 1 + 0x4C100000, // 001E LDNIL R4 + 0x200C0604, // 001F NE R3 R3 R4 + 0x780E005D, // 0020 JMPF R3 #007F + 0x8C0C010C, // 0021 GETMET R3 R0 K12 + 0x7C0C0200, // 0022 CALL R3 1 + 0x880C0707, // 0023 GETMBR R3 R3 K7 + 0xB8121000, // 0024 GETNGBL R4 K8 + 0x88100909, // 0025 GETMBR R4 R4 K9 + 0x8810090D, // 0026 GETMBR R4 R4 K13 + 0x1C0C0604, // 0027 EQ R3 R3 R4 + 0x780E0055, // 0028 JMPF R3 #007F + 0x880C050E, // 0029 GETMBR R3 R2 K14 + 0x8C100100, // 002A GETMET R4 R0 K0 + 0x7C100200, // 002B CALL R4 1 + 0x5810000F, // 002C LDCONST R4 K15 + 0x8C140106, // 002D GETMET R5 R0 K6 + 0x7C140200, // 002E CALL R5 1 + 0x4C180000, // 002F LDNIL R6 + 0x20140A06, // 0030 NE R5 R5 R6 + 0x7816000E, // 0031 JMPF R5 #0041 + 0x8C140106, // 0032 GETMET R5 R0 K6 + 0x7C140200, // 0033 CALL R5 1 + 0x88140B07, // 0034 GETMBR R5 R5 K7 + 0xB81A1000, // 0035 GETNGBL R6 K8 + 0x88180D09, // 0036 GETMBR R6 R6 K9 + 0x88180D10, // 0037 GETMBR R6 R6 K16 + 0x1C140A06, // 0038 EQ R5 R5 R6 + 0x78160006, // 0039 JMPF R5 #0041 + 0x8C140106, // 003A GETMET R5 R0 K6 + 0x7C140200, // 003B CALL R5 1 + 0x88140B0E, // 003C GETMBR R5 R5 K14 + 0x00162205, // 003D ADD R5 K17 R5 + 0x5C100A00, // 003E MOVE R4 R5 + 0x8C140100, // 003F GETMET R5 R0 K0 + 0x7C140200, // 0040 CALL R5 1 + 0xB8162400, // 0041 GETNGBL R5 K18 + 0x8C140B13, // 0042 GETMET R5 R5 K19 + 0x5C1C0600, // 0043 MOVE R7 R3 + 0x7C140400, // 0044 CALL R5 2 + 0x78160013, // 0045 JMPF R5 #005A + 0x8C140114, // 0046 GETMET R5 R0 K20 + 0x7C140200, // 0047 CALL R5 1 + 0x20180B0F, // 0048 NE R6 R5 K15 + 0x781A0004, // 0049 JMPF R6 #004F + 0x60180018, // 004A GETGBL R6 G24 + 0x581C0015, // 004B LDCONST R7 K21 + 0x5C200A00, // 004C MOVE R8 R5 + 0x7C180400, // 004D CALL R6 2 + 0x70020000, // 004E JMP #0050 + 0x58180016, // 004F LDCONST R6 K22 + 0x8C1C0117, // 0050 GETMET R7 R0 K23 + 0x60240018, // 0051 GETGBL R9 G24 + 0x58280018, // 0052 LDCONST R10 K24 + 0x5C2C0200, // 0053 MOVE R11 R1 + 0x5C300600, // 0054 MOVE R12 R3 + 0x5C340C00, // 0055 MOVE R13 R6 + 0x5C380800, // 0056 MOVE R14 R4 + 0x7C240A00, // 0057 CALL R9 5 + 0x7C1C0400, // 0058 CALL R7 2 + 0x70020023, // 0059 JMP #007E + 0x8C140119, // 005A GETMET R5 R0 K25 + 0x5C1C0600, // 005B MOVE R7 R3 + 0x7C140400, // 005C CALL R5 2 + 0x74160008, // 005D JMPT R5 #0067 + 0x8C14011A, // 005E GETMET R5 R0 K26 + 0x601C0018, // 005F GETGBL R7 G24 + 0x5820001B, // 0060 LDCONST R8 K27 + 0x5C240600, // 0061 MOVE R9 R3 + 0x7C1C0400, // 0062 CALL R7 2 + 0x7C140400, // 0063 CALL R5 2 + 0x8C140104, // 0064 GETMET R5 R0 K4 + 0x7C140200, // 0065 CALL R5 1 + 0x80000A00, // 0066 RET 0 + 0x8C140117, // 0067 GETMET R5 R0 K23 + 0x601C0018, // 0068 GETGBL R7 G24 + 0x5820001C, // 0069 LDCONST R8 K28 + 0x5C240200, // 006A MOVE R9 R1 + 0x5C280600, // 006B MOVE R10 R3 + 0x5C2C0800, // 006C MOVE R11 R4 + 0x7C1C0800, // 006D CALL R7 4 + 0x7C140400, // 006E CALL R5 2 + 0x8C14011D, // 006F GETMET R5 R0 K29 + 0x5C1C0600, // 0070 MOVE R7 R3 + 0x7C140400, // 0071 CALL R5 2 + 0x4C180000, // 0072 LDNIL R6 + 0x20180A06, // 0073 NE R6 R5 R6 + 0x781A0001, // 0074 JMPF R6 #0077 + 0x8818011E, // 0075 GETMBR R6 R0 K30 + 0x98180205, // 0076 SETIDX R6 R1 R5 + 0x8C18011F, // 0077 GETMET R6 R0 K31 + 0x60200018, // 0078 GETGBL R8 G24 + 0x58240020, // 0079 LDCONST R9 K32 + 0x5C280200, // 007A MOVE R10 R1 + 0x7C200400, // 007B CALL R8 2 + 0x5C240600, // 007C MOVE R9 R3 + 0x7C180600, // 007D CALL R6 3 + 0x7002003C, // 007E JMP #00BC + 0x8C0C0106, // 007F GETMET R3 R0 K6 + 0x7C0C0200, // 0080 CALL R3 1 + 0x4C100000, // 0081 LDNIL R4 + 0x20100604, // 0082 NE R4 R3 R4 + 0x78120012, // 0083 JMPF R4 #0097 + 0x88100707, // 0084 GETMBR R4 R3 K7 + 0xB8161000, // 0085 GETNGBL R5 K8 + 0x88140B09, // 0086 GETMBR R5 R5 K9 + 0x88140B0B, // 0087 GETMBR R5 R5 K11 + 0x1C100805, // 0088 EQ R4 R4 R5 + 0x7812000C, // 0089 JMPF R4 #0097 + 0x8C10010C, // 008A GETMET R4 R0 K12 + 0x7C100200, // 008B CALL R4 1 + 0x4C140000, // 008C LDNIL R5 + 0x1C100805, // 008D EQ R4 R4 R5 + 0x74120008, // 008E JMPT R4 #0098 + 0x8C10010C, // 008F GETMET R4 R0 K12 + 0x7C100200, // 0090 CALL R4 1 + 0x88100907, // 0091 GETMBR R4 R4 K7 + 0xB8161000, // 0092 GETNGBL R5 K8 + 0x88140B09, // 0093 GETMBR R5 R5 K9 + 0x88140B0D, // 0094 GETMBR R5 R5 K13 + 0x20100805, // 0095 NE R4 R4 R5 + 0x74120000, // 0096 JMPT R4 #0098 + 0x50100001, // 0097 LDBOOL R4 0 1 + 0x50100200, // 0098 LDBOOL R4 1 0 + 0x78120001, // 0099 JMPF R4 #009C + 0x8814070E, // 009A GETMBR R5 R3 K14 + 0x70020000, // 009B JMP #009D + 0x4C140000, // 009C LDNIL R5 + 0x8C180121, // 009D GETMET R6 R0 K33 + 0x58200003, // 009E LDCONST R8 K3 + 0x7C180400, // 009F CALL R6 2 + 0x8C1C0122, // 00A0 GETMET R7 R0 K34 + 0x7C1C0200, // 00A1 CALL R7 1 + 0x8C200117, // 00A2 GETMET R8 R0 K23 + 0x60280018, // 00A3 GETGBL R10 G24 + 0x582C0023, // 00A4 LDCONST R11 K35 + 0x5C300200, // 00A5 MOVE R12 R1 + 0x5C340C00, // 00A6 MOVE R13 R6 + 0x5C380E00, // 00A7 MOVE R14 R7 + 0x7C280800, // 00A8 CALL R10 4 + 0x7C200400, // 00A9 CALL R8 2 + 0x78120010, // 00AA JMPF R4 #00BC + 0x4C200000, // 00AB LDNIL R8 + 0x20200A08, // 00AC NE R8 R5 R8 + 0x7822000D, // 00AD JMPF R8 #00BC + 0x8820011E, // 00AE GETMBR R8 R0 K30 + 0x8C201124, // 00AF GETMET R8 R8 K36 + 0x5C280A00, // 00B0 MOVE R10 R5 + 0x7C200400, // 00B1 CALL R8 2 + 0x78220008, // 00B2 JMPF R8 #00BC + 0x8820011E, // 00B3 GETMBR R8 R0 K30 + 0x94201005, // 00B4 GETIDX R8 R8 R5 + 0x60240004, // 00B5 GETGBL R9 G4 + 0x5C281000, // 00B6 MOVE R10 R8 + 0x7C240200, // 00B7 CALL R9 1 + 0x20241325, // 00B8 NE R9 R9 K37 + 0x78260001, // 00B9 JMPF R9 #00BC + 0x8824011E, // 00BA GETMBR R9 R0 K30 + 0x98240208, // 00BB SETIDX R9 R1 R8 + 0x80000000, // 00BC RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_expression, /* 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[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(process_additive_expression), + }), + be_str_weak(process_expression), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x50140200, // 0002 LDBOOL R5 1 0 + 0x7C080600, // 0003 CALL R2 3 + 0x80040400, // 0004 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_factory_function +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_factory_function, /* name */ + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(contains), + /* K2 */ be_nested_str_weak(animation), + /* K3 */ be_nested_str_weak(function), + /* K4 */ be_nested_str_weak(class), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(MockEngine), + }), + be_str_weak(_validate_factory_function), + &be_const_str_solidified, + ( &(const binstruction[59]) { /* code */ + 0xA8020032, // 0000 EXBLK 0 #0034 + 0xA40E0000, // 0001 IMPORT R3 K0 + 0x8C100701, // 0002 GETMET R4 R3 K1 + 0xB81A0400, // 0003 GETNGBL R6 K2 + 0x5C1C0200, // 0004 MOVE R7 R1 + 0x7C100600, // 0005 CALL R4 3 + 0x74120002, // 0006 JMPT R4 #000A + 0x50100000, // 0007 LDBOOL R4 0 0 + 0xA8040001, // 0008 EXBLK 1 1 + 0x80040800, // 0009 RET 1 R4 + 0xB8120400, // 000A GETNGBL R4 K2 + 0x88100801, // 000B GETMBR R4 R4 R1 + 0x60140004, // 000C GETGBL R5 G4 + 0x5C180800, // 000D MOVE R6 R4 + 0x7C140200, // 000E CALL R5 1 + 0x20180B03, // 000F NE R6 R5 K3 + 0x781A0004, // 0010 JMPF R6 #0016 + 0x20180B04, // 0011 NE R6 R5 K4 + 0x781A0002, // 0012 JMPF R6 #0016 + 0x50180000, // 0013 LDBOOL R6 0 0 + 0xA8040001, // 0014 EXBLK 1 1 + 0x80040C00, // 0015 RET 1 R6 + 0x4C180000, // 0016 LDNIL R6 + 0x1C180406, // 0017 EQ R6 R2 R6 + 0x781A0002, // 0018 JMPF R6 #001C + 0x50180200, // 0019 LDBOOL R6 1 0 + 0xA8040001, // 001A EXBLK 1 1 + 0x80040C00, // 001B RET 1 R6 + 0xB81A0A00, // 001C GETNGBL R6 K5 + 0x8C180D06, // 001D GETMET R6 R6 K6 + 0x7C180200, // 001E CALL R6 1 + 0xA802000A, // 001F EXBLK 0 #002B + 0x5C1C0800, // 0020 MOVE R7 R4 + 0x5C200C00, // 0021 MOVE R8 R6 + 0x7C1C0200, // 0022 CALL R7 1 + 0x6020000F, // 0023 GETGBL R8 G15 + 0x5C240E00, // 0024 MOVE R9 R7 + 0x5C280400, // 0025 MOVE R10 R2 + 0x7C200400, // 0026 CALL R8 2 + 0xA8040002, // 0027 EXBLK 1 2 + 0x80041000, // 0028 RET 1 R8 + 0xA8040001, // 0029 EXBLK 1 1 + 0x70020006, // 002A JMP #0032 + 0xAC1C0002, // 002B CATCH R7 0 2 + 0x70020003, // 002C JMP #0031 + 0x50240000, // 002D LDBOOL R9 0 0 + 0xA8040001, // 002E EXBLK 1 1 + 0x80041200, // 002F RET 1 R9 + 0x70020000, // 0030 JMP #0032 + 0xB0080000, // 0031 RAISE 2 R0 R0 + 0xA8040001, // 0032 EXBLK 1 1 + 0x70020005, // 0033 JMP #003A + 0xAC0C0002, // 0034 CATCH R3 0 2 + 0x70020002, // 0035 JMP #0039 + 0x50140000, // 0036 LDBOOL R5 0 0 + 0x80040A00, // 0037 RET 1 R5 + 0x70020000, // 0038 JMP #003A + 0xB0080000, // 0039 RAISE 2 R0 R0 + 0x80000000, // 003A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_unary_expression_raw +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_unary_expression_raw, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(MINUS), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_unary_expression_raw), + /* K10 */ be_nested_str_weak(_X28_X2D_X25s_X29), + /* K11 */ be_nested_str_weak(PLUS), + /* K12 */ be_nested_str_weak(process_primary_expression_raw), + }), + be_str_weak(process_unary_expression_raw), + &be_const_str_solidified, + ( &(const binstruction[38]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080101, // 0005 GETMET R2 R0 K1 + 0x58100002, // 0006 LDCONST R4 K2 + 0x7C080400, // 0007 CALL R2 2 + 0x80060600, // 0008 RET 1 K3 + 0x88080304, // 0009 GETMBR R2 R1 K4 + 0xB80E0A00, // 000A GETNGBL R3 K5 + 0x880C0706, // 000B GETMBR R3 R3 K6 + 0x880C0707, // 000C GETMBR R3 R3 K7 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A0008, // 000E JMPF R2 #0018 + 0x8C080108, // 000F GETMET R2 R0 K8 + 0x7C080200, // 0010 CALL R2 1 + 0x8C080109, // 0011 GETMET R2 R0 K9 + 0x7C080200, // 0012 CALL R2 1 + 0x600C0018, // 0013 GETGBL R3 G24 + 0x5810000A, // 0014 LDCONST R4 K10 + 0x5C140400, // 0015 MOVE R5 R2 + 0x7C0C0400, // 0016 CALL R3 2 + 0x80040600, // 0017 RET 1 R3 + 0x88080304, // 0018 GETMBR R2 R1 K4 + 0xB80E0A00, // 0019 GETNGBL R3 K5 + 0x880C0706, // 001A GETMBR R3 R3 K6 + 0x880C070B, // 001B GETMBR R3 R3 K11 + 0x1C080403, // 001C EQ R2 R2 R3 + 0x780A0004, // 001D JMPF R2 #0023 + 0x8C080108, // 001E GETMET R2 R0 K8 + 0x7C080200, // 001F CALL R2 1 + 0x8C080109, // 0020 GETMET R2 R0 K9 + 0x7C080200, // 0021 CALL R2 1 + 0x80040400, // 0022 RET 1 R2 + 0x8C08010C, // 0023 GETMET R2 R0 K12 + 0x7C080200, // 0024 CALL R2 1 + 0x80040400, // 0025 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_nested_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* 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[28]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(IDENTIFIER), + /* K6 */ be_nested_str_weak(KEYWORD), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Expected_X20function_X20name), + /* K11 */ be_nested_str_weak(nil), + /* K12 */ be_nested_str_weak(is_math_method), + /* K13 */ be_nested_str_weak(process_function_arguments_for_expression), + /* K14 */ be_nested_str_weak(self_X2E_X25s_X28_X25s_X29), + /* K15 */ be_nested_str_weak(animation), + /* K16 */ be_nested_str_weak(is_user_function), + /* K17 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), + /* K18 */ be_nested_str_weak(self_X2Eengine), + /* K19 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), + /* K20 */ be_nested_str_weak(_is_simple_function_call), + /* K21 */ be_nested_str_weak(process_function_arguments), + /* K22 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), + /* K23 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + /* K24 */ be_nested_str_weak(_validate_animation_factory_exists), + /* K25 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), + /* K26 */ be_nested_str_weak(skip_function_arguments), + /* K27 */ be_nested_str_weak(_generate_anonymous_function_call), + }), + be_str_weak(process_nested_function_call), + &be_const_str_solidified, + ( &(const binstruction[99]) { /* 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 + 0x780E000F, // 0005 JMPF R3 #0016 + 0x880C0302, // 0006 GETMBR R3 R1 K2 + 0xB8120600, // 0007 GETNGBL R4 K3 + 0x88100904, // 0008 GETMBR R4 R4 K4 + 0x88100905, // 0009 GETMBR R4 R4 K5 + 0x1C0C0604, // 000A EQ R3 R3 R4 + 0x740E0005, // 000B JMPT R3 #0012 + 0x880C0302, // 000C GETMBR R3 R1 K2 + 0xB8120600, // 000D GETNGBL R4 K3 + 0x88100904, // 000E GETMBR R4 R4 K4 + 0x88100906, // 000F GETMBR R4 R4 K6 + 0x1C0C0604, // 0010 EQ R3 R3 R4 + 0x780E0003, // 0011 JMPF R3 #0016 + 0x88080307, // 0012 GETMBR R2 R1 K7 + 0x8C0C0108, // 0013 GETMET R3 R0 K8 + 0x7C0C0200, // 0014 CALL R3 1 + 0x70020003, // 0015 JMP #001A + 0x8C0C0109, // 0016 GETMET R3 R0 K9 + 0x5814000A, // 0017 LDCONST R5 K10 + 0x7C0C0400, // 0018 CALL R3 2 + 0x80061600, // 0019 RET 1 K11 + 0x8C0C010C, // 001A GETMET R3 R0 K12 + 0x5C140400, // 001B MOVE R5 R2 + 0x7C0C0400, // 001C CALL R3 2 + 0x780E0007, // 001D JMPF R3 #0026 + 0x8C0C010D, // 001E GETMET R3 R0 K13 + 0x7C0C0200, // 001F CALL R3 1 + 0x60100018, // 0020 GETGBL R4 G24 + 0x5814000E, // 0021 LDCONST R5 K14 + 0x5C180400, // 0022 MOVE R6 R2 + 0x5C1C0600, // 0023 MOVE R7 R3 + 0x7C100600, // 0024 CALL R4 3 + 0x80040800, // 0025 RET 1 R4 + 0xB80E1E00, // 0026 GETNGBL R3 K15 + 0x8C0C0710, // 0027 GETMET R3 R3 K16 + 0x5C140400, // 0028 MOVE R5 R2 + 0x7C0C0400, // 0029 CALL R3 2 + 0x780E0010, // 002A JMPF R3 #003C + 0x8C0C010D, // 002B GETMET R3 R0 K13 + 0x7C0C0200, // 002C CALL R3 1 + 0x20100701, // 002D NE R4 R3 K1 + 0x78120004, // 002E JMPF R4 #0034 + 0x60100018, // 002F GETGBL R4 G24 + 0x58140011, // 0030 LDCONST R5 K17 + 0x5C180600, // 0031 MOVE R6 R3 + 0x7C100400, // 0032 CALL R4 2 + 0x70020000, // 0033 JMP #0035 + 0x58100012, // 0034 LDCONST R4 K18 + 0x60140018, // 0035 GETGBL R5 G24 + 0x58180013, // 0036 LDCONST R6 K19 + 0x5C1C0400, // 0037 MOVE R7 R2 + 0x5C200800, // 0038 MOVE R8 R4 + 0x7C140600, // 0039 CALL R5 3 + 0x80040A00, // 003A RET 1 R5 + 0x70020025, // 003B JMP #0062 + 0x8C0C0114, // 003C GETMET R3 R0 K20 + 0x5C140400, // 003D MOVE R5 R2 + 0x7C0C0400, // 003E CALL R3 2 + 0x780E0010, // 003F JMPF R3 #0051 + 0x8C0C0115, // 0040 GETMET R3 R0 K21 + 0x7C0C0200, // 0041 CALL R3 1 + 0x20100701, // 0042 NE R4 R3 K1 + 0x78120006, // 0043 JMPF R4 #004B + 0x60100018, // 0044 GETGBL R4 G24 + 0x58140016, // 0045 LDCONST R5 K22 + 0x5C180400, // 0046 MOVE R6 R2 + 0x5C1C0600, // 0047 MOVE R7 R3 + 0x7C100600, // 0048 CALL R4 3 + 0x80040800, // 0049 RET 1 R4 + 0x70020004, // 004A JMP #0050 + 0x60100018, // 004B GETGBL R4 G24 + 0x58140017, // 004C LDCONST R5 K23 + 0x5C180400, // 004D MOVE R6 R2 + 0x7C100400, // 004E CALL R4 2 + 0x80040800, // 004F RET 1 R4 + 0x70020010, // 0050 JMP #0062 + 0x8C0C0118, // 0051 GETMET R3 R0 K24 + 0x5C140400, // 0052 MOVE R5 R2 + 0x7C0C0400, // 0053 CALL R3 2 + 0x740E0008, // 0054 JMPT R3 #005E + 0x8C0C0109, // 0055 GETMET R3 R0 K9 + 0x60140018, // 0056 GETGBL R5 G24 + 0x58180019, // 0057 LDCONST R6 K25 + 0x5C1C0400, // 0058 MOVE R7 R2 + 0x7C140400, // 0059 CALL R5 2 + 0x7C0C0400, // 005A CALL R3 2 + 0x8C0C011A, // 005B GETMET R3 R0 K26 + 0x7C0C0200, // 005C CALL R3 1 + 0x80061600, // 005D RET 1 K11 + 0x8C0C011B, // 005E GETMET R3 R0 K27 + 0x5C140400, // 005F MOVE R5 R2 + 0x7C0C0400, // 0060 CALL R3 2 + 0x80040600, // 0061 RET 1 R3 + 0x80000000, // 0062 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(LEFT_PAREN), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X28_X27), + }), + be_str_weak(expect_left_paren), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_event_parameters +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_event_parameters, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(_X7B), + /* K2 */ be_nested_str_weak(at_end), + /* K3 */ be_nested_str_weak(check_right_paren), + /* K4 */ be_nested_str_weak(current), + /* K5 */ be_nested_str_weak(type), + /* K6 */ be_nested_str_weak(animation_dsl), + /* K7 */ be_nested_str_weak(Token), + /* K8 */ be_nested_str_weak(TIME), + /* K9 */ be_nested_str_weak(process_time_value), + /* K10 */ be_nested_str_weak(_X22interval_X22_X3A_X20_X25s), + /* K11 */ be_nested_str_weak(process_value), + /* K12 */ be_nested_str_weak(event_param), + /* K13 */ be_nested_str_weak(_X22value_X22_X3A_X20_X25s), + /* K14 */ be_nested_str_weak(expect_right_paren), + /* K15 */ be_nested_str_weak(_X7D), + }), + be_str_weak(process_event_parameters), + &be_const_str_solidified, + ( &(const binstruction[40]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x58040001, // 0002 LDCONST R1 K1 + 0x8C080102, // 0003 GETMET R2 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x740A001D, // 0005 JMPT R2 #0024 + 0x8C080103, // 0006 GETMET R2 R0 K3 + 0x7C080200, // 0007 CALL R2 1 + 0x740A001A, // 0008 JMPT R2 #0024 + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x4C0C0000, // 000B LDNIL R3 + 0x200C0403, // 000C NE R3 R2 R3 + 0x780E000D, // 000D JMPF R3 #001C + 0x880C0505, // 000E GETMBR R3 R2 K5 + 0xB8120C00, // 000F GETNGBL R4 K6 + 0x88100907, // 0010 GETMBR R4 R4 K7 + 0x88100908, // 0011 GETMBR R4 R4 K8 + 0x1C0C0604, // 0012 EQ R3 R3 R4 + 0x780E0007, // 0013 JMPF R3 #001C + 0x8C0C0109, // 0014 GETMET R3 R0 K9 + 0x7C0C0200, // 0015 CALL R3 1 + 0x60100018, // 0016 GETGBL R4 G24 + 0x5814000A, // 0017 LDCONST R5 K10 + 0x5C180600, // 0018 MOVE R6 R3 + 0x7C100400, // 0019 CALL R4 2 + 0x00040204, // 001A ADD R1 R1 R4 + 0x70020007, // 001B JMP #0024 + 0x8C0C010B, // 001C GETMET R3 R0 K11 + 0x5814000C, // 001D LDCONST R5 K12 + 0x7C0C0400, // 001E CALL R3 2 + 0x60100018, // 001F GETGBL R4 G24 + 0x5814000D, // 0020 LDCONST R5 K13 + 0x5C180600, // 0021 MOVE R6 R3 + 0x7C100400, // 0022 CALL R4 2 + 0x00040204, // 0023 ADD R1 R1 R4 + 0x8C08010E, // 0024 GETMET R2 R0 K14 + 0x7C080200, // 0025 CALL R2 1 + 0x0004030F, // 0026 ADD R1 R1 K15 + 0x80040200, // 0027 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_for_animation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* name */ + be_nested_proto( + 15, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[24]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(_create_instance_for_validation), + /* K2 */ be_nested_str_weak(at_end), + /* K3 */ be_nested_str_weak(check_right_paren), + /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K5 */ be_nested_str_weak(expect_identifier), + /* K6 */ be_nested_str_weak(_validate_single_parameter), + /* K7 */ be_nested_str_weak(expect_assign), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(argument), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(add), + /* K12 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K13 */ be_nested_str_weak(current), + /* K14 */ be_nested_str_weak(type), + /* K15 */ be_nested_str_weak(animation_dsl), + /* K16 */ be_nested_str_weak(Token), + /* K17 */ be_nested_str_weak(COMMENT), + /* K18 */ be_nested_str_weak(next), + /* K19 */ be_nested_str_weak(COMMA), + /* K20 */ be_nested_str_weak(NEWLINE), + /* K21 */ be_nested_str_weak(error), + /* K22 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K23 */ be_nested_str_weak(expect_right_paren), + }), + be_str_weak(_process_named_arguments_for_animation), + &be_const_str_solidified, + ( &(const binstruction[109]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x8C0C0101, // 0002 GETMET R3 R0 K1 + 0x5C140400, // 0003 MOVE R5 R2 + 0x7C0C0400, // 0004 CALL R3 2 + 0x8C100102, // 0005 GETMET R4 R0 K2 + 0x7C100200, // 0006 CALL R4 1 + 0x74120061, // 0007 JMPT R4 #006A + 0x8C100103, // 0008 GETMET R4 R0 K3 + 0x7C100200, // 0009 CALL R4 1 + 0x7412005E, // 000A JMPT R4 #006A + 0x8C100104, // 000B GETMET R4 R0 K4 + 0x7C100200, // 000C CALL R4 1 + 0x8C100103, // 000D GETMET R4 R0 K3 + 0x7C100200, // 000E CALL R4 1 + 0x78120000, // 000F JMPF R4 #0011 + 0x70020058, // 0010 JMP #006A + 0x8C100105, // 0011 GETMET R4 R0 K5 + 0x7C100200, // 0012 CALL R4 1 + 0x4C140000, // 0013 LDNIL R5 + 0x20140605, // 0014 NE R5 R3 R5 + 0x78160004, // 0015 JMPF R5 #001B + 0x8C140106, // 0016 GETMET R5 R0 K6 + 0x5C1C0400, // 0017 MOVE R7 R2 + 0x5C200800, // 0018 MOVE R8 R4 + 0x5C240600, // 0019 MOVE R9 R3 + 0x7C140800, // 001A CALL R5 4 + 0x8C140107, // 001B GETMET R5 R0 K7 + 0x7C140200, // 001C CALL R5 1 + 0x8C140108, // 001D GETMET R5 R0 K8 + 0x581C0009, // 001E LDCONST R7 K9 + 0x7C140400, // 001F CALL R5 2 + 0x8C18010A, // 0020 GETMET R6 R0 K10 + 0x7C180200, // 0021 CALL R6 1 + 0x8C1C010B, // 0022 GETMET R7 R0 K11 + 0x60240018, // 0023 GETGBL R9 G24 + 0x5828000C, // 0024 LDCONST R10 K12 + 0x5C2C0200, // 0025 MOVE R11 R1 + 0x5C300800, // 0026 MOVE R12 R4 + 0x5C340A00, // 0027 MOVE R13 R5 + 0x5C380C00, // 0028 MOVE R14 R6 + 0x7C240A00, // 0029 CALL R9 5 + 0x7C1C0400, // 002A CALL R7 2 + 0x8C1C0102, // 002B GETMET R7 R0 K2 + 0x7C1C0200, // 002C CALL R7 1 + 0x741E000F, // 002D JMPT R7 #003E + 0x8C1C010D, // 002E GETMET R7 R0 K13 + 0x7C1C0200, // 002F CALL R7 1 + 0x4C200000, // 0030 LDNIL R8 + 0x20200E08, // 0031 NE R8 R7 R8 + 0x78220008, // 0032 JMPF R8 #003C + 0x88200F0E, // 0033 GETMBR R8 R7 K14 + 0xB8261E00, // 0034 GETNGBL R9 K15 + 0x88241310, // 0035 GETMBR R9 R9 K16 + 0x88241311, // 0036 GETMBR R9 R9 K17 + 0x1C201009, // 0037 EQ R8 R8 R9 + 0x78220002, // 0038 JMPF R8 #003C + 0x8C200112, // 0039 GETMET R8 R0 K18 + 0x7C200200, // 003A CALL R8 1 + 0x70020000, // 003B JMP #003D + 0x70020000, // 003C JMP #003E + 0x7001FFEC, // 003D JMP #002B + 0x8C1C010D, // 003E GETMET R7 R0 K13 + 0x7C1C0200, // 003F CALL R7 1 + 0x4C200000, // 0040 LDNIL R8 + 0x201C0E08, // 0041 NE R7 R7 R8 + 0x781E000C, // 0042 JMPF R7 #0050 + 0x8C1C010D, // 0043 GETMET R7 R0 K13 + 0x7C1C0200, // 0044 CALL R7 1 + 0x881C0F0E, // 0045 GETMBR R7 R7 K14 + 0xB8221E00, // 0046 GETNGBL R8 K15 + 0x88201110, // 0047 GETMBR R8 R8 K16 + 0x88201113, // 0048 GETMBR R8 R8 K19 + 0x1C1C0E08, // 0049 EQ R7 R7 R8 + 0x781E0004, // 004A JMPF R7 #0050 + 0x8C1C0112, // 004B GETMET R7 R0 K18 + 0x7C1C0200, // 004C CALL R7 1 + 0x8C1C0104, // 004D GETMET R7 R0 K4 + 0x7C1C0200, // 004E CALL R7 1 + 0x70020018, // 004F JMP #0069 + 0x8C1C010D, // 0050 GETMET R7 R0 K13 + 0x7C1C0200, // 0051 CALL R7 1 + 0x4C200000, // 0052 LDNIL R8 + 0x201C0E08, // 0053 NE R7 R7 R8 + 0x781E000C, // 0054 JMPF R7 #0062 + 0x8C1C010D, // 0055 GETMET R7 R0 K13 + 0x7C1C0200, // 0056 CALL R7 1 + 0x881C0F0E, // 0057 GETMBR R7 R7 K14 + 0xB8221E00, // 0058 GETNGBL R8 K15 + 0x88201110, // 0059 GETMBR R8 R8 K16 + 0x88201114, // 005A GETMBR R8 R8 K20 + 0x1C1C0E08, // 005B EQ R7 R7 R8 + 0x781E0004, // 005C JMPF R7 #0062 + 0x8C1C0112, // 005D GETMET R7 R0 K18 + 0x7C1C0200, // 005E CALL R7 1 + 0x8C1C0104, // 005F GETMET R7 R0 K4 + 0x7C1C0200, // 0060 CALL R7 1 + 0x70020006, // 0061 JMP #0069 + 0x8C1C0103, // 0062 GETMET R7 R0 K3 + 0x7C1C0200, // 0063 CALL R7 1 + 0x741E0003, // 0064 JMPT R7 #0069 + 0x8C1C0115, // 0065 GETMET R7 R0 K21 + 0x58240016, // 0066 LDCONST R9 K22 + 0x7C1C0400, // 0067 CALL R7 2 + 0x70020000, // 0068 JMP #006A + 0x7001FF9A, // 0069 JMP #0005 + 0x8C100117, // 006A GETMET R4 R0 K23 + 0x7C100200, // 006B CALL R4 1 + 0x80000000, // 006C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_math_method +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_is_math_method, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(animation), + /* K2 */ be_nested_str_weak(closure_value), + /* K3 */ be_nested_str_weak(members), + /* K4 */ be_nested_str_weak(get), + /* K5 */ be_nested_str_weak(ismethod), + /* K6 */ be_nested_str_weak(function), + /* K7 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(is_math_method), + &be_const_str_solidified, + ( &(const binstruction[54]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0xA802002C, // 0001 EXBLK 0 #002F + 0xB80E0200, // 0002 GETNGBL R3 K1 + 0x880C0702, // 0003 GETMBR R3 R3 K2 + 0x4C100000, // 0004 LDNIL R4 + 0x1C100604, // 0005 EQ R4 R3 R4 + 0x78120002, // 0006 JMPF R4 #000A + 0x50100000, // 0007 LDBOOL R4 0 0 + 0xA8040001, // 0008 EXBLK 1 1 + 0x80040800, // 0009 RET 1 R4 + 0x8C100503, // 000A GETMET R4 R2 K3 + 0x5C180600, // 000B MOVE R6 R3 + 0x7C100400, // 000C CALL R4 2 + 0x60140010, // 000D GETGBL R5 G16 + 0x5C180800, // 000E MOVE R6 R4 + 0x7C140200, // 000F CALL R5 1 + 0xA8020015, // 0010 EXBLK 0 #0027 + 0x5C180A00, // 0011 MOVE R6 R5 + 0x7C180000, // 0012 CALL R6 0 + 0x1C1C0C01, // 0013 EQ R7 R6 R1 + 0x781E0010, // 0014 JMPF R7 #0026 + 0x8C1C0504, // 0015 GETMET R7 R2 K4 + 0x5C240600, // 0016 MOVE R9 R3 + 0x5C280200, // 0017 MOVE R10 R1 + 0x7C1C0600, // 0018 CALL R7 3 + 0x8C200505, // 0019 GETMET R8 R2 K5 + 0x5C280E00, // 001A MOVE R10 R7 + 0x7C200400, // 001B CALL R8 2 + 0x74220005, // 001C JMPT R8 #0023 + 0x60200004, // 001D GETGBL R8 G4 + 0x5C240E00, // 001E MOVE R9 R7 + 0x7C200200, // 001F CALL R8 1 + 0x1C201106, // 0020 EQ R8 R8 K6 + 0x74220000, // 0021 JMPT R8 #0023 + 0x50200001, // 0022 LDBOOL R8 0 1 + 0x50200200, // 0023 LDBOOL R8 1 0 + 0xA8040002, // 0024 EXBLK 1 2 + 0x80041000, // 0025 RET 1 R8 + 0x7001FFE9, // 0026 JMP #0011 + 0x58140007, // 0027 LDCONST R5 K7 + 0xAC140200, // 0028 CATCH R5 1 0 + 0xB0080000, // 0029 RAISE 2 R0 R0 + 0x50140000, // 002A LDBOOL R5 0 0 + 0xA8040001, // 002B EXBLK 1 1 + 0x80040A00, // 002C RET 1 R5 + 0xA8040001, // 002D EXBLK 1 1 + 0x70020005, // 002E JMP #0035 + 0xAC0C0002, // 002F CATCH R3 0 2 + 0x70020002, // 0030 JMP #0034 + 0x50140000, // 0031 LDBOOL R5 0 0 + 0x80040A00, // 0032 RET 1 R5 + 0x70020000, // 0033 JMP #0035 + 0xB0080000, // 0034 RAISE 2 R0 R0 + 0x80000000, // 0035 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_primary_expression_raw +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_primary_expression_raw, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[48]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(nil), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(animation_dsl), + /* K6 */ be_nested_str_weak(Token), + /* K7 */ be_nested_str_weak(LEFT_PAREN), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(process_additive_expression_raw), + /* K10 */ be_nested_str_weak(expect_right_paren), + /* K11 */ be_nested_str_weak(_X28_X25s_X29), + /* K12 */ be_nested_str_weak(KEYWORD), + /* K13 */ be_nested_str_weak(IDENTIFIER), + /* K14 */ be_nested_str_weak(peek), + /* K15 */ be_nested_str_weak(value), + /* K16 */ be_nested_str_weak(is_math_method), + /* K17 */ be_nested_str_weak(process_function_arguments_for_expression), + /* K18 */ be_nested_str_weak(self_X2E_X25s_X28_X25s_X29), + /* K19 */ be_nested_str_weak(animation), + /* K20 */ be_nested_str_weak(is_user_function), + /* K21 */ be_nested_str_weak(), + /* K22 */ be_nested_str_weak(self_X2Eengine_X2C_X20_X25s), + /* K23 */ be_nested_str_weak(self_X2Eengine), + /* K24 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), + /* K25 */ be_nested_str_weak(Function_X20_X27_X25s_X27_X20not_X20supported_X20in_X20expression_X20context), + /* K26 */ be_nested_str_weak(COLOR), + /* K27 */ be_nested_str_weak(convert_color), + /* K28 */ be_nested_str_weak(TIME), + /* K29 */ be_nested_str_weak(process_time_value), + /* K30 */ be_nested_str_weak(PERCENTAGE), + /* K31 */ be_nested_str_weak(process_percentage_value), + /* K32 */ be_nested_str_weak(NUMBER), + /* K33 */ be_nested_str_weak(STRING), + /* K34 */ be_nested_str_weak(_X22_X25s_X22), + /* K35 */ be_nested_str_weak(DOT), + /* K36 */ be_nested_str_weak(expect_identifier), + /* K37 */ be_nested_str_weak(symbol_table), + /* K38 */ be_nested_str_weak(contains), + /* K39 */ be_nested_str_weak(string), + /* K40 */ be_nested_str_weak(_validate_single_parameter), + /* K41 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20references_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), + /* K42 */ be_nested_str_weak(introspect), + /* K43 */ be_nested_str_weak(animation_X2E_X25s), + /* K44 */ be_nested_str_weak(_X25s_), + /* K45 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X2C_X20_X27_X25s_X27_X29), + /* K46 */ be_nested_str_weak(self_X2Eresolve_X28_X25s__X29), + /* K47 */ be_nested_str_weak(Unexpected_X20token_X20in_X20expression_X3A_X20_X25s), + }), + be_str_weak(process_primary_expression_raw), + &be_const_str_solidified, + ( &(const binstruction[242]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080101, // 0005 GETMET R2 R0 K1 + 0x58100002, // 0006 LDCONST R4 K2 + 0x7C080400, // 0007 CALL R2 2 + 0x80060600, // 0008 RET 1 K3 + 0x88080304, // 0009 GETMBR R2 R1 K4 + 0xB80E0A00, // 000A GETNGBL R3 K5 + 0x880C0706, // 000B GETMBR R3 R3 K6 + 0x880C0707, // 000C GETMBR R3 R3 K7 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A000A, // 000E JMPF R2 #001A + 0x8C080108, // 000F GETMET R2 R0 K8 + 0x7C080200, // 0010 CALL R2 1 + 0x8C080109, // 0011 GETMET R2 R0 K9 + 0x7C080200, // 0012 CALL R2 1 + 0x8C0C010A, // 0013 GETMET R3 R0 K10 + 0x7C0C0200, // 0014 CALL R3 1 + 0x600C0018, // 0015 GETGBL R3 G24 + 0x5810000B, // 0016 LDCONST R4 K11 + 0x5C140400, // 0017 MOVE R5 R2 + 0x7C0C0400, // 0018 CALL R3 2 + 0x80040600, // 0019 RET 1 R3 + 0x88080304, // 001A GETMBR R2 R1 K4 + 0xB80E0A00, // 001B GETNGBL R3 K5 + 0x880C0706, // 001C GETMBR R3 R3 K6 + 0x880C070C, // 001D GETMBR R3 R3 K12 + 0x1C080403, // 001E EQ R2 R2 R3 + 0x740A0005, // 001F JMPT R2 #0026 + 0x88080304, // 0020 GETMBR R2 R1 K4 + 0xB80E0A00, // 0021 GETNGBL R3 K5 + 0x880C0706, // 0022 GETMBR R3 R3 K6 + 0x880C070D, // 0023 GETMBR R3 R3 K13 + 0x1C080403, // 0024 EQ R2 R2 R3 + 0x780A0037, // 0025 JMPF R2 #005E + 0x8C08010E, // 0026 GETMET R2 R0 K14 + 0x7C080200, // 0027 CALL R2 1 + 0x4C0C0000, // 0028 LDNIL R3 + 0x20080403, // 0029 NE R2 R2 R3 + 0x780A0032, // 002A JMPF R2 #005E + 0x8C08010E, // 002B GETMET R2 R0 K14 + 0x7C080200, // 002C CALL R2 1 + 0x88080504, // 002D GETMBR R2 R2 K4 + 0xB80E0A00, // 002E GETNGBL R3 K5 + 0x880C0706, // 002F GETMBR R3 R3 K6 + 0x880C0707, // 0030 GETMBR R3 R3 K7 + 0x1C080403, // 0031 EQ R2 R2 R3 + 0x780A002A, // 0032 JMPF R2 #005E + 0x8808030F, // 0033 GETMBR R2 R1 K15 + 0x8C0C0108, // 0034 GETMET R3 R0 K8 + 0x7C0C0200, // 0035 CALL R3 1 + 0x8C0C0110, // 0036 GETMET R3 R0 K16 + 0x5C140400, // 0037 MOVE R5 R2 + 0x7C0C0400, // 0038 CALL R3 2 + 0x780E0007, // 0039 JMPF R3 #0042 + 0x8C0C0111, // 003A GETMET R3 R0 K17 + 0x7C0C0200, // 003B CALL R3 1 + 0x60100018, // 003C GETGBL R4 G24 + 0x58140012, // 003D LDCONST R5 K18 + 0x5C180400, // 003E MOVE R6 R2 + 0x5C1C0600, // 003F MOVE R7 R3 + 0x7C100600, // 0040 CALL R4 3 + 0x80040800, // 0041 RET 1 R4 + 0xB80E2600, // 0042 GETNGBL R3 K19 + 0x8C0C0714, // 0043 GETMET R3 R3 K20 + 0x5C140400, // 0044 MOVE R5 R2 + 0x7C0C0400, // 0045 CALL R3 2 + 0x780E000F, // 0046 JMPF R3 #0057 + 0x8C0C0111, // 0047 GETMET R3 R0 K17 + 0x7C0C0200, // 0048 CALL R3 1 + 0x20100715, // 0049 NE R4 R3 K21 + 0x78120004, // 004A JMPF R4 #0050 + 0x60100018, // 004B GETGBL R4 G24 + 0x58140016, // 004C LDCONST R5 K22 + 0x5C180600, // 004D MOVE R6 R3 + 0x7C100400, // 004E CALL R4 2 + 0x70020000, // 004F JMP #0051 + 0x58100017, // 0050 LDCONST R4 K23 + 0x60140018, // 0051 GETGBL R5 G24 + 0x58180018, // 0052 LDCONST R6 K24 + 0x5C1C0400, // 0053 MOVE R7 R2 + 0x5C200800, // 0054 MOVE R8 R4 + 0x7C140600, // 0055 CALL R5 3 + 0x80040A00, // 0056 RET 1 R5 + 0x8C0C0101, // 0057 GETMET R3 R0 K1 + 0x60140018, // 0058 GETGBL R5 G24 + 0x58180019, // 0059 LDCONST R6 K25 + 0x5C1C0400, // 005A MOVE R7 R2 + 0x7C140400, // 005B CALL R5 2 + 0x7C0C0400, // 005C CALL R3 2 + 0x80060600, // 005D RET 1 K3 + 0x88080304, // 005E GETMBR R2 R1 K4 + 0xB80E0A00, // 005F GETNGBL R3 K5 + 0x880C0706, // 0060 GETMBR R3 R3 K6 + 0x880C071A, // 0061 GETMBR R3 R3 K26 + 0x1C080403, // 0062 EQ R2 R2 R3 + 0x780A0005, // 0063 JMPF R2 #006A + 0x8C080108, // 0064 GETMET R2 R0 K8 + 0x7C080200, // 0065 CALL R2 1 + 0x8C08011B, // 0066 GETMET R2 R0 K27 + 0x8810030F, // 0067 GETMBR R4 R1 K15 + 0x7C080400, // 0068 CALL R2 2 + 0x80040400, // 0069 RET 1 R2 + 0x88080304, // 006A GETMBR R2 R1 K4 + 0xB80E0A00, // 006B GETNGBL R3 K5 + 0x880C0706, // 006C GETMBR R3 R3 K6 + 0x880C071C, // 006D GETMBR R3 R3 K28 + 0x1C080403, // 006E EQ R2 R2 R3 + 0x780A0004, // 006F JMPF R2 #0075 + 0x60080008, // 0070 GETGBL R2 G8 + 0x8C0C011D, // 0071 GETMET R3 R0 K29 + 0x7C0C0200, // 0072 CALL R3 1 + 0x7C080200, // 0073 CALL R2 1 + 0x80040400, // 0074 RET 1 R2 + 0x88080304, // 0075 GETMBR R2 R1 K4 + 0xB80E0A00, // 0076 GETNGBL R3 K5 + 0x880C0706, // 0077 GETMBR R3 R3 K6 + 0x880C071E, // 0078 GETMBR R3 R3 K30 + 0x1C080403, // 0079 EQ R2 R2 R3 + 0x780A0004, // 007A JMPF R2 #0080 + 0x60080008, // 007B GETGBL R2 G8 + 0x8C0C011F, // 007C GETMET R3 R0 K31 + 0x7C0C0200, // 007D CALL R3 1 + 0x7C080200, // 007E CALL R2 1 + 0x80040400, // 007F RET 1 R2 + 0x88080304, // 0080 GETMBR R2 R1 K4 + 0xB80E0A00, // 0081 GETNGBL R3 K5 + 0x880C0706, // 0082 GETMBR R3 R3 K6 + 0x880C0720, // 0083 GETMBR R3 R3 K32 + 0x1C080403, // 0084 EQ R2 R2 R3 + 0x780A0003, // 0085 JMPF R2 #008A + 0x8808030F, // 0086 GETMBR R2 R1 K15 + 0x8C0C0108, // 0087 GETMET R3 R0 K8 + 0x7C0C0200, // 0088 CALL R3 1 + 0x80040400, // 0089 RET 1 R2 + 0x88080304, // 008A GETMBR R2 R1 K4 + 0xB80E0A00, // 008B GETNGBL R3 K5 + 0x880C0706, // 008C GETMBR R3 R3 K6 + 0x880C0721, // 008D GETMBR R3 R3 K33 + 0x1C080403, // 008E EQ R2 R2 R3 + 0x780A0007, // 008F JMPF R2 #0098 + 0x8808030F, // 0090 GETMBR R2 R1 K15 + 0x8C0C0108, // 0091 GETMET R3 R0 K8 + 0x7C0C0200, // 0092 CALL R3 1 + 0x600C0018, // 0093 GETGBL R3 G24 + 0x58100022, // 0094 LDCONST R4 K34 + 0x5C140400, // 0095 MOVE R5 R2 + 0x7C0C0400, // 0096 CALL R3 2 + 0x80040600, // 0097 RET 1 R3 + 0x88080304, // 0098 GETMBR R2 R1 K4 + 0xB80E0A00, // 0099 GETNGBL R3 K5 + 0x880C0706, // 009A GETMBR R3 R3 K6 + 0x880C070D, // 009B GETMBR R3 R3 K13 + 0x1C080403, // 009C EQ R2 R2 R3 + 0x780A004C, // 009D JMPF R2 #00EB + 0x8808030F, // 009E GETMBR R2 R1 K15 + 0x8C0C0108, // 009F GETMET R3 R0 K8 + 0x7C0C0200, // 00A0 CALL R3 1 + 0x8C0C0100, // 00A1 GETMET R3 R0 K0 + 0x7C0C0200, // 00A2 CALL R3 1 + 0x4C100000, // 00A3 LDNIL R4 + 0x200C0604, // 00A4 NE R3 R3 R4 + 0x780E003F, // 00A5 JMPF R3 #00E6 + 0x8C0C0100, // 00A6 GETMET R3 R0 K0 + 0x7C0C0200, // 00A7 CALL R3 1 + 0x880C0704, // 00A8 GETMBR R3 R3 K4 + 0xB8120A00, // 00A9 GETNGBL R4 K5 + 0x88100906, // 00AA GETMBR R4 R4 K6 + 0x88100923, // 00AB GETMBR R4 R4 K35 + 0x1C0C0604, // 00AC EQ R3 R3 R4 + 0x780E0037, // 00AD JMPF R3 #00E6 + 0x8C0C0108, // 00AE GETMET R3 R0 K8 + 0x7C0C0200, // 00AF CALL R3 1 + 0x8C0C0124, // 00B0 GETMET R3 R0 K36 + 0x7C0C0200, // 00B1 CALL R3 1 + 0x88100125, // 00B2 GETMBR R4 R0 K37 + 0x8C100926, // 00B3 GETMET R4 R4 K38 + 0x5C180400, // 00B4 MOVE R6 R2 + 0x7C100400, // 00B5 CALL R4 2 + 0x78120016, // 00B6 JMPF R4 #00CE + 0x88100125, // 00B7 GETMBR R4 R0 K37 + 0x94100802, // 00B8 GETIDX R4 R4 R2 + 0x60140004, // 00B9 GETGBL R5 G4 + 0x5C180800, // 00BA MOVE R6 R4 + 0x7C140200, // 00BB CALL R5 1 + 0x20140B27, // 00BC NE R5 R5 K39 + 0x78160008, // 00BD JMPF R5 #00C7 + 0x60140005, // 00BE GETGBL R5 G5 + 0x5C180800, // 00BF MOVE R6 R4 + 0x7C140200, // 00C0 CALL R5 1 + 0x8C180128, // 00C1 GETMET R6 R0 K40 + 0x5C200A00, // 00C2 MOVE R8 R5 + 0x5C240600, // 00C3 MOVE R9 R3 + 0x5C280800, // 00C4 MOVE R10 R4 + 0x7C180800, // 00C5 CALL R6 4 + 0x70020006, // 00C6 JMP #00CE + 0x8C140101, // 00C7 GETMET R5 R0 K1 + 0x601C0018, // 00C8 GETGBL R7 G24 + 0x58200029, // 00C9 LDCONST R8 K41 + 0x5C240400, // 00CA MOVE R9 R2 + 0x7C1C0400, // 00CB CALL R7 2 + 0x7C140400, // 00CC CALL R5 2 + 0x80060600, // 00CD RET 1 K3 + 0xA4125400, // 00CE IMPORT R4 K42 + 0x58140015, // 00CF LDCONST R5 K21 + 0x8C180926, // 00D0 GETMET R6 R4 K38 + 0xB8222600, // 00D1 GETNGBL R8 K19 + 0x5C240400, // 00D2 MOVE R9 R2 + 0x7C180600, // 00D3 CALL R6 3 + 0x781A0005, // 00D4 JMPF R6 #00DB + 0x60180018, // 00D5 GETGBL R6 G24 + 0x581C002B, // 00D6 LDCONST R7 K43 + 0x5C200400, // 00D7 MOVE R8 R2 + 0x7C180400, // 00D8 CALL R6 2 + 0x5C140C00, // 00D9 MOVE R5 R6 + 0x70020004, // 00DA JMP #00E0 + 0x60180018, // 00DB GETGBL R6 G24 + 0x581C002C, // 00DC LDCONST R7 K44 + 0x5C200400, // 00DD MOVE R8 R2 + 0x7C180400, // 00DE CALL R6 2 + 0x5C140C00, // 00DF MOVE R5 R6 + 0x60180018, // 00E0 GETGBL R6 G24 + 0x581C002D, // 00E1 LDCONST R7 K45 + 0x5C200A00, // 00E2 MOVE R8 R5 + 0x5C240600, // 00E3 MOVE R9 R3 + 0x7C180600, // 00E4 CALL R6 3 + 0x80040C00, // 00E5 RET 1 R6 + 0x600C0018, // 00E6 GETGBL R3 G24 + 0x5810002E, // 00E7 LDCONST R4 K46 + 0x5C140400, // 00E8 MOVE R5 R2 + 0x7C0C0400, // 00E9 CALL R3 2 + 0x80040600, // 00EA RET 1 R3 + 0x8C080101, // 00EB GETMET R2 R0 K1 + 0x60100018, // 00EC GETGBL R4 G24 + 0x5814002F, // 00ED LDCONST R5 K47 + 0x8818030F, // 00EE GETMBR R6 R1 K15 + 0x7C100400, // 00EF CALL R4 2 + 0x7C080400, // 00F0 CALL R2 2 + 0x80060600, // 00F1 RET 1 K3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _is_simple_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__is_simple_function_call, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(strip_length), + /* K1 */ be_nested_str_weak(static_value), + /* K2 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_is_simple_function_call), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0x60080012, // 0000 GETGBL R2 G18 + 0x7C080000, // 0001 CALL R2 0 + 0x400C0500, // 0002 CONNECT R3 R2 K0 + 0x400C0501, // 0003 CONNECT R3 R2 K1 + 0x600C0010, // 0004 GETGBL R3 G16 + 0x5C100400, // 0005 MOVE R4 R2 + 0x7C0C0200, // 0006 CALL R3 1 + 0xA8020007, // 0007 EXBLK 0 #0010 + 0x5C100600, // 0008 MOVE R4 R3 + 0x7C100000, // 0009 CALL R4 0 + 0x1C140204, // 000A EQ R5 R1 R4 + 0x78160002, // 000B JMPF R5 #000F + 0x50140200, // 000C LDBOOL R5 1 0 + 0xA8040001, // 000D EXBLK 1 1 + 0x80040A00, // 000E RET 1 R5 + 0x7001FFF7, // 000F JMP #0008 + 0x580C0002, // 0010 LDCONST R3 K2 + 0xAC0C0200, // 0011 CATCH R3 1 0 + 0xB0080000, // 0012 RAISE 2 R0 R0 + 0x500C0000, // 0013 LDBOOL R3 0 0 + 0x80040600, // 0014 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: current +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_current, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_nested_str_weak(tokens), + }), + be_str_weak(current), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x6008000C, // 0001 GETGBL R2 G12 + 0x880C0101, // 0002 GETMBR R3 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x14040202, // 0004 LT R1 R1 R2 + 0x78060003, // 0005 JMPF R1 #000A + 0x88040101, // 0006 GETMBR R1 R0 K1 + 0x88080100, // 0007 GETMBR R2 R0 K0 + 0x94040202, // 0008 GETIDX R1 R1 R2 + 0x70020000, // 0009 JMP #000B + 0x4C040000, // 000A LDNIL R1 + 0x80040200, // 000B RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* 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[19]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(sequence), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(sequence_names), + /* K6 */ be_nested_str_weak(symbol_table), + /* K7 */ be_nested_str_weak(expect_left_brace), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X28def_X20_X28engine_X29), + /* K10 */ be_nested_str_weak(_X20_X20var_X20steps_X20_X3D_X20_X5B_X5D), + /* K11 */ be_nested_str_weak(at_end), + /* K12 */ be_nested_str_weak(check_right_brace), + /* K13 */ be_nested_str_weak(process_sequence_statement), + /* K14 */ be_nested_str_weak(_X20_X20var_X20seq_manager_X20_X3D_X20animation_X2ESequenceManager_X28engine_X29), + /* K15 */ be_nested_str_weak(_X20_X20seq_manager_X2Estart_sequence_X28steps_X29), + /* K16 */ be_nested_str_weak(_X20_X20return_X20seq_manager), + /* K17 */ be_nested_str_weak(end_X29_X28engine_X29), + /* K18 */ be_nested_str_weak(expect_right_brace), + }), + be_str_weak(process_sequence), + &be_const_str_solidified, + ( &(const binstruction[62]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x88080105, // 000C GETMBR R2 R0 K5 + 0x500C0200, // 000D LDBOOL R3 1 0 + 0x98080203, // 000E SETIDX R2 R1 R3 + 0x88080106, // 000F GETMBR R2 R0 K6 + 0x98080303, // 0010 SETIDX R2 R1 K3 + 0x8C080107, // 0011 GETMET R2 R0 K7 + 0x7C080200, // 0012 CALL R2 1 + 0x8C080108, // 0013 GETMET R2 R0 K8 + 0x60100018, // 0014 GETGBL R4 G24 + 0x58140009, // 0015 LDCONST R5 K9 + 0x5C180200, // 0016 MOVE R6 R1 + 0x7C100400, // 0017 CALL R4 2 + 0x7C080400, // 0018 CALL R2 2 + 0x8C080108, // 0019 GETMET R2 R0 K8 + 0x60100018, // 001A GETGBL R4 G24 + 0x5814000A, // 001B LDCONST R5 K10 + 0x7C100200, // 001C CALL R4 1 + 0x7C080400, // 001D CALL R2 2 + 0x8C08010B, // 001E GETMET R2 R0 K11 + 0x7C080200, // 001F CALL R2 1 + 0x740A0005, // 0020 JMPT R2 #0027 + 0x8C08010C, // 0021 GETMET R2 R0 K12 + 0x7C080200, // 0022 CALL R2 1 + 0x740A0002, // 0023 JMPT R2 #0027 + 0x8C08010D, // 0024 GETMET R2 R0 K13 + 0x7C080200, // 0025 CALL R2 1 + 0x7001FFF6, // 0026 JMP #001E + 0x8C080108, // 0027 GETMET R2 R0 K8 + 0x60100018, // 0028 GETGBL R4 G24 + 0x5814000E, // 0029 LDCONST R5 K14 + 0x7C100200, // 002A CALL R4 1 + 0x7C080400, // 002B CALL R2 2 + 0x8C080108, // 002C GETMET R2 R0 K8 + 0x60100018, // 002D GETGBL R4 G24 + 0x5814000F, // 002E LDCONST R5 K15 + 0x7C100200, // 002F CALL R4 1 + 0x7C080400, // 0030 CALL R2 2 + 0x8C080108, // 0031 GETMET R2 R0 K8 + 0x60100018, // 0032 GETGBL R4 G24 + 0x58140010, // 0033 LDCONST R5 K16 + 0x7C100200, // 0034 CALL R4 1 + 0x7C080400, // 0035 CALL R2 2 + 0x8C080108, // 0036 GETMET R2 R0 K8 + 0x60100018, // 0037 GETGBL R4 G24 + 0x58140011, // 0038 LDCONST R5 K17 + 0x7C100200, // 0039 CALL R4 1 + 0x7C080400, // 003A CALL R2 2 + 0x8C080112, // 003B GETMET R2 R0 K18 + 0x7C080200, // 003C CALL R2 1 + 0x80000000, // 003D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _generate_anonymous_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call, /* name */ + be_nested_proto( + 14, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[33]) { /* constants */ + /* K0 */ be_nested_str_weak(push), + /* K1 */ be_nested_str_weak(_X28def_X20_X28engine_X29), + /* K2 */ be_nested_str_weak(_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29), + /* K3 */ be_nested_str_weak(expect_left_paren), + /* K4 */ be_nested_str_weak(_create_instance_for_validation), + /* K5 */ be_nested_str_weak(at_end), + /* K6 */ be_nested_str_weak(check_right_paren), + /* K7 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K8 */ be_nested_str_weak(expect_identifier), + /* K9 */ be_nested_str_weak(_validate_single_parameter), + /* K10 */ be_nested_str_weak(expect_assign), + /* K11 */ be_nested_str_weak(process_value), + /* K12 */ be_nested_str_weak(argument), + /* K13 */ be_nested_str_weak(collect_inline_comment), + /* K14 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K15 */ be_nested_str_weak(current), + /* K16 */ be_nested_str_weak(type), + /* K17 */ be_nested_str_weak(animation_dsl), + /* K18 */ be_nested_str_weak(Token), + /* K19 */ be_nested_str_weak(COMMENT), + /* K20 */ be_nested_str_weak(next), + /* K21 */ be_nested_str_weak(COMMA), + /* K22 */ be_nested_str_weak(NEWLINE), + /* K23 */ be_nested_str_weak(error), + /* K24 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K25 */ be_nested_str_weak(expect_right_paren), + /* K26 */ be_nested_str_weak(_X20_X20return_X20provider), + /* K27 */ be_nested_str_weak(end_X29_X28engine_X29), + /* K28 */ be_nested_str_weak(), + /* K29 */ be_const_int(0), + /* K30 */ be_const_int(1), + /* K31 */ be_nested_str_weak(_X0A), + /* K32 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_generate_anonymous_function_call), + &be_const_str_solidified, + ( &(const binstruction[145]) { /* code */ + 0x60080012, // 0000 GETGBL R2 G18 + 0x7C080000, // 0001 CALL R2 0 + 0x8C0C0500, // 0002 GETMET R3 R2 K0 + 0x58140001, // 0003 LDCONST R5 K1 + 0x7C0C0400, // 0004 CALL R3 2 + 0x8C0C0500, // 0005 GETMET R3 R2 K0 + 0x60140018, // 0006 GETGBL R5 G24 + 0x58180002, // 0007 LDCONST R6 K2 + 0x5C1C0200, // 0008 MOVE R7 R1 + 0x7C140400, // 0009 CALL R5 2 + 0x7C0C0400, // 000A CALL R3 2 + 0x8C0C0103, // 000B GETMET R3 R0 K3 + 0x7C0C0200, // 000C CALL R3 1 + 0x8C0C0104, // 000D GETMET R3 R0 K4 + 0x5C140200, // 000E MOVE R5 R1 + 0x7C0C0400, // 000F CALL R3 2 + 0x8C100105, // 0010 GETMET R4 R0 K5 + 0x7C100200, // 0011 CALL R4 1 + 0x74120060, // 0012 JMPT R4 #0074 + 0x8C100106, // 0013 GETMET R4 R0 K6 + 0x7C100200, // 0014 CALL R4 1 + 0x7412005D, // 0015 JMPT R4 #0074 + 0x8C100107, // 0016 GETMET R4 R0 K7 + 0x7C100200, // 0017 CALL R4 1 + 0x8C100106, // 0018 GETMET R4 R0 K6 + 0x7C100200, // 0019 CALL R4 1 + 0x78120000, // 001A JMPF R4 #001C + 0x70020057, // 001B JMP #0074 + 0x8C100108, // 001C GETMET R4 R0 K8 + 0x7C100200, // 001D CALL R4 1 + 0x4C140000, // 001E LDNIL R5 + 0x20140605, // 001F NE R5 R3 R5 + 0x78160004, // 0020 JMPF R5 #0026 + 0x8C140109, // 0021 GETMET R5 R0 K9 + 0x5C1C0200, // 0022 MOVE R7 R1 + 0x5C200800, // 0023 MOVE R8 R4 + 0x5C240600, // 0024 MOVE R9 R3 + 0x7C140800, // 0025 CALL R5 4 + 0x8C14010A, // 0026 GETMET R5 R0 K10 + 0x7C140200, // 0027 CALL R5 1 + 0x8C14010B, // 0028 GETMET R5 R0 K11 + 0x581C000C, // 0029 LDCONST R7 K12 + 0x7C140400, // 002A CALL R5 2 + 0x8C18010D, // 002B GETMET R6 R0 K13 + 0x7C180200, // 002C CALL R6 1 + 0x8C1C0500, // 002D GETMET R7 R2 K0 + 0x60240018, // 002E GETGBL R9 G24 + 0x5828000E, // 002F LDCONST R10 K14 + 0x5C2C0800, // 0030 MOVE R11 R4 + 0x5C300A00, // 0031 MOVE R12 R5 + 0x5C340C00, // 0032 MOVE R13 R6 + 0x7C240800, // 0033 CALL R9 4 + 0x7C1C0400, // 0034 CALL R7 2 + 0x8C1C0105, // 0035 GETMET R7 R0 K5 + 0x7C1C0200, // 0036 CALL R7 1 + 0x741E000F, // 0037 JMPT R7 #0048 + 0x8C1C010F, // 0038 GETMET R7 R0 K15 + 0x7C1C0200, // 0039 CALL R7 1 + 0x4C200000, // 003A LDNIL R8 + 0x20200E08, // 003B NE R8 R7 R8 + 0x78220008, // 003C JMPF R8 #0046 + 0x88200F10, // 003D GETMBR R8 R7 K16 + 0xB8262200, // 003E GETNGBL R9 K17 + 0x88241312, // 003F GETMBR R9 R9 K18 + 0x88241313, // 0040 GETMBR R9 R9 K19 + 0x1C201009, // 0041 EQ R8 R8 R9 + 0x78220002, // 0042 JMPF R8 #0046 + 0x8C200114, // 0043 GETMET R8 R0 K20 + 0x7C200200, // 0044 CALL R8 1 + 0x70020000, // 0045 JMP #0047 + 0x70020000, // 0046 JMP #0048 + 0x7001FFEC, // 0047 JMP #0035 + 0x8C1C010F, // 0048 GETMET R7 R0 K15 + 0x7C1C0200, // 0049 CALL R7 1 + 0x4C200000, // 004A LDNIL R8 + 0x201C0E08, // 004B NE R7 R7 R8 + 0x781E000C, // 004C JMPF R7 #005A + 0x8C1C010F, // 004D GETMET R7 R0 K15 + 0x7C1C0200, // 004E CALL R7 1 + 0x881C0F10, // 004F GETMBR R7 R7 K16 + 0xB8222200, // 0050 GETNGBL R8 K17 + 0x88201112, // 0051 GETMBR R8 R8 K18 + 0x88201115, // 0052 GETMBR R8 R8 K21 + 0x1C1C0E08, // 0053 EQ R7 R7 R8 + 0x781E0004, // 0054 JMPF R7 #005A + 0x8C1C0114, // 0055 GETMET R7 R0 K20 + 0x7C1C0200, // 0056 CALL R7 1 + 0x8C1C0107, // 0057 GETMET R7 R0 K7 + 0x7C1C0200, // 0058 CALL R7 1 + 0x70020018, // 0059 JMP #0073 + 0x8C1C010F, // 005A GETMET R7 R0 K15 + 0x7C1C0200, // 005B CALL R7 1 + 0x4C200000, // 005C LDNIL R8 + 0x201C0E08, // 005D NE R7 R7 R8 + 0x781E000C, // 005E JMPF R7 #006C + 0x8C1C010F, // 005F GETMET R7 R0 K15 + 0x7C1C0200, // 0060 CALL R7 1 + 0x881C0F10, // 0061 GETMBR R7 R7 K16 + 0xB8222200, // 0062 GETNGBL R8 K17 + 0x88201112, // 0063 GETMBR R8 R8 K18 + 0x88201116, // 0064 GETMBR R8 R8 K22 + 0x1C1C0E08, // 0065 EQ R7 R7 R8 + 0x781E0004, // 0066 JMPF R7 #006C + 0x8C1C0114, // 0067 GETMET R7 R0 K20 + 0x7C1C0200, // 0068 CALL R7 1 + 0x8C1C0107, // 0069 GETMET R7 R0 K7 + 0x7C1C0200, // 006A CALL R7 1 + 0x70020006, // 006B JMP #0073 + 0x8C1C0106, // 006C GETMET R7 R0 K6 + 0x7C1C0200, // 006D CALL R7 1 + 0x741E0003, // 006E JMPT R7 #0073 + 0x8C1C0117, // 006F GETMET R7 R0 K23 + 0x58240018, // 0070 LDCONST R9 K24 + 0x7C1C0400, // 0071 CALL R7 2 + 0x70020000, // 0072 JMP #0074 + 0x7001FF9B, // 0073 JMP #0010 + 0x8C100119, // 0074 GETMET R4 R0 K25 + 0x7C100200, // 0075 CALL R4 1 + 0x8C100500, // 0076 GETMET R4 R2 K0 + 0x5818001A, // 0077 LDCONST R6 K26 + 0x7C100400, // 0078 CALL R4 2 + 0x8C100500, // 0079 GETMET R4 R2 K0 + 0x5818001B, // 007A LDCONST R6 K27 + 0x7C100400, // 007B CALL R4 2 + 0x5810001C, // 007C LDCONST R4 K28 + 0x60140010, // 007D GETGBL R5 G16 + 0x6018000C, // 007E GETGBL R6 G12 + 0x5C1C0400, // 007F MOVE R7 R2 + 0x7C180200, // 0080 CALL R6 1 + 0x04180D1E, // 0081 SUB R6 R6 K30 + 0x401A3A06, // 0082 CONNECT R6 K29 R6 + 0x7C140200, // 0083 CALL R5 1 + 0xA8020007, // 0084 EXBLK 0 #008D + 0x5C180A00, // 0085 MOVE R6 R5 + 0x7C180000, // 0086 CALL R6 0 + 0x241C0D1D, // 0087 GT R7 R6 K29 + 0x781E0000, // 0088 JMPF R7 #008A + 0x0010091F, // 0089 ADD R4 R4 K31 + 0x941C0406, // 008A GETIDX R7 R2 R6 + 0x00100807, // 008B ADD R4 R4 R7 + 0x7001FFF7, // 008C JMP #0085 + 0x58140020, // 008D LDCONST R5 K32 + 0xAC140200, // 008E CATCH R5 1 0 + 0xB0080000, // 008F RAISE 2 R0 R0 + 0x80040800, // 0090 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_additive_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ + be_nested_proto( + 12, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[14]) { /* constants */ + /* K0 */ be_nested_str_weak(process_multiplicative_expression), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(animation_dsl), + /* K5 */ be_nested_str_weak(Token), + /* K6 */ be_nested_str_weak(PLUS), + /* K7 */ be_nested_str_weak(MINUS), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + /* K11 */ be_nested_str_weak(is_computed_expression_string), + /* K12 */ be_nested_str_weak(is_anonymous_function), + /* K13 */ be_nested_str_weak(create_computation_closure_from_string), + }), + be_str_weak(process_additive_expression), + &be_const_str_solidified, + ( &(const binstruction[57]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C0C0600, // 0003 CALL R3 3 + 0x8C100101, // 0004 GETMET R4 R0 K1 + 0x7C100200, // 0005 CALL R4 1 + 0x74120021, // 0006 JMPT R4 #0029 + 0x8C100102, // 0007 GETMET R4 R0 K2 + 0x7C100200, // 0008 CALL R4 1 + 0x4C140000, // 0009 LDNIL R5 + 0x20140805, // 000A NE R5 R4 R5 + 0x7816001A, // 000B JMPF R5 #0027 + 0x88140903, // 000C GETMBR R5 R4 K3 + 0xB81A0800, // 000D GETNGBL R6 K4 + 0x88180D05, // 000E GETMBR R6 R6 K5 + 0x88180D06, // 000F GETMBR R6 R6 K6 + 0x1C140A06, // 0010 EQ R5 R5 R6 + 0x74160005, // 0011 JMPT R5 #0018 + 0x88140903, // 0012 GETMBR R5 R4 K3 + 0xB81A0800, // 0013 GETNGBL R6 K4 + 0x88180D05, // 0014 GETMBR R6 R6 K5 + 0x88180D07, // 0015 GETMBR R6 R6 K7 + 0x1C140A06, // 0016 EQ R5 R5 R6 + 0x7816000E, // 0017 JMPF R5 #0027 + 0x88140908, // 0018 GETMBR R5 R4 K8 + 0x8C180109, // 0019 GETMET R6 R0 K9 + 0x7C180200, // 001A CALL R6 1 + 0x8C180100, // 001B GETMET R6 R0 K0 + 0x5C200200, // 001C MOVE R8 R1 + 0x50240000, // 001D LDBOOL R9 0 0 + 0x7C180600, // 001E CALL R6 3 + 0x601C0018, // 001F GETGBL R7 G24 + 0x5820000A, // 0020 LDCONST R8 K10 + 0x5C240600, // 0021 MOVE R9 R3 + 0x5C280A00, // 0022 MOVE R10 R5 + 0x5C2C0C00, // 0023 MOVE R11 R6 + 0x7C1C0800, // 0024 CALL R7 4 + 0x5C0C0E00, // 0025 MOVE R3 R7 + 0x70020000, // 0026 JMP #0028 + 0x70020000, // 0027 JMP #0029 + 0x7001FFDA, // 0028 JMP #0004 + 0x780A000C, // 0029 JMPF R2 #0037 + 0x8C10010B, // 002A GETMET R4 R0 K11 + 0x5C180600, // 002B MOVE R6 R3 + 0x7C100400, // 002C CALL R4 2 + 0x78120008, // 002D JMPF R4 #0037 + 0x8C10010C, // 002E GETMET R4 R0 K12 + 0x5C180600, // 002F MOVE R6 R3 + 0x7C100400, // 0030 CALL R4 2 + 0x74120004, // 0031 JMPT R4 #0037 + 0x8C10010D, // 0032 GETMET R4 R0 K13 + 0x5C180600, // 0033 MOVE R6 R3 + 0x7C100400, // 0034 CALL R4 2 + 0x80040800, // 0035 RET 1 R4 + 0x70020000, // 0036 JMP #0038 + 0x80040600, // 0037 RET 1 R3 + 0x80000000, // 0038 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_object_reference +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name */ + be_nested_proto( + 10, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(introspect), + /* K1 */ be_nested_str_weak(symbol_table), + /* K2 */ be_nested_str_weak(contains), + /* K3 */ be_nested_str_weak(animation), + /* K4 */ be_nested_str_weak(sequence_names), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X2E_X20Make_X20sure_X20the_X20object_X20is_X20defined_X20before_X20use_X2E), + }), + be_str_weak(_validate_object_reference), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0xA802001E, // 0000 EXBLK 0 #0020 + 0xA40E0000, // 0001 IMPORT R3 K0 + 0x88100101, // 0002 GETMBR R4 R0 K1 + 0x8C100902, // 0003 GETMET R4 R4 K2 + 0x5C180200, // 0004 MOVE R6 R1 + 0x7C100400, // 0005 CALL R4 2 + 0x78120001, // 0006 JMPF R4 #0009 + 0xA8040001, // 0007 EXBLK 1 1 + 0x80000800, // 0008 RET 0 + 0x8C100702, // 0009 GETMET R4 R3 K2 + 0xB81A0600, // 000A GETNGBL R6 K3 + 0x5C1C0200, // 000B MOVE R7 R1 + 0x7C100600, // 000C CALL R4 3 + 0x78120001, // 000D JMPF R4 #0010 + 0xA8040001, // 000E EXBLK 1 1 + 0x80000800, // 000F RET 0 + 0x88100104, // 0010 GETMBR R4 R0 K4 + 0x8C100902, // 0011 GETMET R4 R4 K2 + 0x5C180200, // 0012 MOVE R6 R1 + 0x7C100400, // 0013 CALL R4 2 + 0x78120001, // 0014 JMPF R4 #0017 + 0xA8040001, // 0015 EXBLK 1 1 + 0x80000800, // 0016 RET 0 + 0x8C100105, // 0017 GETMET R4 R0 K5 + 0x60180018, // 0018 GETGBL R6 G24 + 0x581C0006, // 0019 LDCONST R7 K6 + 0x5C200200, // 001A MOVE R8 R1 + 0x5C240400, // 001B MOVE R9 R2 + 0x7C180600, // 001C CALL R6 3 + 0x7C100400, // 001D CALL R4 2 + 0xA8040001, // 001E EXBLK 1 1 + 0x70020003, // 001F JMP #0024 + 0xAC0C0002, // 0020 CATCH R3 0 2 + 0x70020000, // 0021 JMP #0023 + 0x70020000, // 0022 JMP #0024 + 0xB0080000, // 0023 RAISE 2 R0 R0 + 0x80000000, // 0024 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: process_event_handler ********************************************************************/ @@ -9276,6 +8792,207 @@ be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ /*******************************************************************/ +/******************************************************************** +** 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: transform_operand_for_closure +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_transform_operand_for_closure, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[12]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(animation_X2Ecreate_closure_value), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(return_X20_X28), + /* K5 */ be_nested_str_weak(_X20_X20), + /* K6 */ be_nested_str_weak(replace), + /* K7 */ be_nested_str_weak(_X20), + /* K8 */ be_nested_str_weak(_), + /* K9 */ be_nested_str_weak(_X28), + /* K10 */ be_nested_str_weak(animation_X2E), + /* K11 */ be_nested_str_weak(self_X2Eresolve_X28_X25s_X29), + }), + be_str_weak(transform_operand_for_closure), + &be_const_str_solidified, + ( &(const binstruction[69]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x280C0703, // 0005 GE R3 R3 K3 + 0x780E001A, // 0006 JMPF R3 #0022 + 0x8C0C0501, // 0007 GETMET R3 R2 K1 + 0x5C140200, // 0008 MOVE R5 R1 + 0x58180004, // 0009 LDCONST R6 K4 + 0x7C0C0600, // 000A CALL R3 3 + 0x54120007, // 000B LDINT R4 8 + 0x000C0604, // 000C ADD R3 R3 R4 + 0x6010000C, // 000D GETGBL R4 G12 + 0x5C140200, // 000E MOVE R5 R1 + 0x7C100200, // 000F CALL R4 1 + 0x54160004, // 0010 LDINT R5 5 + 0x04100805, // 0011 SUB R4 R4 R5 + 0x40140604, // 0012 CONNECT R5 R3 R4 + 0x94140205, // 0013 GETIDX R5 R1 R5 + 0x8C180501, // 0014 GETMET R6 R2 K1 + 0x5C200A00, // 0015 MOVE R8 R5 + 0x58240005, // 0016 LDCONST R9 K5 + 0x7C180600, // 0017 CALL R6 3 + 0x28180D03, // 0018 GE R6 R6 K3 + 0x781A0006, // 0019 JMPF R6 #0021 + 0x8C180506, // 001A GETMET R6 R2 K6 + 0x5C200A00, // 001B MOVE R8 R5 + 0x58240005, // 001C LDCONST R9 K5 + 0x58280007, // 001D LDCONST R10 K7 + 0x7C180800, // 001E CALL R6 4 + 0x5C140C00, // 001F MOVE R5 R6 + 0x7001FFF2, // 0020 JMP #0014 + 0x80040A00, // 0021 RET 1 R5 + 0x8C0C0501, // 0022 GETMET R3 R2 K1 + 0x5C140200, // 0023 MOVE R5 R1 + 0x58180008, // 0024 LDCONST R6 K8 + 0x7C0C0600, // 0025 CALL R3 3 + 0x280C0703, // 0026 GE R3 R3 K3 + 0x8C100501, // 0027 GETMET R4 R2 K1 + 0x5C180200, // 0028 MOVE R6 R1 + 0x581C0007, // 0029 LDCONST R7 K7 + 0x7C100600, // 002A CALL R4 3 + 0x28100903, // 002B GE R4 R4 K3 + 0x8C140501, // 002C GETMET R5 R2 K1 + 0x5C1C0200, // 002D MOVE R7 R1 + 0x58200009, // 002E LDCONST R8 K9 + 0x7C140600, // 002F CALL R5 3 + 0x28140B03, // 0030 GE R5 R5 K3 + 0x8C180501, // 0031 GETMET R6 R2 K1 + 0x5C200200, // 0032 MOVE R8 R1 + 0x5824000A, // 0033 LDCONST R9 K10 + 0x7C180600, // 0034 CALL R6 3 + 0x28180D03, // 0035 GE R6 R6 K3 + 0x780E000B, // 0036 JMPF R3 #0043 + 0x5C1C0800, // 0037 MOVE R7 R4 + 0x741E0009, // 0038 JMPT R7 #0043 + 0x5C1C0A00, // 0039 MOVE R7 R5 + 0x741E0007, // 003A JMPT R7 #0043 + 0x5C1C0C00, // 003B MOVE R7 R6 + 0x741E0005, // 003C JMPT R7 #0043 + 0x601C0018, // 003D GETGBL R7 G24 + 0x5820000B, // 003E LDCONST R8 K11 + 0x5C240200, // 003F MOVE R9 R1 + 0x7C1C0400, // 0040 CALL R7 2 + 0x80040E00, // 0041 RET 1 R7 + 0x70020000, // 0042 JMP #0044 + 0x80040200, // 0043 RET 1 R1 + 0x80000000, // 0044 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: skip_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_skip_statement, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(NEWLINE), + /* K6 */ be_nested_str_weak(EOF), + /* K7 */ be_nested_str_weak(next), + }), + be_str_weak(skip_statement), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x74060011, // 0002 JMPT R1 #0015 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x88080302, // 0005 GETMBR R2 R1 K2 + 0xB80E0600, // 0006 GETNGBL R3 K3 + 0x880C0704, // 0007 GETMBR R3 R3 K4 + 0x880C0705, // 0008 GETMBR R3 R3 K5 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A0005, // 000A JMPT R2 #0011 + 0x88080302, // 000B GETMBR R2 R1 K2 + 0xB80E0600, // 000C GETNGBL R3 K3 + 0x880C0704, // 000D GETMBR R3 R3 K4 + 0x880C0706, // 000E GETMBR R3 R3 K6 + 0x1C080403, // 000F EQ R2 R2 R3 + 0x780A0000, // 0010 JMPF R2 #0012 + 0x70020002, // 0011 JMP #0015 + 0x8C080107, // 0012 GETMET R2 R0 K7 + 0x7C080200, // 0013 CALL R2 1 + 0x7001FFEA, // 0014 JMP #0000 + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: transpile ********************************************************************/ @@ -9353,43 +9070,28 @@ be_local_closure(class_SimpleDSLTranspiler_transpile, /* name */ /******************************************************************** -** Solidified function: generate_default_strip_initialization +** Solidified function: process_value ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_value, /* name */ be_nested_proto( - 4, /* nstack */ - 1, /* argc */ + 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[ 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(), + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(process_expression), }), - be_str_weak(generate_default_strip_initialization), + be_str_weak(process_value), &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 + ( &(const binstruction[ 4]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x80040400, // 0003 RET 1 R2 }) ) ); @@ -9397,9 +9099,149 @@ be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization /******************************************************************** -** Solidified function: error +** Solidified function: process_property_assignment ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_error, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* name */ + be_nested_proto( + 15, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[26]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_identifier), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(DOT), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(symbol_table), + /* K8 */ be_nested_str_weak(contains), + /* K9 */ be_nested_str_weak(string), + /* K10 */ be_nested_str_weak(_validate_single_parameter), + /* K11 */ be_nested_str_weak(error), + /* K12 */ be_nested_str_weak(Sequences_X20like_X20_X27_X25s_X27_X20do_X20not_X20have_X20properties_X2E_X20Property_X20assignments_X20are_X20only_X20valid_X20for_X20animations_X20and_X20color_X20providers_X2E), + /* K13 */ be_nested_str_weak(expect_assign), + /* K14 */ be_nested_str_weak(process_value), + /* K15 */ be_nested_str_weak(property), + /* K16 */ be_nested_str_weak(collect_inline_comment), + /* K17 */ be_nested_str_weak(introspect), + /* K18 */ be_nested_str_weak(), + /* K19 */ be_nested_str_weak(animation), + /* K20 */ be_nested_str_weak(animation_X2E_X25s), + /* K21 */ be_nested_str_weak(_X25s_), + /* K22 */ be_nested_str_weak(add), + /* K23 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K24 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), + /* K25 */ be_nested_str_weak(skip_statement), + }), + be_str_weak(process_property_assignment), + &be_const_str_solidified, + ( &(const binstruction[90]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x4C0C0000, // 0004 LDNIL R3 + 0x20080403, // 0005 NE R2 R2 R3 + 0x780A0049, // 0006 JMPF R2 #0051 + 0x8C080101, // 0007 GETMET R2 R0 K1 + 0x7C080200, // 0008 CALL R2 1 + 0x88080502, // 0009 GETMBR R2 R2 K2 + 0xB80E0600, // 000A GETNGBL R3 K3 + 0x880C0704, // 000B GETMBR R3 R3 K4 + 0x880C0705, // 000C GETMBR R3 R3 K5 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x780A0041, // 000E JMPF R2 #0051 + 0x8C080106, // 000F GETMET R2 R0 K6 + 0x7C080200, // 0010 CALL R2 1 + 0x8C080100, // 0011 GETMET R2 R0 K0 + 0x7C080200, // 0012 CALL R2 1 + 0x880C0107, // 0013 GETMBR R3 R0 K7 + 0x8C0C0708, // 0014 GETMET R3 R3 K8 + 0x5C140200, // 0015 MOVE R5 R1 + 0x7C0C0400, // 0016 CALL R3 2 + 0x780E0015, // 0017 JMPF R3 #002E + 0x880C0107, // 0018 GETMBR R3 R0 K7 + 0x940C0601, // 0019 GETIDX R3 R3 R1 + 0x60100004, // 001A GETGBL R4 G4 + 0x5C140600, // 001B MOVE R5 R3 + 0x7C100200, // 001C CALL R4 1 + 0x20100909, // 001D NE R4 R4 K9 + 0x78120008, // 001E JMPF R4 #0028 + 0x60100005, // 001F GETGBL R4 G5 + 0x5C140600, // 0020 MOVE R5 R3 + 0x7C100200, // 0021 CALL R4 1 + 0x8C14010A, // 0022 GETMET R5 R0 K10 + 0x5C1C0800, // 0023 MOVE R7 R4 + 0x5C200400, // 0024 MOVE R8 R2 + 0x5C240600, // 0025 MOVE R9 R3 + 0x7C140800, // 0026 CALL R5 4 + 0x70020005, // 0027 JMP #002E + 0x8C10010B, // 0028 GETMET R4 R0 K11 + 0x60180018, // 0029 GETGBL R6 G24 + 0x581C000C, // 002A LDCONST R7 K12 + 0x5C200200, // 002B MOVE R8 R1 + 0x7C180400, // 002C CALL R6 2 + 0x7C100400, // 002D CALL R4 2 + 0x8C0C010D, // 002E GETMET R3 R0 K13 + 0x7C0C0200, // 002F CALL R3 1 + 0x8C0C010E, // 0030 GETMET R3 R0 K14 + 0x5814000F, // 0031 LDCONST R5 K15 + 0x7C0C0400, // 0032 CALL R3 2 + 0x8C100110, // 0033 GETMET R4 R0 K16 + 0x7C100200, // 0034 CALL R4 1 + 0xA4162200, // 0035 IMPORT R5 K17 + 0x58180012, // 0036 LDCONST R6 K18 + 0x8C1C0B08, // 0037 GETMET R7 R5 K8 + 0xB8262600, // 0038 GETNGBL R9 K19 + 0x5C280200, // 0039 MOVE R10 R1 + 0x7C1C0600, // 003A CALL R7 3 + 0x781E0005, // 003B JMPF R7 #0042 + 0x601C0018, // 003C GETGBL R7 G24 + 0x58200014, // 003D LDCONST R8 K20 + 0x5C240200, // 003E MOVE R9 R1 + 0x7C1C0400, // 003F CALL R7 2 + 0x5C180E00, // 0040 MOVE R6 R7 + 0x70020004, // 0041 JMP #0047 + 0x601C0018, // 0042 GETGBL R7 G24 + 0x58200015, // 0043 LDCONST R8 K21 + 0x5C240200, // 0044 MOVE R9 R1 + 0x7C1C0400, // 0045 CALL R7 2 + 0x5C180E00, // 0046 MOVE R6 R7 + 0x8C1C0116, // 0047 GETMET R7 R0 K22 + 0x60240018, // 0048 GETGBL R9 G24 + 0x58280017, // 0049 LDCONST R10 K23 + 0x5C2C0C00, // 004A MOVE R11 R6 + 0x5C300400, // 004B MOVE R12 R2 + 0x5C340600, // 004C MOVE R13 R3 + 0x5C380800, // 004D MOVE R14 R4 + 0x7C240A00, // 004E CALL R9 5 + 0x7C1C0400, // 004F CALL R7 2 + 0x70020007, // 0050 JMP #0059 + 0x8C08010B, // 0051 GETMET R2 R0 K11 + 0x60100018, // 0052 GETGBL R4 G24 + 0x58140018, // 0053 LDCONST R5 K24 + 0x5C180200, // 0054 MOVE R6 R1 + 0x7C100400, // 0055 CALL R4 2 + 0x7C080400, // 0056 CALL R2 2 + 0x8C080119, // 0057 GETMET R2 R0 K25 + 0x7C080200, // 0058 CALL R2 1 + 0x80000000, // 0059 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_computation_closure_from_string +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string, /* name */ be_nested_proto( 9, /* nstack */ 2, /* argc */ @@ -9409,36 +9251,46 @@ be_local_closure(class_SimpleDSLTranspiler_error, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(line), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(errors), - /* K4 */ be_nested_str_weak(push), - /* K5 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(transform_expression_for_closure), + /* K2 */ be_nested_str_weak(find), + /* K3 */ be_nested_str_weak(_X20_X20), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(replace), + /* K6 */ be_nested_str_weak(_X20), + /* K7 */ be_nested_str_weak(def_X20_X28self_X29_X20return_X20_X25s_X20end), + /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), }), - be_str_weak(error), + be_str_weak(create_computation_closure_from_string), &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[26]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0101, // 0001 GETMET R3 R0 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x8C100502, // 0004 GETMET R4 R2 K2 + 0x5C180600, // 0005 MOVE R6 R3 + 0x581C0003, // 0006 LDCONST R7 K3 + 0x7C100600, // 0007 CALL R4 3 + 0x28100904, // 0008 GE R4 R4 K4 + 0x78120006, // 0009 JMPF R4 #0011 + 0x8C100505, // 000A GETMET R4 R2 K5 + 0x5C180600, // 000B MOVE R6 R3 + 0x581C0003, // 000C LDCONST R7 K3 + 0x58200006, // 000D LDCONST R8 K6 + 0x7C100800, // 000E CALL R4 4 + 0x5C0C0800, // 000F MOVE R3 R4 + 0x7001FFF2, // 0010 JMP #0004 + 0x60100018, // 0011 GETGBL R4 G24 + 0x58140007, // 0012 LDCONST R5 K7 + 0x5C180600, // 0013 MOVE R6 R3 + 0x7C100400, // 0014 CALL R4 2 + 0x60140018, // 0015 GETGBL R5 G24 + 0x58180008, // 0016 LDCONST R6 K8 + 0x5C1C0800, // 0017 MOVE R7 R4 + 0x7C140400, // 0018 CALL R5 2 + 0x80040A00, // 0019 RET 1 R5 }) ) ); @@ -9446,9 +9298,287 @@ be_local_closure(class_SimpleDSLTranspiler_error, /* name */ /******************************************************************** -** Solidified function: check_right_brace +** Solidified function: process_function_call ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* name */ + be_nested_proto( + 10, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[22]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(animation_dsl), + /* K4 */ be_nested_str_weak(Token), + /* K5 */ be_nested_str_weak(IDENTIFIER), + /* K6 */ be_nested_str_weak(KEYWORD), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(next), + /* K9 */ be_nested_str_weak(error), + /* K10 */ be_nested_str_weak(Expected_X20function_X20name), + /* K11 */ be_nested_str_weak(nil), + /* K12 */ be_nested_str_weak(is_math_method), + /* K13 */ be_nested_str_weak(process_function_arguments), + /* K14 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K15 */ be_nested_str_weak(animation), + /* K16 */ be_nested_str_weak(is_user_function), + /* K17 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K18 */ be_nested_str_weak(engine), + /* K19 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), + /* K20 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), + /* K21 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + }), + be_str_weak(process_function_call), + &be_const_str_solidified, + ( &(const binstruction[75]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x580C0001, // 0002 LDCONST R3 K1 + 0x4C100000, // 0003 LDNIL R4 + 0x20100404, // 0004 NE R4 R2 R4 + 0x7812000F, // 0005 JMPF R4 #0016 + 0x88100502, // 0006 GETMBR R4 R2 K2 + 0xB8160600, // 0007 GETNGBL R5 K3 + 0x88140B04, // 0008 GETMBR R5 R5 K4 + 0x88140B05, // 0009 GETMBR R5 R5 K5 + 0x1C100805, // 000A EQ R4 R4 R5 + 0x74120005, // 000B JMPT R4 #0012 + 0x88100502, // 000C GETMBR R4 R2 K2 + 0xB8160600, // 000D GETNGBL R5 K3 + 0x88140B04, // 000E GETMBR R5 R5 K4 + 0x88140B06, // 000F GETMBR R5 R5 K6 + 0x1C100805, // 0010 EQ R4 R4 R5 + 0x78120003, // 0011 JMPF R4 #0016 + 0x880C0507, // 0012 GETMBR R3 R2 K7 + 0x8C100108, // 0013 GETMET R4 R0 K8 + 0x7C100200, // 0014 CALL R4 1 + 0x70020003, // 0015 JMP #001A + 0x8C100109, // 0016 GETMET R4 R0 K9 + 0x5818000A, // 0017 LDCONST R6 K10 + 0x7C100400, // 0018 CALL R4 2 + 0x80061600, // 0019 RET 1 K11 + 0x8C10010C, // 001A GETMET R4 R0 K12 + 0x5C180600, // 001B MOVE R6 R3 + 0x7C100400, // 001C CALL R4 2 + 0x78120007, // 001D JMPF R4 #0026 + 0x8C10010D, // 001E GETMET R4 R0 K13 + 0x7C100200, // 001F CALL R4 1 + 0x60140018, // 0020 GETGBL R5 G24 + 0x5818000E, // 0021 LDCONST R6 K14 + 0x5C1C0600, // 0022 MOVE R7 R3 + 0x5C200800, // 0023 MOVE R8 R4 + 0x7C140600, // 0024 CALL R5 3 + 0x80040A00, // 0025 RET 1 R5 + 0x8C10010D, // 0026 GETMET R4 R0 K13 + 0x7C100200, // 0027 CALL R4 1 + 0xB8161E00, // 0028 GETNGBL R5 K15 + 0x8C140B10, // 0029 GETMET R5 R5 K16 + 0x5C1C0600, // 002A MOVE R7 R3 + 0x7C140400, // 002B CALL R5 2 + 0x7816000E, // 002C JMPF R5 #003C + 0x20140901, // 002D NE R5 R4 K1 + 0x78160004, // 002E JMPF R5 #0034 + 0x60140018, // 002F GETGBL R5 G24 + 0x58180011, // 0030 LDCONST R6 K17 + 0x5C1C0800, // 0031 MOVE R7 R4 + 0x7C140400, // 0032 CALL R5 2 + 0x70020000, // 0033 JMP #0035 + 0x58140012, // 0034 LDCONST R5 K18 + 0x60180018, // 0035 GETGBL R6 G24 + 0x581C0013, // 0036 LDCONST R7 K19 + 0x5C200600, // 0037 MOVE R8 R3 + 0x5C240A00, // 0038 MOVE R9 R5 + 0x7C180600, // 0039 CALL R6 3 + 0x80040C00, // 003A RET 1 R6 + 0x7002000D, // 003B JMP #004A + 0x20140901, // 003C NE R5 R4 K1 + 0x78160006, // 003D JMPF R5 #0045 + 0x60140018, // 003E GETGBL R5 G24 + 0x58180014, // 003F LDCONST R6 K20 + 0x5C1C0600, // 0040 MOVE R7 R3 + 0x5C200800, // 0041 MOVE R8 R4 + 0x7C140600, // 0042 CALL R5 3 + 0x80040A00, // 0043 RET 1 R5 + 0x70020004, // 0044 JMP #004A + 0x60140018, // 0045 GETGBL R5 G24 + 0x58180015, // 0046 LDCONST R6 K21 + 0x5C1C0600, // 0047 MOVE R7 R3 + 0x7C140400, // 0048 CALL R5 2 + 0x80040A00, // 0049 RET 1 R5 + 0x80000000, // 004A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_identifier_char +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_is_identifier_char, /* name */ + be_nested_proto( + 3, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(a), + /* K1 */ be_nested_str_weak(z), + /* K2 */ be_nested_str_weak(A), + /* K3 */ be_nested_str_weak(Z), + /* K4 */ be_nested_str_weak(0), + /* K5 */ be_nested_str_weak(9), + /* K6 */ be_nested_str_weak(_), + }), + be_str_weak(is_identifier_char), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0x28080300, // 0000 GE R2 R1 K0 + 0x780A0001, // 0001 JMPF R2 #0004 + 0x18080301, // 0002 LE R2 R1 K1 + 0x740A000A, // 0003 JMPT R2 #000F + 0x28080302, // 0004 GE R2 R1 K2 + 0x780A0001, // 0005 JMPF R2 #0008 + 0x18080303, // 0006 LE R2 R1 K3 + 0x740A0006, // 0007 JMPT R2 #000F + 0x28080304, // 0008 GE R2 R1 K4 + 0x780A0001, // 0009 JMPF R2 #000C + 0x18080305, // 000A LE R2 R1 K5 + 0x740A0002, // 000B JMPT R2 #000F + 0x1C080306, // 000C EQ R2 R1 K6 + 0x740A0000, // 000D JMPT R2 #000F + 0x50080001, // 000E LDBOOL R2 0 1 + 0x50080200, // 000F LDBOOL R2 1 0 + 0x80040400, // 0010 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_array_literal +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[21]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_bracket), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_bracket), + /* K3 */ be_nested_str_weak(process_value), + /* K4 */ be_nested_str_weak(array_element), + /* K5 */ be_nested_str_weak(push), + /* K6 */ be_nested_str_weak(current), + /* K7 */ be_nested_str_weak(type), + /* K8 */ be_nested_str_weak(animation_dsl), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(COMMA), + /* K11 */ be_nested_str_weak(next), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), + /* K14 */ be_nested_str_weak(expect_right_bracket), + /* K15 */ be_nested_str_weak(_X5B), + /* K16 */ be_const_int(0), + /* K17 */ be_const_int(1), + /* K18 */ be_nested_str_weak(_X2C_X20), + /* K19 */ be_nested_str_weak(stop_iteration), + /* K20 */ be_nested_str_weak(_X5D), + }), + be_str_weak(process_array_literal), + &be_const_str_solidified, + ( &(const binstruction[64]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x60040012, // 0002 GETGBL R1 G18 + 0x7C040000, // 0003 CALL R1 0 + 0x8C080101, // 0004 GETMET R2 R0 K1 + 0x7C080200, // 0005 CALL R2 1 + 0x740A0020, // 0006 JMPT R2 #0028 + 0x8C080102, // 0007 GETMET R2 R0 K2 + 0x7C080200, // 0008 CALL R2 1 + 0x740A001D, // 0009 JMPT R2 #0028 + 0x8C080103, // 000A GETMET R2 R0 K3 + 0x58100004, // 000B LDCONST R4 K4 + 0x7C080400, // 000C CALL R2 2 + 0x8C0C0305, // 000D GETMET R3 R1 K5 + 0x5C140400, // 000E MOVE R5 R2 + 0x7C0C0400, // 000F CALL R3 2 + 0x8C0C0106, // 0010 GETMET R3 R0 K6 + 0x7C0C0200, // 0011 CALL R3 1 + 0x4C100000, // 0012 LDNIL R4 + 0x200C0604, // 0013 NE R3 R3 R4 + 0x780E000A, // 0014 JMPF R3 #0020 + 0x8C0C0106, // 0015 GETMET R3 R0 K6 + 0x7C0C0200, // 0016 CALL R3 1 + 0x880C0707, // 0017 GETMBR R3 R3 K7 + 0xB8121000, // 0018 GETNGBL R4 K8 + 0x88100909, // 0019 GETMBR R4 R4 K9 + 0x8810090A, // 001A GETMBR R4 R4 K10 + 0x1C0C0604, // 001B EQ R3 R3 R4 + 0x780E0002, // 001C JMPF R3 #0020 + 0x8C0C010B, // 001D GETMET R3 R0 K11 + 0x7C0C0200, // 001E CALL R3 1 + 0x70020006, // 001F JMP #0027 + 0x8C0C0102, // 0020 GETMET R3 R0 K2 + 0x7C0C0200, // 0021 CALL R3 1 + 0x740E0003, // 0022 JMPT R3 #0027 + 0x8C0C010C, // 0023 GETMET R3 R0 K12 + 0x5814000D, // 0024 LDCONST R5 K13 + 0x7C0C0400, // 0025 CALL R3 2 + 0x70020000, // 0026 JMP #0028 + 0x7001FFDB, // 0027 JMP #0004 + 0x8C08010E, // 0028 GETMET R2 R0 K14 + 0x7C080200, // 0029 CALL R2 1 + 0x5808000F, // 002A LDCONST R2 K15 + 0x600C0010, // 002B GETGBL R3 G16 + 0x6010000C, // 002C GETGBL R4 G12 + 0x5C140200, // 002D MOVE R5 R1 + 0x7C100200, // 002E CALL R4 1 + 0x04100911, // 002F SUB R4 R4 K17 + 0x40122004, // 0030 CONNECT R4 K16 R4 + 0x7C0C0200, // 0031 CALL R3 1 + 0xA8020007, // 0032 EXBLK 0 #003B + 0x5C100600, // 0033 MOVE R4 R3 + 0x7C100000, // 0034 CALL R4 0 + 0x24140910, // 0035 GT R5 R4 K16 + 0x78160000, // 0036 JMPF R5 #0038 + 0x00080512, // 0037 ADD R2 R2 K18 + 0x94140204, // 0038 GETIDX R5 R1 R4 + 0x00080405, // 0039 ADD R2 R2 R5 + 0x7001FFF7, // 003A JMP #0033 + 0x580C0013, // 003B LDCONST R3 K19 + 0xAC0C0200, // 003C CATCH R3 1 0 + 0xB0080000, // 003D RAISE 2 R0 R0 + 0x00080514, // 003E ADD R2 R2 K20 + 0x80040400, // 003F RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: peek +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_peek, /* name */ be_nested_proto( 4, /* nstack */ 1, /* argc */ @@ -9458,30 +9588,28 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(animation_dsl), - /* K3 */ be_nested_str_weak(Token), - /* K4 */ be_nested_str_weak(RIGHT_BRACE), + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(pos), + /* K1 */ be_const_int(1), + /* K2 */ be_nested_str_weak(tokens), }), - be_str_weak(check_right_brace), + be_str_weak(peek), &be_const_str_solidified, ( &(const binstruction[14]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0005, // 0004 JMPF R2 #000B - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0xB80E0400, // 0006 GETNGBL R3 K2 - 0x880C0703, // 0007 GETMBR R3 R3 K3 - 0x880C0704, // 0008 GETMBR R3 R3 K4 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0000, // 000A JMPT R2 #000C - 0x50080001, // 000B LDBOOL R2 0 1 - 0x50080200, // 000C LDBOOL R2 1 0 - 0x80040400, // 000D RET 1 R2 + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x00040301, // 0001 ADD R1 R1 K1 + 0x6008000C, // 0002 GETGBL R2 G12 + 0x880C0102, // 0003 GETMBR R3 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x14040202, // 0005 LT R1 R1 R2 + 0x78060004, // 0006 JMPF R1 #000C + 0x88040100, // 0007 GETMBR R1 R0 K0 + 0x00040301, // 0008 ADD R1 R1 K1 + 0x88080102, // 0009 GETMBR R2 R0 K2 + 0x94040401, // 000A GETIDX R1 R2 R1 + 0x70020000, // 000B JMP #000D + 0x4C040000, // 000C LDNIL R1 + 0x80040200, // 000D RET 1 R1 }) ) ); @@ -9539,125 +9667,12 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_bracket, /* name */ /******************************************************************** -** Solidified function: create_computation_closure_from_string +** Solidified function: is_computed_expression ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string, /* name */ +be_local_closure(class_SimpleDSLTranspiler_is_computed_expression, /* name */ be_nested_proto( 9, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(transform_expression_for_closure), - /* K2 */ be_nested_str_weak(find), - /* K3 */ be_nested_str_weak(_X20_X20), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(replace), - /* K6 */ be_nested_str_weak(_X20), - /* K7 */ be_nested_str_weak(def_X20_X28self_X2C_X20param_name_X2C_X20time_ms_X29_X20return_X20_X28_X25s_X29_X20end), - /* K8 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20_X25s_X29), - }), - be_str_weak(create_computation_closure_from_string), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0101, // 0001 GETMET R3 R0 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C0C0400, // 0003 CALL R3 2 - 0x8C100502, // 0004 GETMET R4 R2 K2 - 0x5C180600, // 0005 MOVE R6 R3 - 0x581C0003, // 0006 LDCONST R7 K3 - 0x7C100600, // 0007 CALL R4 3 - 0x28100904, // 0008 GE R4 R4 K4 - 0x78120006, // 0009 JMPF R4 #0011 - 0x8C100505, // 000A GETMET R4 R2 K5 - 0x5C180600, // 000B MOVE R6 R3 - 0x581C0003, // 000C LDCONST R7 K3 - 0x58200006, // 000D LDCONST R8 K6 - 0x7C100800, // 000E CALL R4 4 - 0x5C0C0800, // 000F MOVE R3 R4 - 0x7001FFF2, // 0010 JMP #0004 - 0x60100018, // 0011 GETGBL R4 G24 - 0x58140007, // 0012 LDCONST R5 K7 - 0x5C180600, // 0013 MOVE R6 R3 - 0x7C100400, // 0014 CALL R4 2 - 0x60140018, // 0015 GETGBL R5 G24 - 0x58180008, // 0016 LDCONST R6 K8 - 0x5C1C0800, // 0017 MOVE R7 R4 - 0x7C140400, // 0018 CALL R5 2 - 0x80040A00, // 0019 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_statement, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(animation_dsl), - /* K4 */ be_nested_str_weak(Token), - /* K5 */ be_nested_str_weak(NEWLINE), - /* K6 */ be_nested_str_weak(EOF), - /* K7 */ be_nested_str_weak(next), - }), - be_str_weak(skip_statement), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060011, // 0002 JMPT R1 #0015 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x88080302, // 0005 GETMBR R2 R1 K2 - 0xB80E0600, // 0006 GETNGBL R3 K3 - 0x880C0704, // 0007 GETMBR R3 R3 K4 - 0x880C0705, // 0008 GETMBR R3 R3 K5 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x740A0005, // 000A JMPT R2 #0011 - 0x88080302, // 000B GETMBR R2 R1 K2 - 0xB80E0600, // 000C GETNGBL R3 K3 - 0x880C0704, // 000D GETMBR R3 R3 K4 - 0x880C0706, // 000E GETMBR R3 R3 K6 - 0x1C080403, // 000F EQ R2 R2 R3 - 0x780A0000, // 0010 JMPF R2 #0012 - 0x70020002, // 0011 JMP #0015 - 0x8C080107, // 0012 GETMET R2 R0 K7 - 0x7C080200, // 0013 CALL R2 1 - 0x7001FFEA, // 0014 JMP #0000 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _create_instance_for_validation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ + 4, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -9665,174 +9680,69 @@ be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(MockEngine), - /* K2 */ be_nested_str_weak(introspect), - /* K3 */ be_nested_str_weak(contains), - /* K4 */ be_nested_str_weak(animation), - /* K5 */ be_nested_str_weak(class), - /* K6 */ be_nested_str_weak(function), + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(_X28), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(animation_X2Eglobal), + /* K5 */ be_nested_str_weak(animation_X2E), + /* K6 */ be_nested_str_weak(_), }), - be_str_weak(_create_instance_for_validation), + be_str_weak(is_computed_expression), &be_const_str_solidified, - ( &(const binstruction[39]) { /* code */ - 0xA802001E, // 0000 EXBLK 0 #0020 - 0xB80A0000, // 0001 GETNGBL R2 K0 - 0x8C080501, // 0002 GETMET R2 R2 K1 - 0x7C080200, // 0003 CALL R2 1 - 0xA40E0400, // 0004 IMPORT R3 K2 - 0x8C100703, // 0005 GETMET R4 R3 K3 - 0xB81A0800, // 0006 GETNGBL R6 K4 - 0x5C1C0200, // 0007 MOVE R7 R1 - 0x7C100600, // 0008 CALL R4 3 - 0x78120010, // 0009 JMPF R4 #001B - 0xB8120800, // 000A GETNGBL R4 K4 - 0x88100801, // 000B GETMBR R4 R4 R1 - 0x60140004, // 000C GETGBL R5 G4 - 0x5C180800, // 000D MOVE R6 R4 - 0x7C140200, // 000E CALL R5 1 - 0x1C140B05, // 000F EQ R5 R5 K5 - 0x74160004, // 0010 JMPT R5 #0016 - 0x60140004, // 0011 GETGBL R5 G4 - 0x5C180800, // 0012 MOVE R6 R4 - 0x7C140200, // 0013 CALL R5 1 - 0x1C140B06, // 0014 EQ R5 R5 K6 - 0x78160004, // 0015 JMPF R5 #001B - 0x5C140800, // 0016 MOVE R5 R4 - 0x5C180400, // 0017 MOVE R6 R2 - 0x7C140200, // 0018 CALL R5 1 - 0xA8040001, // 0019 EXBLK 1 1 - 0x80040A00, // 001A RET 1 R5 - 0x4C100000, // 001B LDNIL R4 - 0xA8040001, // 001C EXBLK 1 1 - 0x80040800, // 001D RET 1 R4 - 0xA8040001, // 001E EXBLK 1 1 - 0x70020005, // 001F JMP #0026 - 0xAC080002, // 0020 CATCH R2 0 2 - 0x70020002, // 0021 JMP #0025 - 0x4C100000, // 0022 LDNIL R4 - 0x80040800, // 0023 RET 1 R4 - 0x70020000, // 0024 JMP #0026 - 0xB0080000, // 0025 RAISE 2 R0 R0 - 0x80000000, // 0026 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_function_arguments -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[21]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_paren), - /* K3 */ be_nested_str_weak(skip_whitespace), - /* K4 */ be_nested_str_weak(process_value), - /* K5 */ be_nested_str_weak(argument), - /* K6 */ be_nested_str_weak(push), - /* K7 */ be_nested_str_weak(current), - /* K8 */ be_nested_str_weak(type), - /* K9 */ be_nested_str_weak(animation_dsl), - /* K10 */ be_nested_str_weak(Token), - /* K11 */ be_nested_str_weak(COMMA), - /* K12 */ be_nested_str_weak(next), - /* K13 */ be_nested_str_weak(error), - /* K14 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K15 */ be_nested_str_weak(expect_right_paren), - /* K16 */ be_nested_str_weak(), - /* K17 */ be_const_int(0), - /* K18 */ be_const_int(1), - /* K19 */ be_nested_str_weak(_X2C_X20), - /* K20 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(process_function_arguments), - &be_const_str_solidified, - ( &(const binstruction[73]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x60040012, // 0002 GETGBL R1 G18 - 0x7C040000, // 0003 CALL R1 0 - 0x8C080101, // 0004 GETMET R2 R0 K1 - 0x7C080200, // 0005 CALL R2 1 - 0x740A002A, // 0006 JMPT R2 #0032 - 0x8C080102, // 0007 GETMET R2 R0 K2 - 0x7C080200, // 0008 CALL R2 1 - 0x740A0027, // 0009 JMPT R2 #0032 - 0x8C080103, // 000A GETMET R2 R0 K3 - 0x7C080200, // 000B CALL R2 1 - 0x8C080102, // 000C GETMET R2 R0 K2 - 0x7C080200, // 000D CALL R2 1 - 0x780A0000, // 000E JMPF R2 #0010 - 0x70020021, // 000F JMP #0032 - 0x8C080104, // 0010 GETMET R2 R0 K4 - 0x58100005, // 0011 LDCONST R4 K5 - 0x7C080400, // 0012 CALL R2 2 - 0x8C0C0306, // 0013 GETMET R3 R1 K6 - 0x5C140400, // 0014 MOVE R5 R2 - 0x7C0C0400, // 0015 CALL R3 2 - 0x8C0C0103, // 0016 GETMET R3 R0 K3 - 0x7C0C0200, // 0017 CALL R3 1 - 0x8C0C0107, // 0018 GETMET R3 R0 K7 - 0x7C0C0200, // 0019 CALL R3 1 - 0x4C100000, // 001A LDNIL R4 - 0x200C0604, // 001B NE R3 R3 R4 - 0x780E000C, // 001C JMPF R3 #002A - 0x8C0C0107, // 001D GETMET R3 R0 K7 - 0x7C0C0200, // 001E CALL R3 1 - 0x880C0708, // 001F GETMBR R3 R3 K8 - 0xB8121200, // 0020 GETNGBL R4 K9 - 0x8810090A, // 0021 GETMBR R4 R4 K10 - 0x8810090B, // 0022 GETMBR R4 R4 K11 - 0x1C0C0604, // 0023 EQ R3 R3 R4 - 0x780E0004, // 0024 JMPF R3 #002A - 0x8C0C010C, // 0025 GETMET R3 R0 K12 - 0x7C0C0200, // 0026 CALL R3 1 - 0x8C0C0103, // 0027 GETMET R3 R0 K3 - 0x7C0C0200, // 0028 CALL R3 1 - 0x70020006, // 0029 JMP #0031 - 0x8C0C0102, // 002A GETMET R3 R0 K2 - 0x7C0C0200, // 002B CALL R3 1 - 0x740E0003, // 002C JMPT R3 #0031 - 0x8C0C010D, // 002D GETMET R3 R0 K13 - 0x5814000E, // 002E LDCONST R5 K14 - 0x7C0C0400, // 002F CALL R3 2 - 0x70020000, // 0030 JMP #0032 - 0x7001FFD1, // 0031 JMP #0004 - 0x8C08010F, // 0032 GETMET R2 R0 K15 - 0x7C080200, // 0033 CALL R2 1 - 0x58080010, // 0034 LDCONST R2 K16 - 0x600C0010, // 0035 GETGBL R3 G16 - 0x6010000C, // 0036 GETGBL R4 G12 - 0x5C140200, // 0037 MOVE R5 R1 - 0x7C100200, // 0038 CALL R4 1 - 0x04100912, // 0039 SUB R4 R4 K18 - 0x40122204, // 003A CONNECT R4 K17 R4 - 0x7C0C0200, // 003B CALL R3 1 - 0xA8020007, // 003C EXBLK 0 #0045 - 0x5C100600, // 003D MOVE R4 R3 - 0x7C100000, // 003E CALL R4 0 - 0x24140911, // 003F GT R5 R4 K17 - 0x78160000, // 0040 JMPF R5 #0042 - 0x00080513, // 0041 ADD R2 R2 K19 - 0x94140204, // 0042 GETIDX R5 R1 R4 - 0x00080405, // 0043 ADD R2 R2 R5 - 0x7001FFF7, // 0044 JMP #003D - 0x580C0014, // 0045 LDCONST R3 K20 - 0xAC0C0200, // 0046 CATCH R3 1 0 - 0xB0080000, // 0047 RAISE 2 R0 R0 - 0x80040400, // 0048 RET 1 R2 + ( &(const binstruction[52]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x8C140901, // 0001 GETMET R5 R4 K1 + 0x5C1C0200, // 0002 MOVE R7 R1 + 0x58200002, // 0003 LDCONST R8 K2 + 0x7C140600, // 0004 CALL R5 3 + 0x28140B03, // 0005 GE R5 R5 K3 + 0x7416002A, // 0006 JMPT R5 #0032 + 0x8C140901, // 0007 GETMET R5 R4 K1 + 0x5C1C0600, // 0008 MOVE R7 R3 + 0x58200002, // 0009 LDCONST R8 K2 + 0x7C140600, // 000A CALL R5 3 + 0x28140B03, // 000B GE R5 R5 K3 + 0x74160024, // 000C JMPT R5 #0032 + 0x8C140901, // 000D GETMET R5 R4 K1 + 0x5C1C0200, // 000E MOVE R7 R1 + 0x58200004, // 000F LDCONST R8 K4 + 0x7C140600, // 0010 CALL R5 3 + 0x28140B03, // 0011 GE R5 R5 K3 + 0x7416001E, // 0012 JMPT R5 #0032 + 0x8C140901, // 0013 GETMET R5 R4 K1 + 0x5C1C0600, // 0014 MOVE R7 R3 + 0x58200004, // 0015 LDCONST R8 K4 + 0x7C140600, // 0016 CALL R5 3 + 0x28140B03, // 0017 GE R5 R5 K3 + 0x74160018, // 0018 JMPT R5 #0032 + 0x8C140901, // 0019 GETMET R5 R4 K1 + 0x5C1C0200, // 001A MOVE R7 R1 + 0x58200005, // 001B LDCONST R8 K5 + 0x7C140600, // 001C CALL R5 3 + 0x28140B03, // 001D GE R5 R5 K3 + 0x74160012, // 001E JMPT R5 #0032 + 0x8C140901, // 001F GETMET R5 R4 K1 + 0x5C1C0600, // 0020 MOVE R7 R3 + 0x58200005, // 0021 LDCONST R8 K5 + 0x7C140600, // 0022 CALL R5 3 + 0x28140B03, // 0023 GE R5 R5 K3 + 0x7416000C, // 0024 JMPT R5 #0032 + 0x8C140901, // 0025 GETMET R5 R4 K1 + 0x5C1C0200, // 0026 MOVE R7 R1 + 0x58200006, // 0027 LDCONST R8 K6 + 0x7C140600, // 0028 CALL R5 3 + 0x28140B03, // 0029 GE R5 R5 K3 + 0x74160006, // 002A JMPT R5 #0032 + 0x8C140901, // 002B GETMET R5 R4 K1 + 0x5C1C0600, // 002C MOVE R7 R3 + 0x58200006, // 002D LDCONST R8 K6 + 0x7C140600, // 002E CALL R5 3 + 0x28140B03, // 002F GE R5 R5 K3 + 0x74160000, // 0030 JMPT R5 #0032 + 0x50140001, // 0031 LDBOOL R5 0 1 + 0x50140200, // 0032 LDBOOL R5 1 0 + 0x80040A00, // 0033 RET 1 R5 }) ) ); @@ -9863,7 +9773,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable, /* K7 */ be_nested_str_weak(_), /* K8 */ be_const_int(2), /* K9 */ be_const_int(1), - /* K10 */ be_nested_str_weak(_create_animation_instance_for_validation), + /* K10 */ be_nested_str_weak(_create_instance_for_validation), /* K11 */ be_nested_str_weak(at_end), /* K12 */ be_nested_str_weak(check_right_paren), /* K13 */ be_nested_str_weak(skip_whitespace_including_newlines), @@ -10030,9 +9940,180 @@ be_local_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable, /******************************************************************** -** Solidified function: _validate_animation_factory_exists +** Solidified function: generate_default_strip_initialization ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* name */ +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: expect_right_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_PAREN), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20_X27_X29_X27), + }), + be_str_weak(expect_right_paren), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x8C080105, // 000B GETMET R2 R0 K5 + 0x7C080200, // 000C CALL R2 1 + 0x70020002, // 000D JMP #0011 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x58100007, // 000F LDCONST R4 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x80000000, // 0011 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_errors +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_errors, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(errors), + }), + be_str_weak(get_errors), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_error_report +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(has_errors), + /* K1 */ be_nested_str_weak(No_X20compilation_X20errors), + /* K2 */ be_nested_str_weak(Compilation_X20errors_X3A_X0A), + /* K3 */ be_nested_str_weak(errors), + /* K4 */ be_nested_str_weak(_X20_X20), + /* K5 */ be_nested_str_weak(_X0A), + /* K6 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(get_error_report), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x74060000, // 0002 JMPT R1 #0004 + 0x80060200, // 0003 RET 1 K1 + 0x58040002, // 0004 LDCONST R1 K2 + 0x60080010, // 0005 GETGBL R2 G16 + 0x880C0103, // 0006 GETMBR R3 R0 K3 + 0x7C080200, // 0007 CALL R2 1 + 0xA8020005, // 0008 EXBLK 0 #000F + 0x5C0C0400, // 0009 MOVE R3 R2 + 0x7C0C0000, // 000A CALL R3 0 + 0x00120803, // 000B ADD R4 K4 R3 + 0x00100905, // 000C ADD R4 R4 K5 + 0x00040204, // 000D ADD R1 R1 R4 + 0x7001FFF9, // 000E JMP #0009 + 0x58080006, // 000F LDCONST R2 K6 + 0xAC080200, // 0010 CATCH R2 1 0 + 0xB0080000, // 0011 RAISE 2 R0 R0 + 0x80040200, // 0012 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: can_use_as_identifier +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_can_use_as_identifier, /* name */ be_nested_proto( 6, /* nstack */ 2, /* argc */ @@ -10042,24 +10123,57 @@ 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(is_math_method), - /* K1 */ be_nested_str_weak(_validate_factory_function), + ( &(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(_validate_animation_factory_exists), + be_str_weak(can_use_as_identifier), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x780A0001, // 0003 JMPF R2 #0006 - 0x50080200, // 0004 LDBOOL R2 1 0 - 0x80040400, // 0005 RET 1 R2 - 0x8C080101, // 0006 GETMET R2 R0 K1 - 0x5C100200, // 0007 MOVE R4 R1 - 0x4C140000, // 0008 LDNIL R5 - 0x7C080600, // 0009 CALL R2 3 - 0x80040400, // 000A RET 1 R2 + ( &(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 }) ) ); @@ -10067,11 +10181,68 @@ be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /******************************************************************** -** Solidified function: process_sequence +** Solidified function: expect_keyword ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ be_nested_proto( - 7, /* nstack */ + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(KEYWORD), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), + }), + be_str_weak(expect_keyword), + &be_const_str_solidified, + ( &(const binstruction[24]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x200C0403, // 0003 NE R3 R2 R3 + 0x780E000B, // 0004 JMPF R3 #0011 + 0x880C0501, // 0005 GETMBR R3 R2 K1 + 0xB8120400, // 0006 GETNGBL R4 K2 + 0x88100903, // 0007 GETMBR R4 R4 K3 + 0x88100904, // 0008 GETMBR R4 R4 K4 + 0x1C0C0604, // 0009 EQ R3 R3 R4 + 0x780E0005, // 000A JMPF R3 #0011 + 0x880C0505, // 000B GETMBR R3 R2 K5 + 0x1C0C0601, // 000C EQ R3 R3 R1 + 0x780E0002, // 000D JMPF R3 #0011 + 0x8C0C0106, // 000E GETMET R3 R0 K6 + 0x7C0C0200, // 000F CALL R3 1 + 0x70020005, // 0010 JMP #0017 + 0x8C0C0107, // 0011 GETMET R3 R0 K7 + 0x60140018, // 0012 GETGBL R5 G24 + 0x58180008, // 0013 LDCONST R6 K8 + 0x5C1C0200, // 0014 MOVE R7 R1 + 0x7C140400, // 0015 CALL R5 2 + 0x7C0C0400, // 0016 CALL R3 2 + 0x80000000, // 0017 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_right_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ + be_nested_proto( + 4, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -10079,89 +10250,217 @@ be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ 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(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(sequence), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(sequence_names), - /* K6 */ be_nested_str_weak(expect_left_brace), - /* K7 */ be_nested_str_weak(add), - /* K8 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X28def_X20_X28engine_X29), - /* K9 */ be_nested_str_weak(_X20_X20var_X20steps_X20_X3D_X20_X5B_X5D), - /* K10 */ be_nested_str_weak(at_end), - /* K11 */ be_nested_str_weak(check_right_brace), - /* K12 */ be_nested_str_weak(process_sequence_statement), - /* K13 */ be_nested_str_weak(_X20_X20var_X20seq_manager_X20_X3D_X20animation_X2ESequenceManager_X28engine_X29), - /* K14 */ be_nested_str_weak(_X20_X20seq_manager_X2Estart_sequence_X28steps_X29), - /* K15 */ be_nested_str_weak(_X20_X20return_X20seq_manager), - /* K16 */ be_nested_str_weak(end_X29_X28engine_X29), - /* K17 */ be_nested_str_weak(expect_right_brace), + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_BRACKET), }), - be_str_weak(process_sequence), + be_str_weak(check_right_bracket), &be_const_str_solidified, - ( &(const binstruction[60]) { /* code */ + ( &(const binstruction[14]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x88080105, // 000C GETMBR R2 R0 K5 - 0x500C0200, // 000D LDBOOL R3 1 0 - 0x98080203, // 000E SETIDX R2 R1 R3 - 0x8C080106, // 000F GETMET R2 R0 K6 - 0x7C080200, // 0010 CALL R2 1 - 0x8C080107, // 0011 GETMET R2 R0 K7 - 0x60100018, // 0012 GETGBL R4 G24 - 0x58140008, // 0013 LDCONST R5 K8 - 0x5C180200, // 0014 MOVE R6 R1 - 0x7C100400, // 0015 CALL R4 2 - 0x7C080400, // 0016 CALL R2 2 - 0x8C080107, // 0017 GETMET R2 R0 K7 - 0x60100018, // 0018 GETGBL R4 G24 - 0x58140009, // 0019 LDCONST R5 K9 - 0x7C100200, // 001A CALL R4 1 - 0x7C080400, // 001B CALL R2 2 - 0x8C08010A, // 001C GETMET R2 R0 K10 - 0x7C080200, // 001D CALL R2 1 - 0x740A0005, // 001E JMPT R2 #0025 - 0x8C08010B, // 001F GETMET R2 R0 K11 - 0x7C080200, // 0020 CALL R2 1 - 0x740A0002, // 0021 JMPT R2 #0025 - 0x8C08010C, // 0022 GETMET R2 R0 K12 - 0x7C080200, // 0023 CALL R2 1 - 0x7001FFF6, // 0024 JMP #001C - 0x8C080107, // 0025 GETMET R2 R0 K7 - 0x60100018, // 0026 GETGBL R4 G24 - 0x5814000D, // 0027 LDCONST R5 K13 - 0x7C100200, // 0028 CALL R4 1 - 0x7C080400, // 0029 CALL R2 2 - 0x8C080107, // 002A GETMET R2 R0 K7 - 0x60100018, // 002B GETGBL R4 G24 - 0x5814000E, // 002C LDCONST R5 K14 - 0x7C100200, // 002D CALL R4 1 - 0x7C080400, // 002E CALL R2 2 - 0x8C080107, // 002F GETMET R2 R0 K7 - 0x60100018, // 0030 GETGBL R4 G24 - 0x5814000F, // 0031 LDCONST R5 K15 - 0x7C100200, // 0032 CALL R4 1 - 0x7C080400, // 0033 CALL R2 2 - 0x8C080107, // 0034 GETMET R2 R0 K7 - 0x60100018, // 0035 GETGBL R4 G24 - 0x58140010, // 0036 LDCONST R5 K16 - 0x7C100200, // 0037 CALL R4 1 - 0x7C080400, // 0038 CALL R2 2 - 0x8C080111, // 0039 GETMET R2 R0 K17 - 0x7C080200, // 003A CALL R2 1 - 0x80000000, // 003B RET 0 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0005, // 0004 JMPF R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A0000, // 000A JMPT R2 #000C + 0x50080001, // 000B LDBOOL R2 0 1 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x80040400, // 000D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_right_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(animation_dsl), + /* K3 */ be_nested_str_weak(Token), + /* K4 */ be_nested_str_weak(RIGHT_PAREN), + }), + be_str_weak(check_right_paren), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0005, // 0004 JMPF R2 #000B + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0xB80E0400, // 0006 GETNGBL R3 K2 + 0x880C0703, // 0007 GETMBR R3 R3 K3 + 0x880C0704, // 0008 GETMBR R3 R3 K4 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x740A0000, // 000A JMPT R2 #000C + 0x50080001, // 000B LDBOOL R2 0 1 + 0x50080200, // 000C LDBOOL R2 1 0 + 0x80040400, // 000D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: error +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_error, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(line), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(errors), + /* K4 */ be_nested_str_weak(push), + /* K5 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), + }), + be_str_weak(error), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080100, // 0005 GETMET R2 R0 K0 + 0x7C080200, // 0006 CALL R2 1 + 0x88080501, // 0007 GETMBR R2 R2 K1 + 0x70020000, // 0008 JMP #000A + 0x58080002, // 0009 LDCONST R2 K2 + 0x880C0103, // 000A GETMBR R3 R0 K3 + 0x8C0C0704, // 000B GETMET R3 R3 K4 + 0x60140018, // 000C GETGBL R5 G24 + 0x58180005, // 000D LDCONST R6 K5 + 0x5C1C0400, // 000E MOVE R7 R2 + 0x5C200200, // 000F MOVE R8 R1 + 0x7C140600, // 0010 CALL R5 3 + 0x7C0C0400, // 0011 CALL R3 2 + 0x80000000, // 0012 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: convert_time_to_ms +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_convert_time_to_ms, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(endswith), + /* K2 */ be_nested_str_weak(ms), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(s), + /* K5 */ be_nested_str_weak(m), + /* K6 */ be_nested_str_weak(h), + /* K7 */ be_const_int(3600000), + }), + be_str_weak(convert_time_to_ms), + &be_const_str_solidified, + ( &(const binstruction[63]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x780E0008, // 0005 JMPF R3 #000F + 0x600C0009, // 0006 GETGBL R3 G9 + 0x6010000A, // 0007 GETGBL R4 G10 + 0x5415FFFC, // 0008 LDINT R5 -3 + 0x40160605, // 0009 CONNECT R5 K3 R5 + 0x94140205, // 000A GETIDX R5 R1 R5 + 0x7C100200, // 000B CALL R4 1 + 0x7C0C0200, // 000C CALL R3 1 + 0x80040600, // 000D RET 1 R3 + 0x7002002D, // 000E JMP #003D + 0x8C0C0501, // 000F GETMET R3 R2 K1 + 0x5C140200, // 0010 MOVE R5 R1 + 0x58180004, // 0011 LDCONST R6 K4 + 0x7C0C0600, // 0012 CALL R3 3 + 0x780E000A, // 0013 JMPF R3 #001F + 0x600C0009, // 0014 GETGBL R3 G9 + 0x6010000A, // 0015 GETGBL R4 G10 + 0x5415FFFD, // 0016 LDINT R5 -2 + 0x40160605, // 0017 CONNECT R5 K3 R5 + 0x94140205, // 0018 GETIDX R5 R1 R5 + 0x7C100200, // 0019 CALL R4 1 + 0x541603E7, // 001A LDINT R5 1000 + 0x08100805, // 001B MUL R4 R4 R5 + 0x7C0C0200, // 001C CALL R3 1 + 0x80040600, // 001D RET 1 R3 + 0x7002001D, // 001E JMP #003D + 0x8C0C0501, // 001F GETMET R3 R2 K1 + 0x5C140200, // 0020 MOVE R5 R1 + 0x58180005, // 0021 LDCONST R6 K5 + 0x7C0C0600, // 0022 CALL R3 3 + 0x780E000A, // 0023 JMPF R3 #002F + 0x600C0009, // 0024 GETGBL R3 G9 + 0x6010000A, // 0025 GETGBL R4 G10 + 0x5415FFFD, // 0026 LDINT R5 -2 + 0x40160605, // 0027 CONNECT R5 K3 R5 + 0x94140205, // 0028 GETIDX R5 R1 R5 + 0x7C100200, // 0029 CALL R4 1 + 0x5416EA5F, // 002A LDINT R5 60000 + 0x08100805, // 002B MUL R4 R4 R5 + 0x7C0C0200, // 002C CALL R3 1 + 0x80040600, // 002D RET 1 R3 + 0x7002000D, // 002E JMP #003D + 0x8C0C0501, // 002F GETMET R3 R2 K1 + 0x5C140200, // 0030 MOVE R5 R1 + 0x58180006, // 0031 LDCONST R6 K6 + 0x7C0C0600, // 0032 CALL R3 3 + 0x780E0008, // 0033 JMPF R3 #003D + 0x600C0009, // 0034 GETGBL R3 G9 + 0x6010000A, // 0035 GETGBL R4 G10 + 0x5415FFFD, // 0036 LDINT R5 -2 + 0x40160605, // 0037 CONNECT R5 K3 R5 + 0x94140205, // 0038 GETIDX R5 R1 R5 + 0x7C100200, // 0039 CALL R4 1 + 0x08100907, // 003A MUL R4 R4 K7 + 0x7C0C0200, // 003B CALL R3 1 + 0x80040600, // 003C RET 1 R3 + 0x540E03E7, // 003D LDINT R3 1000 + 0x80040600, // 003E RET 1 R3 }) ) ); @@ -10199,54 +10498,173 @@ be_local_closure(class_SimpleDSLTranspiler_has_errors, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: _create_instance_for_validation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(MockEngine), + /* K2 */ be_nested_str_weak(introspect), + /* K3 */ be_nested_str_weak(contains), + /* K4 */ be_nested_str_weak(animation), + /* K5 */ be_nested_str_weak(class), + /* K6 */ be_nested_str_weak(function), + }), + be_str_weak(_create_instance_for_validation), + &be_const_str_solidified, + ( &(const binstruction[39]) { /* code */ + 0xA802001E, // 0000 EXBLK 0 #0020 + 0xB80A0000, // 0001 GETNGBL R2 K0 + 0x8C080501, // 0002 GETMET R2 R2 K1 + 0x7C080200, // 0003 CALL R2 1 + 0xA40E0400, // 0004 IMPORT R3 K2 + 0x8C100703, // 0005 GETMET R4 R3 K3 + 0xB81A0800, // 0006 GETNGBL R6 K4 + 0x5C1C0200, // 0007 MOVE R7 R1 + 0x7C100600, // 0008 CALL R4 3 + 0x78120010, // 0009 JMPF R4 #001B + 0xB8120800, // 000A GETNGBL R4 K4 + 0x88100801, // 000B GETMBR R4 R4 R1 + 0x60140004, // 000C GETGBL R5 G4 + 0x5C180800, // 000D MOVE R6 R4 + 0x7C140200, // 000E CALL R5 1 + 0x1C140B05, // 000F EQ R5 R5 K5 + 0x74160004, // 0010 JMPT R5 #0016 + 0x60140004, // 0011 GETGBL R5 G4 + 0x5C180800, // 0012 MOVE R6 R4 + 0x7C140200, // 0013 CALL R5 1 + 0x1C140B06, // 0014 EQ R5 R5 K6 + 0x78160004, // 0015 JMPF R5 #001B + 0x5C140800, // 0016 MOVE R5 R4 + 0x5C180400, // 0017 MOVE R6 R2 + 0x7C140200, // 0018 CALL R5 1 + 0xA8040001, // 0019 EXBLK 1 1 + 0x80040A00, // 001A RET 1 R5 + 0x4C100000, // 001B LDNIL R4 + 0xA8040001, // 001C EXBLK 1 1 + 0x80040800, // 001D RET 1 R4 + 0xA8040001, // 001E EXBLK 1 1 + 0x70020005, // 001F JMP #0026 + 0xAC080002, // 0020 CATCH R2 0 2 + 0x70020002, // 0021 JMP #0025 + 0x4C100000, // 0022 LDNIL R4 + 0x80040800, // 0023 RET 1 R4 + 0x70020000, // 0024 JMP #0026 + 0xB0080000, // 0025 RAISE 2 R0 R0 + 0x80000000, // 0026 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified class: SimpleDSLTranspiler ********************************************************************/ be_local_class(SimpleDSLTranspiler, - 8, + 9, NULL, - be_nested_map(100, + be_nested_map(101, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(expect_keyword, 27), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, - { be_const_key_weak(has_errors, -1), be_const_closure(class_SimpleDSLTranspiler_has_errors_closure) }, - { be_const_key_weak(skip_whitespace_including_newlines, -1), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, - { be_const_key_weak(sequence_names, -1), be_const_var(7) }, - { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, - { be_const_key_weak(_generate_anonymous_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call_closure) }, - { be_const_key_weak(_validate_animation_factory_exists, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, - { be_const_key_weak(pos, -1), be_const_var(1) }, - { be_const_key_weak(process_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, - { be_const_key_weak(_create_instance_for_validation, -1), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, - { be_const_key_weak(expect_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, - { be_const_key_weak(skip_statement, -1), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, - { be_const_key_weak(expect_colon, -1), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, - { be_const_key_weak(process_expression, 95), be_const_closure(class_SimpleDSLTranspiler_process_expression_closure) }, - { be_const_key_weak(_validate_factory_function, -1), be_const_closure(class_SimpleDSLTranspiler__validate_factory_function_closure) }, - { be_const_key_weak(process_function_arguments_for_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_for_expression_closure) }, - { be_const_key_weak(is_computed_expression_string, 29), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_string_closure) }, - { be_const_key_weak(process_percentage_value, 69), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, - { be_const_key_weak(expect_left_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, - { be_const_key_weak(expect_left_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, - { be_const_key_weak(process_multiplicative_expression, 33), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, - { be_const_key_weak(add, -1), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, - { be_const_key_weak(generate_engine_start, -1), be_const_closure(class_SimpleDSLTranspiler_generate_engine_start_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(generate_default_strip_initialization, 34), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, + { be_const_key_weak(_create_instance_for_validation, 78), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, + { be_const_key_weak(process_function_arguments_for_expression, 22), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_for_expression_closure) }, + { be_const_key_weak(expect_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, + { be_const_key_weak(has_errors, 68), be_const_closure(class_SimpleDSLTranspiler_has_errors_closure) }, + { be_const_key_weak(process_multiplicative_expression, 3), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, + { be_const_key_weak(convert_time_to_ms, 33), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_closure) }, + { be_const_key_weak(run_statements, -1), be_const_var(4) }, + { be_const_key_weak(process_multiplicative_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw_closure) }, + { be_const_key_weak(error, -1), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, + { be_const_key_weak(process_expression_argument, 76), be_const_closure(class_SimpleDSLTranspiler_process_expression_argument_closure) }, + { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, + { be_const_key_weak(skip_function_arguments, 23), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, + { be_const_key_weak(skip_whitespace, 83), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, + { be_const_key_weak(expect_number, -1), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, + { be_const_key_weak(_process_named_arguments_generic, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_generic_closure) }, + { be_const_key_weak(at_end, -1), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, + { be_const_key_weak(is_anonymous_function, 31), be_const_closure(class_SimpleDSLTranspiler_is_anonymous_function_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(check_right_bracket, 84), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, + { be_const_key_weak(errors, -1), be_const_var(3) }, + { be_const_key_weak(_validate_animation_factory_creates_animation, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation_closure) }, + { be_const_key_weak(expect_keyword, -1), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, + { be_const_key_weak(process_additive_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_raw_closure) }, { be_const_key_weak(_validate_single_parameter, -1), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, - { be_const_key_weak(process_property_assignment, 24), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, - { be_const_key_weak(expect_number, 12), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, - { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, - { be_const_key_weak(process_statement, 93), be_const_closure(class_SimpleDSLTranspiler_process_statement_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(strip_initialized, 73), be_const_var(6) }, - { be_const_key_weak(transform_expression_for_closure, 21), be_const_closure(class_SimpleDSLTranspiler_transform_expression_for_closure_closure) }, + { be_const_key_weak(pos, -1), be_const_var(1) }, + { be_const_key_weak(get_error_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, + { be_const_key_weak(convert_to_vrgb, 99), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, + { be_const_key_weak(expect_left_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, + { be_const_key_weak(process_time_value, 49), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, + { be_const_key_weak(get_errors, -1), be_const_closure(class_SimpleDSLTranspiler_get_errors_closure) }, + { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, { be_const_key_weak(expect_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, + { be_const_key_weak(process_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_expression_closure) }, + { be_const_key_weak(generate_default_strip_initialization, 45), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, + { be_const_key_weak(expect_comma, 56), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, + { be_const_key_weak(create_computation_closure, 86), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_closure) }, + { be_const_key_weak(add, 61), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, + { be_const_key_weak(process_named_arguments_for_variable, 65), be_const_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable_closure) }, + { be_const_key_weak(is_computed_expression, 98), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_closure) }, + { be_const_key_weak(validate_user_name, -1), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, + { be_const_key_weak(generate_engine_start, 10), be_const_closure(class_SimpleDSLTranspiler_generate_engine_start_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_palette, 24), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, + { be_const_key_weak(process_unary_expression, 64), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, + { be_const_key_weak(_validate_factory_function, -1), be_const_closure(class_SimpleDSLTranspiler__validate_factory_function_closure) }, + { be_const_key_weak(peek, -1), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, + { be_const_key_weak(process_array_literal, -1), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, + { be_const_key_weak(process_animation, -1), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, + { be_const_key_weak(_validate_animation_factory_exists, 70), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, + { be_const_key_weak(is_identifier_char, 74), be_const_closure(class_SimpleDSLTranspiler_is_identifier_char_closure) }, + { be_const_key_weak(process_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, + { be_const_key_weak(process_function_call, 32), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, + { be_const_key_weak(expect_colon, 18), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, + { be_const_key_weak(create_computation_closure_from_string, 75), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string_closure) }, + { be_const_key_weak(is_computed_expression_string, 44), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_string_closure) }, + { be_const_key_weak(strip_initialized, -1), be_const_var(6) }, + { be_const_key_weak(process_property_assignment, -1), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, + { be_const_key_weak(process_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, + { be_const_key_weak(expect_left_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, + { be_const_key_weak(process_event_parameters, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_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_value, 94), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, + { be_const_key_weak(process_primary_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_raw_closure) }, + { be_const_key_weak(convert_color, 53), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, + { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, + { be_const_key_weak(skip_statement, -1), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, + { be_const_key_weak(_generate_anonymous_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__generate_anonymous_function_call_closure) }, + { be_const_key_weak(process_additive_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, + { be_const_key_weak(_validate_object_reference, -1), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, + { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, + { be_const_key_weak(join_output, -1), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, + { be_const_key_weak(transform_operand_for_closure, -1), be_const_closure(class_SimpleDSLTranspiler_transform_operand_for_closure_closure) }, + { be_const_key_weak(expect_right_bracket, 37), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, + { be_const_key_weak(transpile, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, + { be_const_key_weak(process_sequence_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, { be_const_key_weak(_is_simple_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__is_simple_function_call_closure) }, - { be_const_key_weak(convert_to_vrgb, 88), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, + { be_const_key_weak(is_math_method, -1), be_const_closure(class_SimpleDSLTranspiler_is_math_method_closure) }, + { be_const_key_weak(transform_expression_for_closure, 51), be_const_closure(class_SimpleDSLTranspiler_transform_expression_for_closure_closure) }, { be_const_key_weak(process_unary_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_raw_closure) }, - { be_const_key_weak(expect_right_bracket, 87), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, - { be_const_key_weak(named_colors, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + { be_const_key_weak(expect_assign, 46), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, + { be_const_key_weak(get_named_color_value, 5), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, + { be_const_key_weak(expect_left_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, + { be_const_key_weak(_process_named_arguments_for_color_provider, 38), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider_closure) }, + { be_const_key_weak(process_set, -1), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, + { be_const_key_weak(output, -1), be_const_var(2) }, + { be_const_key_weak(tokens, -1), be_const_var(0) }, + { be_const_key_weak(process_primary_expression, 95), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, + { be_const_key_weak(sequence_names, -1), be_const_var(7) }, + { be_const_key_weak(named_colors, 29), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(37, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(brown, -1), be_nested_str_weak(0xFFA52A2A) }, @@ -10287,66 +10705,18 @@ be_local_class(SimpleDSLTranspiler, { be_const_key_weak(tan, -1), be_nested_str_weak(0xFFD2B48C) }, { be_const_key_weak(maroon, -1), be_nested_str_weak(0xFF800000) }, })) ) } )) }, - { be_const_key_weak(process_additive_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_raw_closure) }, - { be_const_key_weak(errors, 30), be_const_var(3) }, - { be_const_key_weak(peek, -1), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, - { be_const_key_weak(tokens, -1), be_const_var(0) }, - { be_const_key_weak(process_time_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, - { be_const_key_weak(expect_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, - { be_const_key_weak(is_computed_expression, -1), be_const_closure(class_SimpleDSLTranspiler_is_computed_expression_closure) }, - { be_const_key_weak(process_primary_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_raw_closure) }, - { be_const_key_weak(output, 11), be_const_var(2) }, - { be_const_key_weak(process_set, 31), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, - { be_const_key_weak(process_event_parameters, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, - { be_const_key_weak(_create_animation_instance_for_validation, 43), be_const_closure(class_SimpleDSLTranspiler__create_animation_instance_for_validation_closure) }, - { be_const_key_weak(next, -1), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, - { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, - { be_const_key_weak(get_errors, -1), be_const_closure(class_SimpleDSLTranspiler_get_errors_closure) }, - { be_const_key_weak(init, 81), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, - { be_const_key_weak(process_run, 71), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, - { be_const_key_weak(check_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, - { be_const_key_weak(is_identifier_char, -1), be_const_closure(class_SimpleDSLTranspiler_is_identifier_char_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(convert_color, 37), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, - { be_const_key_weak(get_error_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, - { be_const_key_weak(process_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, - { be_const_key_weak(_validate_animation_factory_creates_animation, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_creates_animation_closure) }, - { be_const_key_weak(process_array_literal, 77), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, - { be_const_key_weak(run_statements, -1), be_const_var(4) }, - { be_const_key_weak(process_unary_expression, 7), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, + { be_const_key_weak(current, 25), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, { be_const_key_weak(first_statement, -1), be_const_var(5) }, - { be_const_key_weak(is_anonymous_function, 8), be_const_closure(class_SimpleDSLTranspiler_is_anonymous_function_closure) }, - { be_const_key_weak(process_expression_argument, 66), be_const_closure(class_SimpleDSLTranspiler_process_expression_argument_closure) }, - { be_const_key_weak(process_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, - { be_const_key_weak(process_sequence_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, - { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, - { be_const_key_weak(_process_named_arguments_generic, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_generic_closure) }, - { be_const_key_weak(at_end, -1), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, - { be_const_key_weak(validate_user_name, 54), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, - { be_const_key_weak(expect_assign, 46), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, - { be_const_key_weak(can_use_as_identifier, 82), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, - { be_const_key_weak(process_additive_expression, 41), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, - { be_const_key_weak(join_output, 40), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, - { be_const_key_weak(expect_comma, -1), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, - { be_const_key_weak(create_computation_closure, -1), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_closure) }, - { be_const_key_weak(is_math_method, -1), be_const_closure(class_SimpleDSLTranspiler_is_math_method_closure) }, - { be_const_key_weak(transform_operand_for_closure, -1), be_const_closure(class_SimpleDSLTranspiler_transform_operand_for_closure_closure) }, - { be_const_key_weak(expect_left_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, - { be_const_key_weak(process_multiplicative_expression_raw, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_raw_closure) }, - { be_const_key_weak(skip_whitespace, 28), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, - { be_const_key_weak(_validate_color_provider_factory_exists, 23), be_const_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists_closure) }, - { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, - { be_const_key_weak(error, -1), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, - { be_const_key_weak(check_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, - { be_const_key_weak(get_named_color_value, 18), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, - { be_const_key_weak(create_computation_closure_from_string, -1), be_const_closure(class_SimpleDSLTranspiler_create_computation_closure_from_string_closure) }, - { be_const_key_weak(process_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, - { be_const_key_weak(process_palette, 9), 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(process_named_arguments_for_variable, -1), be_const_closure(class_SimpleDSLTranspiler_process_named_arguments_for_variable_closure) }, - { be_const_key_weak(transpile, 6), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, - { be_const_key_weak(current, 4), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, - { be_const_key_weak(process_animation, 1), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, + { be_const_key_weak(symbol_table, -1), be_const_var(8) }, + { be_const_key_weak(can_use_as_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, + { be_const_key_weak(process_percentage_value, 21), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, + { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, + { be_const_key_weak(process_function_arguments, 30), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, + { be_const_key_weak(expect_identifier, 8), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, + { be_const_key_weak(check_right_brace, 6), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, + { be_const_key_weak(next, -1), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, + { be_const_key_weak(process_statement, 0), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, })), be_str_weak(SimpleDSLTranspiler) ); diff --git a/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be b/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be index 39db041c9..aac47789e 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be @@ -191,7 +191,7 @@ def test_sequence_processing() # Test basic sequence var basic_seq_dsl = "color custom_red = 0xFF0000\n" + - "animation red_anim = custom_red\n" + + "animation red_anim = solid(color=custom_red)\n" + "sequence demo {\n" + " play red_anim for 2s\n" + "}\n" + @@ -208,7 +208,7 @@ def test_sequence_processing() # Test repeat in sequence var repeat_seq_dsl = "color custom_blue = 0x0000FF\n" + - "animation blue_anim = custom_blue\n" + + "animation blue_anim = solid(color=custom_blue)\n" + "sequence test {\n" + " repeat 3 times:\n" + " play blue_anim for 1s\n" + @@ -277,8 +277,8 @@ def test_property_assignments() print("Testing property assignments...") var property_tests = [ - ["color custom_red = 0xFF0000\nanimation red_anim = solid(color=custom_red)\nred_anim.pos = 15", - "red_anim_.pos = 15"], + ["color custom_red = 0xFF0000\nanimation red_anim = solid(color=custom_red)\nred_anim.priority = 15", + "red_anim_.priority = 15"], ["animation test_anim = solid(color=red)\ntest_anim.opacity = 128", "test_anim_.opacity = 128"], ["animation solid_red = solid(color=red)\nanimation pulse_anim = pulsating_animation(color=red, period=2000)\npulse_anim.priority = 5", diff --git a/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be index b949740ff..11bd00975 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be @@ -198,6 +198,149 @@ class DSLParameterValidationTest end end + # Test valid object property references - should compile successfully + def test_valid_object_property_references() + var dsl_code = + "# strip length 30 # TEMPORARILY DISABLED\n" + "animation red_eye = beacon_animation(color=red, pos=10)\n" + "animation green_eye = beacon_animation(color=green, pos=red_eye.pos)\n" + "run red_eye\n" + "run green_eye" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Valid object property references should compile successfully" + end + + # Check that the generated code contains the expected object reference + if string.find(berry_code, "self.resolve(red_eye_, 'pos')") == -1 + raise "generation_error", "Generated code should contain object property reference" + end + end + + # Test invalid object property references - should fail compilation + def test_invalid_object_property_references() + var dsl_code = + "# strip length 30 # TEMPORARILY DISABLED\n" + "animation red_eye = beacon_animation(color=red, pos=10)\n" + "animation green_eye = beacon_animation(color=green, pos=red_eye.invalid_param)\n" + "run red_eye\n" + "run green_eye" + + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile_dsl(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg + end + + if !compilation_failed + raise "validation_error", "Invalid object property reference should cause compilation to fail" + end + + # Check that the error message mentions the invalid parameter + if string.find(error_message, "invalid_param") == -1 + raise "error_message_error", f"Error message should mention 'invalid_param', got: {error_message}" + end + + # Check that the error message mentions it's a BeaconAnimation parameter issue + if string.find(error_message, "BeaconAnimation") == -1 + raise "error_message_error", f"Error message should mention 'BeaconAnimation', got: {error_message}" + end + end + + # Test object property references in computed expressions - should validate parameters + def test_object_property_references_in_expressions() + var dsl_code = + "set strip_len = strip_length()\n" + "animation red_eye = beacon_animation(color=red, pos=10)\n" + "animation blue_eye = beacon_animation(color=blue, pos=strip_len - red_eye.nonexistent)\n" + "run red_eye\n" + "run blue_eye" + + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile_dsl(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg + end + + if !compilation_failed + raise "validation_error", "Invalid object property reference in expression should cause compilation to fail" + end + + # Check that the error message mentions the invalid parameter + if string.find(error_message, "nonexistent") == -1 + raise "error_message_error", f"Error message should mention 'nonexistent', got: {error_message}" + end + end + + # Test sequence property references - should fail with specific error + def test_sequence_property_references() + var dsl_code = + "sequence demo {\n" + " play solid(color=red) for 5s\n" + "}\n" + "animation test = beacon_animation(color=blue, pos=demo.pos)\n" + "run test" + + var compilation_failed = false + var error_message = "" + + try + var berry_code = animation_dsl.compile_dsl(dsl_code) + if berry_code == nil + compilation_failed = true + end + except "dsl_compilation_error" as e, msg + compilation_failed = true + error_message = msg + end + + if !compilation_failed + raise "validation_error", "Sequence property reference should cause compilation to fail" + end + + # Check that the error message mentions sequences don't have properties + if string.find(error_message, "Sequences") == -1 || string.find(error_message, "do not have properties") == -1 + raise "error_message_error", f"Error message should mention that sequences don't have properties, got: {error_message}" + end + end + + # Test valid computed object property references - should compile successfully + def test_valid_computed_object_property_references() + var dsl_code = + "set strip_len = strip_length()\n" + "animation red_eye = beacon_animation(color=red, pos=10)\n" + "animation blue_eye = beacon_animation(color=blue, pos=strip_len - red_eye.pos)\n" + "run red_eye\n" + "run blue_eye" + + var berry_code = animation_dsl.compile_dsl(dsl_code) + + if berry_code == nil + raise "compilation_error", "Valid computed object property references should compile successfully" + end + + # Check that the generated code contains the expected computed expression + if string.find(berry_code, "self.resolve(strip_len_) - self.resolve(red_eye_, 'pos')") == -1 + raise "generation_error", "Generated code should contain computed object property reference" + end + end + # Run all tests def run_all_tests() print("Running DSL Parameter Validation Tests...") @@ -212,7 +355,12 @@ class DSLParameterValidationTest ["Mixed Parameters", / -> self.test_mixed_parameters()], ["Nested Function Invalid Parameters", / -> self.test_nested_function_invalid_parameters()], ["User Function Not Validated", / -> self.test_user_function_not_validated()], - ["Multiple Animations Validation", / -> self.test_multiple_animations_validation()] + ["Multiple Animations Validation", / -> self.test_multiple_animations_validation()], + ["Valid Object Property References", / -> self.test_valid_object_property_references()], + ["Invalid Object Property References", / -> self.test_invalid_object_property_references()], + ["Object Property References in Expressions", / -> self.test_object_property_references_in_expressions()], + ["Sequence Property References", / -> self.test_sequence_property_references()], + ["Valid Computed Object Property References", / -> self.test_valid_computed_object_property_references()] ] for test : tests diff --git a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be index 46f300a26..5612cd69c 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be @@ -146,7 +146,7 @@ def test_sequences() print("Testing sequences...") var dsl_source = "color custom_blue = 0x0000FF\n" - "animation blue_anim = custom_blue\n" + "animation blue_anim = solid(color=custom_blue)\n" "\n" "sequence test_seq {\n" " play blue_anim for 3s\n" @@ -179,9 +179,9 @@ def test_multiple_run_statements() "animation blue_anim = solid(color=custom_blue)\n" + "animation green_anim = solid(color=custom_green)\n" + "\n" + - "red_anim.pos = 5\n" + - "blue_anim.pos = 15\n" + - "green_anim.pos = 25\n" + + "red_anim.priority = 5\n" + + "blue_anim.priority = 15\n" + + "green_anim.priority = 25\n" + "\n" + "run red_anim\n" + "run blue_anim\n" + @@ -307,7 +307,7 @@ def test_computed_values() assert(computed_code != nil, "Should compile computed values") # Check for single resolve calls (no double wrapping) - var expected_single_resolve = "self.abs(self.resolve(strip_len_, param_name, time_ms) / 4)" + var expected_single_resolve = "self.abs(self.resolve(strip_len_) / 4)" assert(string.find(computed_code, expected_single_resolve) >= 0, "Should generate single resolve call in computed expression") # Check that there are no double resolve calls @@ -371,13 +371,13 @@ def test_computed_values() assert(nested_closure_count == 0, f"Should have no nested closures, found {nested_closure_count}") # Verify specific complex expression patterns - var expected_complex_tail = "self.resolve(strip_len_, param_name, time_ms) / 8 + (2 * self.resolve(strip_len_, param_name, time_ms)) - 10" + var expected_complex_tail = "self.resolve(strip_len_) / 8 + (2 * self.resolve(strip_len_)) - 10" assert(string.find(complex_code, expected_complex_tail) >= 0, "Should generate correct complex tail_length expression") - var expected_complex_speed = "(self.resolve(base_value_, param_name, time_ms) + self.resolve(strip_len_, param_name, time_ms)) * 2.5" + var expected_complex_speed = "(self.resolve(base_value_) + self.resolve(strip_len_)) * 2.5" assert(string.find(complex_code, expected_complex_speed) >= 0, "Should generate correct complex speed expression") - var expected_complex_priority = "self.max(1, self.min(10, self.resolve(strip_len_, param_name, time_ms) / 6))" + var expected_complex_priority = "self.max(1, self.min(10, self.resolve(strip_len_) / 6))" assert(string.find(complex_code, expected_complex_priority) >= 0, "Should generate correct complex priority expression with math functions") # Test simple expressions that don't need closures @@ -658,7 +658,6 @@ def test_property_assignments() var dsl_with_properties = "color custom_red = 0xFF0000\n" + "animation red_anim = solid(color=custom_red)\n" + - "red_anim.pos = 15\n" + "red_anim.opacity = 128\n" + "red_anim.priority = 10" @@ -667,7 +666,6 @@ def test_property_assignments() assert(berry_code != nil, "Should generate Berry code with property assignments") # Check that property assignments are generated correctly (new behavior: direct underscore access) - assert(string.find(berry_code, "red_anim_.pos = 15") >= 0, "Should generate pos property assignment") assert(string.find(berry_code, "red_anim_.opacity = 128") >= 0, "Should generate opacity property assignment") assert(string.find(berry_code, "red_anim_.priority = 10") >= 0, "Should generate priority property assignment") diff --git a/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be b/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be index 1bf36fd09..79352c3a3 100644 --- a/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be +++ b/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be @@ -4,6 +4,7 @@ # ValueProvider instances for integer and real parameters. import animation +import global # Test that parameters accept ValueProviders and integers only def test_parameter_accepts_value_providers() @@ -197,6 +198,259 @@ def test_type_validation() print("✓ Type validation test passed") end +# Test DSL compile-time parameter validation +def test_dsl_parameter_validation() + print("Testing DSL compile-time parameter validation...") + + import animation_dsl + + # Test valid animation parameter + var valid_dsl = "animation red_eye = beacon_animation(color = red)\n" + + "red_eye.back_color = blue" + + var result = animation_dsl.compile(valid_dsl) + assert(result != nil, "Valid parameter should compile successfully") + + # Test invalid animation parameter + var invalid_dsl = "animation red_eye = beacon_animation(color = red)\n" + + "red_eye.invalid_param = 123" + + try + animation_dsl.compile(invalid_dsl) + assert(false, "Invalid parameter should cause compilation error") + except .. as e + # Expected - invalid parameter should be caught + assert(true, "Invalid parameter correctly rejected") + end + + # Test valid color provider parameter + var valid_color_dsl = "color solid_red = static_color(color = red)\n" + + "solid_red.color = blue" + + var result2 = animation_dsl.compile(valid_color_dsl) + assert(result2 != nil, "Valid color provider parameter should compile successfully") + + # Test invalid color provider parameter + var invalid_color_dsl = "color solid_red = static_color(color = red)\n" + + "solid_red.invalid_param = 123" + + try + animation_dsl.compile(invalid_color_dsl) + assert(false, "Invalid color provider parameter should cause compilation error") + except .. as e + # Expected - invalid parameter should be caught + assert(true, "Invalid color provider parameter correctly rejected") + end + + # Test unknown objects skip validation (no error) + var unknown_dsl = "unknown_object.some_param = 123" + var result3 = animation_dsl.compile(unknown_dsl) + assert(result3 != nil, "Unknown objects should not cause validation errors") + + print("✓ DSL compile-time parameter validation test passed") +end + +# Test DSL object reference validation +def test_dsl_object_reference_validation() + print("Testing DSL object reference validation...") + + import animation_dsl + + # Test valid run statement + var valid_run = "animation red_eye = beacon_animation(color = red)\n" + + "run red_eye" + + var result = animation_dsl.compile(valid_run) + assert(result != nil, "Valid run statement should compile successfully") + + # Test invalid run statement (undefined object) + var invalid_run = "animation red_eye = beacon_animation(color = red)\n" + + "run undefined_animation" + + try + animation_dsl.compile(invalid_run) + assert(false, "Invalid run statement should cause compilation error") + except .. as e + # Expected - undefined reference should be caught + assert(true, "Undefined reference in run statement correctly rejected") + end + + # Test valid sequence with play statement + var valid_sequence = "animation red_eye = beacon_animation(color = red)\n" + + "sequence demo {\n" + + " play red_eye for 5s\n" + + " wait 1s\n" + + "}" + + var result2 = animation_dsl.compile(valid_sequence) + assert(result2 != nil, "Valid sequence should compile successfully") + + # Test invalid sequence with undefined play reference + var invalid_sequence = "animation red_eye = beacon_animation(color = red)\n" + + "sequence demo {\n" + + " play undefined_animation for 5s\n" + + " wait 1s\n" + + "}" + + try + animation_dsl.compile(invalid_sequence) + assert(false, "Invalid sequence should cause compilation error") + except .. as e + # Expected - undefined reference should be caught + assert(true, "Undefined reference in sequence play statement correctly rejected") + end + + print("✓ DSL object reference validation test passed") +end + +# Test DSL sequence symbol table registration +def test_dsl_sequence_symbol_table_registration() + print("Testing DSL sequence symbol table registration...") + + import animation_dsl + + # Test 1: Valid sequence should be registered and runnable + var valid_sequence_dsl = "animation red_anim = beacon_animation(color = red)\n" + + "sequence demo {\n" + + " play red_anim for 2s\n" + + "}\n" + + "run demo" + + var result = animation_dsl.compile(valid_sequence_dsl) + assert(result != nil, "Valid sequence should compile successfully") + + # Test 2: Sequence with invalid animation reference should fail at sequence processing + var invalid_anim_sequence_dsl = "animation red_anim = nonexistent_function(color = red)\n" + + "sequence demo {\n" + + " play red_anim for 2s\n" + + "}\n" + + "run demo" + + try + animation_dsl.compile(invalid_anim_sequence_dsl) + assert(false, "Invalid animation reference should cause compilation error") + except .. as e + # Expected - invalid animation should be caught + assert(true, "Invalid animation reference correctly rejected") + end + + # Test 3: Sequence with undefined identifier should fail + var undefined_identifier_dsl = "sequence demo {\n" + + " play undefined_anim for 2s\n" + + "}\n" + + "run demo" + + try + animation_dsl.compile(undefined_identifier_dsl) + assert(false, "Undefined identifier in sequence should cause compilation error") + except .. as e + # Expected - undefined identifier should be caught + assert(true, "Undefined identifier in sequence correctly rejected") + end + + print("✓ DSL sequence symbol table registration test passed") +end + +# Test DSL symbol table mixed types handling +def test_dsl_symbol_table_mixed_types() + print("Testing DSL symbol table mixed types handling...") + + import animation_dsl + + # Test 1: Valid property assignment on animation (instance in symbol table) + var animation_property_dsl = "animation red_anim = beacon_animation(color = red)\n" + + "red_anim.back_color = blue" + + var result1 = animation_dsl.compile(animation_property_dsl) + assert(result1 != nil, "Animation property assignment should work") + + # Test 2: Valid property assignment on color provider (instance in symbol table) + var color_property_dsl = "color solid_red = static_color(color = red)\n" + + "solid_red.color = blue" + + var result2 = animation_dsl.compile(color_property_dsl) + assert(result2 != nil, "Color provider property assignment should work") + + # Test 3: Invalid property assignment on sequence (string in symbol table) + var sequence_property_dsl = "animation red_anim = beacon_animation(color = red)\n" + + "sequence demo {\n" + + " play red_anim for 2s\n" + + "}\n" + + "demo.invalid_property = 123" + + try + animation_dsl.compile(sequence_property_dsl) + assert(false, "Sequence property assignment should cause compilation error") + except .. as e + # Expected - sequence property assignment should be rejected + assert(true, "Sequence property assignment correctly rejected") + end + + # Test 4: Mixed symbol table with sequences and instances + var mixed_dsl = "animation red_anim = beacon_animation(color = red)\n" + + "color solid_blue = static_color(color = blue)\n" + + "sequence demo {\n" + + " play red_anim for 2s\n" + + "}\n" + + "red_anim.back_color = solid_blue\n" + + "run demo" + + var result4 = animation_dsl.compile(mixed_dsl) + assert(result4 != nil, "Mixed symbol table operations should work") + + print("✓ DSL symbol table mixed types handling test passed") +end + +# Test DSL identifier reference symbol table registration +def test_dsl_identifier_reference_symbol_table() + print("Testing DSL identifier reference symbol table registration...") + + import animation_dsl + + # Test 1: Animation reference should be added to symbol table + var animation_ref_dsl = "animation solid_red = solid(color=red)\n" + + "animation red_anim = solid_red\n" + + "sequence demo {\n" + + " play red_anim for 2s\n" + + "}\n" + + "run demo" + + var result1 = animation_dsl.compile(animation_ref_dsl) + assert(result1 != nil, "Animation reference should compile successfully") + + # Test 2: Parameter validation on referenced animation + var param_validation_dsl = "animation solid_red = solid(color=red)\n" + + "animation red_anim = solid_red\n" + + "red_anim.color = blue" + + var result2 = animation_dsl.compile(param_validation_dsl) + assert(result2 != nil, "Parameter validation on referenced animation should work") + + # Test 3: Color provider reference should be added to symbol table + var color_ref_dsl = "color base_red = static_color(color=red)\n" + + "color my_red = base_red\n" + + "animation red_anim = solid(color=my_red)\n" + + "my_red.color = blue" + + var result3 = animation_dsl.compile(color_ref_dsl) + assert(result3 != nil, "Color provider reference should work") + + # Test 4: Invalid parameter on referenced animation should fail + var invalid_param_dsl = "animation solid_red = solid(color=red)\n" + + "animation red_anim = solid_red\n" + + "red_anim.invalid_param = 123" + + try + animation_dsl.compile(invalid_param_dsl) + assert(false, "Invalid parameter on referenced animation should cause compilation error") + except .. as e + # Expected - invalid parameter should be caught + assert(true, "Invalid parameter on referenced animation correctly rejected") + end + + print("✓ DSL identifier reference symbol table registration test passed") +end + # Run all tests def run_parameter_validation_tests() print("=== Parameter Validation System Tests ===") @@ -207,6 +461,11 @@ def run_parameter_validation_tests() test_range_validation() test_range_validation_with_providers() test_type_validation() + test_dsl_parameter_validation() + test_dsl_object_reference_validation() + test_dsl_sequence_symbol_table_registration() + test_dsl_symbol_table_mixed_types() + test_dsl_identifier_reference_symbol_table() print("=== All parameter validation tests passed! ===") return true diff --git a/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be b/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be index 5a5ced657..ba6304064 100644 --- a/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be +++ b/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be @@ -153,7 +153,7 @@ def test_math_method_transpilation() "set x = 10\n" "set y = 20\n" "animation wave = pulsating_animation(color=blue, period=3s)\n" - "wave.brightness = max(min(x, y), sqrt(abs(x - y)))\n" + "wave.min_brightness = max(min(x, y), sqrt(abs(x - y)))\n" "run wave" var result2 = test_transpilation_case(dsl_code2, ["max", "min", "sqrt", "abs"], "Multiple math functions") @@ -165,7 +165,7 @@ def test_math_method_transpilation() var dsl_code3 = "set angle = 45\n" "animation rotate = pulsating_animation(color=green, period=2s)\n" - "rotate.brightness = round(sin(angle) * 180 + cos(angle) * 90)\n" + "rotate.min_brightness = round(sin(angle) * 180 + cos(angle) * 90)\n" "run rotate" var result3 = test_transpilation_case(dsl_code3, ["round", "sin", "cos"], "Complex math expressions") @@ -176,7 +176,7 @@ def test_math_method_transpilation() # Test case 4: Ensure non-math functions are NOT prefixed with self. var dsl_code4 = "animation pulse = pulsating_animation(color=red, period=2s)\n" - "pulse.brightness = scale(50, 0, 100)\n" + "pulse.min_brightness = scale(50, 0, 100)\n" "run pulse" var result4 = test_non_math_functions(dsl_code4) diff --git a/lib/libesp32/berry_animation/src/tests/user_functions_test.be b/lib/libesp32/berry_animation/src/tests/user_functions_test.be index 044d95c3c..c90f5a9ad 100644 --- a/lib/libesp32/berry_animation/src/tests/user_functions_test.be +++ b/lib/libesp32/berry_animation/src/tests/user_functions_test.be @@ -140,7 +140,7 @@ def test_generated_code_validity() var dsl_code = "animation random_multi = solid(color=cyan, priority=12)\n" "random_multi.opacity = rand_demo()\n" - "random_multi.brightness = max(100, rand_demo())\n" + "random_multi.duration = max(100, rand_demo())\n" "run random_multi" try