From ae693ba7770a63fc91f67776a5f98496451c5ef4 Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:08:33 +0200 Subject: [PATCH] Berry animation pull lexer and optimizations (#23969) --- .../compiled/compilation_summary.md | 4 +- .../anim_examples/compiled/rainbow_cycle.be | 2 +- .../berry_animation/docs/DSL_TRANSPILATION.md | 22 - .../berry_animation/src/animation_dsl.be | 12 - lib/libesp32/berry_animation/src/dsl/lexer.be | 465 +- .../berry_animation/src/dsl/named_colors.be | 76 +- .../berry_animation/src/dsl/runtime.be | 179 - .../berry_animation/src/dsl/symbol_table.be | 8 +- lib/libesp32/berry_animation/src/dsl/token.be | 436 +- .../berry_animation/src/dsl/transpiler.be | 153 +- .../src/solidify/solidified_animation_dsl.h | 22570 +++++++--------- .../tests/demo_shutter_infinite_loop_test.be | 308 + .../src/tests/dsl_compilation_test.be | 25 +- .../src/tests/dsl_lexer_test.be | 195 +- .../src/tests/dsl_lexer_triple_quotes_test.be | 85 +- .../src/tests/dsl_runtime_test.be | 253 - .../src/tests/dsl_transpiler_test.be | 53 +- .../src/tests/palette_dsl_test.be | 25 +- .../src/tests/pull_lexer_test.be | 1015 + .../src/tests/pull_lexer_transpiler_test.be | 158 + .../src/tests/symbol_registry_test.be | 30 +- .../berry_animation/src/tests/test_all.be | 3 +- .../tests/test_math_method_transpilation.be | 35 +- ...t_user_functions_in_computed_parameters.be | 16 +- .../berry_animation/src/tests/token_test.be | 271 +- 25 files changed, 12627 insertions(+), 13772 deletions(-) delete mode 100644 lib/libesp32/berry_animation/src/dsl/runtime.be create mode 100644 lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be delete mode 100644 lib/libesp32/berry_animation/src/tests/dsl_runtime_test.be create mode 100644 lib/libesp32/berry_animation/src/tests/pull_lexer_test.be create mode 100644 lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md b/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md index 5a801e6ae..3a8ef29bd 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md +++ b/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md @@ -683,7 +683,7 @@ stack traceback: ### Compilation Output ``` -dsl_compilation_error: Line 38: Transpilation failed: Line 12: Template body transpilation failed: Line 12: Expression 'animation.strip_length(engine)' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: +dsl_compilation_error: Line 12: Transpilation failed: Line 12: Template body transpilation failed: Line 12: Expression 'animation.strip_length(engine)' cannot be used in computed expressions. This creates a new instance at each evaluation. Use either: set var_name = animation.strip_length(engine)() # Single function call set computed = (existing_var + 1) / 2 # Computation with existing values stack traceback: @@ -1011,7 +1011,7 @@ SUCCESS ### Compilation Output ``` -dsl_compilation_error: Line 29: Transpilation failed: Line 9: Template body transpilation failed: Line 9: Unknown function or identifier 'abs2'. Make sure it's defined before use. +dsl_compilation_error: Line 9: Transpilation failed: Line 9: Template body transpilation failed: Line 9: Unknown function or identifier 'abs2'. Make sure it's defined before use. stack traceback: : in function `error` : in function `transpile` diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be b/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be index eac3ee86b..5e10f8af8 100644 --- a/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be +++ b/lib/libesp32/berry_animation/anim_examples/compiled/rainbow_cycle.be @@ -12,7 +12,7 @@ import animation # Auto-generated strip initialization (using Tasmota configuration) var engine = animation.init_strip() -var rainbow_palette_ = bytes("FFFF0000" "FFFF8000" "FFFFFF00" "FF00FF00" "FF0000FF" "FF8000FF" "FFFF00FF") # rainbow colors +var rainbow_palette_ = bytes("FFFF0000" "FFFF8000" "FFFFFF00" "FF00FF00" "FF0000FF" "FF8000FF" "FFFF00FF") # rainbow colors # Create smooth rainbow cycle animation var rainbow_cycle_ = animation.color_cycle(engine) rainbow_cycle_.palette = rainbow_palette_ diff --git a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md index 2b576cc76..6a322fc74 100644 --- a/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md +++ b/lib/libesp32/berry_animation/docs/DSL_TRANSPILATION.md @@ -80,17 +80,6 @@ f.close() animation_dsl.load_file("my_animation.dsl") ``` -### Runtime Management - -#### `animation_dsl.create_runtime()` -Creates a DSL runtime instance for advanced control. - -```berry -var runtime = animation_dsl.create_runtime() -runtime.load_dsl(dsl_source) -runtime.execute() -``` - ## DSL Language Overview The Animation DSL uses a declarative syntax with named parameters. All animations are created with an engine-first pattern and parameters are set individually for maximum flexibility. @@ -696,17 +685,6 @@ The DSL transpiler also generates **warnings** that don't prevent compilation bu var performance_critical_anim = animation.create_optimized_animation() ``` -3. **Minimize DSL recompilation**: - ```berry - # Good: Compile once - var runtime = animation_dsl.create_runtime() - runtime.load_dsl(source) - runtime.execute() - - # Avoid: Recompiling same DSL repeatedly - # animation_dsl.execute(same_source) # Don't do this in loops - ``` - ## Integration Examples ### With Tasmota Rules diff --git a/lib/libesp32/berry_animation/src/animation_dsl.be b/lib/libesp32/berry_animation/src/animation_dsl.be index 28e67b2d4..ef99703b9 100644 --- a/lib/libesp32/berry_animation/src/animation_dsl.be +++ b/lib/libesp32/berry_animation/src/animation_dsl.be @@ -49,8 +49,6 @@ import "dsl/transpiler.be" as dsl_transpiler register_to_dsl(dsl_transpiler) import "dsl/symbol_table.be" as dsl_symbol_table register_to_dsl(dsl_symbol_table) -import "dsl/runtime.be" as dsl_runtime -register_to_dsl(dsl_runtime) import "dsl/named_colors.be" as dsl_named_colors register_to_dsl(dsl_named_colors) @@ -100,16 +98,6 @@ def load_file(filename) end animation_dsl.load_file = load_file -# Create a DSL runtime instance -# -# @return DSLRuntime - New runtime instance -def create_runtime(strip, debug_mode) - import animation_dsl - var engine = animation.create_engine(strip) - return animation_dsl.DSLRuntime(engine, debug_mode) -end -animation_dsl.create_runtime = create_runtime - # Compile .anim file to .be file # Takes a filename with .anim suffix and compiles to same prefix with .be suffix # diff --git a/lib/libesp32/berry_animation/src/dsl/lexer.be b/lib/libesp32/berry_animation/src/dsl/lexer.be index 7d1fd785e..5029f54a2 100644 --- a/lib/libesp32/berry_animation/src/dsl/lexer.be +++ b/lib/libesp32/berry_animation/src/dsl/lexer.be @@ -1,19 +1,20 @@ -# DSL Lexer (Tokenizer) for Animation DSL -# Converts DSL source code into a stream of tokens for the single-pass transpiler +# Pull-Mode Lexer v2 for Animation DSL +# Combines pull-mode interface with original lexer.be implementation +# Reuses most of the code from lexer.be while providing pull-based token access # Import token functions and Token class import "dsl/token.be" as token_module var Token = token_module["Token"] -#@ solidify:DSLLexer,weak -class DSLLexer +#@ solidify:Lexer,weak +class Lexer var source # String - DSL source code var position # Integer - current character position var line # Integer - current line number (1-based) var column # Integer - current column number (1-based) - var tokens # List - generated tokens + var token_position # Integer - current token position (for compatibility) - # Initialize lexer with source code + # Initialize pull lexer with source code # # @param source: string - DSL source code to tokenize def init(source) @@ -21,64 +22,262 @@ class DSLLexer self.position = 0 self.line = 1 self.column = 1 - self.tokens = [] + self.token_position = 0 end - # Tokenize the entire source code + # Pull the next token from the stream + # This is the main pull-mode interface - generates tokens on demand # - # @return list - Array of Token objects - def tokenize() - self.tokens = [] + # @return Token - Next token, or nil if at end + def next_token() + # Skip whitespace and comments until we find a meaningful token or reach end + while !self.at_end() + var start_column = self.column + var ch = self.advance() + + if ch == ' ' || ch == '\t' || ch == '\r' + # Skip whitespace (but not newlines - they can be significant) + continue + elif ch == '\n' + var token = self.create_token(35 #-animation_dsl.Token.NEWLINE-#, "\n", 1) + self.line += 1 + self.column = 1 + self.token_position += 1 + return token + elif ch == '#' + var token = self.scan_comment() + self.token_position += 1 + return token + elif ch == '0' && self.peek() == 'x' + var token = self.scan_hex_color_0x() + self.token_position += 1 + return token + elif self.is_alpha(ch) || ch == '_' + var token = self.scan_identifier_or_keyword() + self.token_position += 1 + return token + elif self.is_digit(ch) + var token = self.scan_number() + self.token_position += 1 + return token + elif ch == '"' || ch == "'" + # Check for triple quotes + if (ch == '"' && self.peek() == '"' && self.peek_char_ahead(1) == '"') || + (ch == "'" && self.peek() == "'" && self.peek_char_ahead(1) == "'") + var token = self.scan_triple_quoted_string(ch) + self.token_position += 1 + return token + else + var token = self.scan_string(ch) + self.token_position += 1 + return token + end + elif ch == '$' + var token = self.scan_variable_reference() + self.token_position += 1 + return token + else + var token = self.scan_operator_or_delimiter(ch) + self.token_position += 1 + return token + end + end + + # Reached end of source + return nil + end + + # Peek at the next token without consuming it + # Uses position saving/restoring to implement peek + # + # @return Token - Next token, or nil if at end + def peek_token() + # Save current state + var saved_position = self.position + var saved_line = self.line + var saved_column = self.column + var saved_token_position = self.token_position + + # Get next token + var token = self.next_token() + if (token != nil) + # We haven't reached the end of the file + # Restore state + self.position = saved_position + self.line = saved_line + self.column = saved_column + self.token_position = saved_token_position + end + + return token + end + + # Peek ahead by n tokens without consuming them + # Note: This is less efficient than the array-based version but maintains simplicity + # + # @param n: int - Number of tokens to look ahead (1-based) + # @return Token - Token at position + n, or nil if beyond end + def peek_ahead(n) + if n <= 0 return nil end + + # Save current state + var saved_position = self.position + var saved_line = self.line + var saved_column = self.column + var saved_token_position = self.token_position + + # Advance n tokens + var token = nil + for i : 1..n + token = self.next_token() + if token == nil break end + end + + # Restore state + self.position = saved_position + self.line = saved_line + self.column = saved_column + self.token_position = saved_token_position + + return token + end + + # Check if we're at the end of the source + # + # @return bool - True if no more characters available + def at_end() + return self.position >= size(self.source) + end + + # Reset to beginning of source + def reset() self.position = 0 self.line = 1 self.column = 1 - - while !self.at_end() - self.scan_token() - end - - # Add EOF token - self.add_token(38 #-animation_dsl.Token.EOF-#, "", 0) - - return self.tokens + self.token_position = 0 end - # Scan and create the next token - def scan_token() - var start_column = self.column - var ch = self.advance() + + # Get current position in token stream (for compatibility with array-based version) + # + # @return int - Current token position + def get_position() + return self.token_position + end + + # Set position in token stream (for compatibility with array-based version) + # Note: This is a simplified implementation that resets to beginning and advances + # + # @param pos: int - New token position + def set_position(pos) + if pos < 0 return end - if ch == ' ' || ch == '\t' || ch == '\r' - # Skip whitespace (but not newlines - they can be significant) - return - elif ch == '\n' - self.add_token(35 #-animation_dsl.Token.NEWLINE-#, "\n", 1) - self.line += 1 - self.column = 1 - return - elif ch == '#' - self.scan_comment() - elif ch == '0' && self.peek() == 'x' - self.scan_hex_color_0x() - elif self.is_alpha(ch) || ch == '_' - self.scan_identifier_or_keyword() - elif self.is_digit(ch) - self.scan_number() - elif ch == '"' || ch == "'" - # Check for triple quotes - if (ch == '"' && self.peek() == '"' && self.peek_ahead(1) == '"') || - (ch == "'" && self.peek() == "'" && self.peek_ahead(1) == "'") - self.scan_triple_quoted_string(ch) - else - self.scan_string(ch) - end - elif ch == '$' - self.scan_variable_reference() - else - self.scan_operator_or_delimiter(ch) + # Save current state in case we need to restore it + var saved_position = self.position + var saved_line = self.line + var saved_column = self.column + var saved_token_position = self.token_position + + # Reset to beginning + self.position = 0 + self.line = 1 + self.column = 1 + self.token_position = 0 + + # Advance to desired token position + while self.token_position < pos && !self.at_end() + self.next_token() + end + + # If we didn't reach the desired position, it was invalid - restore state + if self.token_position != pos + self.position = saved_position + self.line = saved_line + self.column = saved_column + self.token_position = saved_token_position end end + # Create a sub-lexer (for compatibility with array-based version) + # Note: This converts token positions to character positions + # + # @param start_token_pos: int - Starting token position + # @param end_token_pos: int - Ending token position (exclusive) + # @return Lexer - New pull lexer with subset of source + def create_sub_lexer(start_token_pos, end_token_pos) + import animation_dsl + # Check for invalid ranges + if start_token_pos < 0 || end_token_pos <= start_token_pos + # Invalid range - return empty sub-lexer + return animation_dsl.create_lexer("") + end + + # Save current state + var saved_position = self.position + var saved_line = self.line + var saved_column = self.column + var saved_token_position = self.token_position + + # Reset to beginning and find character positions for token positions + self.position = 0 + self.line = 1 + self.column = 1 + self.token_position = 0 + + var start_char_pos = 0 + var end_char_pos = size(self.source) + var found_start = false + var found_end = false + + # Find start position + while self.token_position < start_token_pos && !self.at_end() + start_char_pos = self.position + self.next_token() + end + if self.token_position == start_token_pos + start_char_pos = self.position + found_start = true + end + + # Find end position + while self.token_position < end_token_pos && !self.at_end() + self.next_token() + end + if self.token_position == end_token_pos + end_char_pos = self.position + found_end = true + end + + # Restore state + self.position = saved_position + self.line = saved_line + self.column = saved_column + self.token_position = saved_token_position + + # Create sub-lexer with character range + if !found_start + return animation_dsl.create_lexer("") + end + + # Clamp end position + if end_char_pos > size(self.source) end_char_pos = size(self.source) end + if start_char_pos >= end_char_pos + return animation_dsl.create_lexer("") + end + + # Extract subset of source + var sub_source = self.source[start_char_pos..end_char_pos-1] + var sub_lexer = animation_dsl.create_lexer(sub_source) + # Ensure sub-lexer starts at position 0 (should already be 0 from init, but make sure) + sub_lexer.position = 0 + sub_lexer.line = 1 + sub_lexer.column = 1 + sub_lexer.token_position = 0 + return sub_lexer + end + + # === TOKEN SCANNING METHODS (from original lexer.be) === + # Scan comment (now unambiguous - only starts with #) def scan_comment() var start_pos = self.position - 1 @@ -90,7 +289,24 @@ class DSLLexer end var comment_text = self.source[start_pos..self.position-1] - self.add_token(37 #-animation_dsl.Token.COMMENT-#, comment_text, self.position - start_pos) + + # Trim trailing whitespace from comment text manually + # Find the last non-whitespace character in the comment content + var trimmed_text = comment_text + var end_pos = size(comment_text) - 1 + while end_pos >= 0 && (comment_text[end_pos] == ' ' || comment_text[end_pos] == '\t' || comment_text[end_pos] == '\r') + end_pos -= 1 + end + + # Extract trimmed comment text + if end_pos >= 0 + trimmed_text = comment_text[0 .. end_pos] + else + trimmed_text = "#" # Keep at least the # character for empty comments + end + + # Use trimmed text but keep original position tracking + return self.create_token(37 #-animation_dsl.Token.COMMENT-#, trimmed_text, self.position - start_pos) end # Scan hex color (0xRRGGBB, 0xAARRGGBB) @@ -112,7 +328,7 @@ class DSLLexer # Validate hex color format - support 6 (RGB) or 8 (ARGB) digits if hex_digits == 6 || hex_digits == 8 - self.add_token(4 #-animation_dsl.Token.COLOR-#, color_value, size(color_value)) + return self.create_token(4 #-animation_dsl.Token.COLOR-#, color_value, size(color_value)) else self.error("Invalid hex color format: " + color_value + " (expected 0xRRGGBB or 0xAARRGGBB)") end @@ -141,7 +357,7 @@ class DSLLexer token_type = 1 #-animation_dsl.Token.IDENTIFIER-# end - self.add_token(token_type, text, size(text)) + return self.create_token(token_type, text, size(text)) end # Scan numeric literal (with optional time/percentage/multiplier suffix) @@ -172,18 +388,18 @@ class DSLLexer # Check for time unit suffixes if self.check_time_suffix() var suffix = self.scan_time_suffix() - self.add_token(5 #-animation_dsl.Token.TIME-#, number_text + suffix, size(number_text + suffix)) + return self.create_token(5 #-animation_dsl.Token.TIME-#, number_text + suffix, size(number_text + suffix)) # Check for percentage suffix elif !self.at_end() && self.peek() == '%' self.advance() - self.add_token(6 #-animation_dsl.Token.PERCENTAGE-#, number_text + "%", size(number_text) + 1) + return self.create_token(6 #-animation_dsl.Token.PERCENTAGE-#, number_text + "%", size(number_text) + 1) # Check for multiplier suffix elif !self.at_end() && self.peek() == 'x' self.advance() - self.add_token(7 #-animation_dsl.Token.MULTIPLIER-#, number_text + "x", size(number_text) + 1) + return self.create_token(7 #-animation_dsl.Token.MULTIPLIER-#, number_text + "x", size(number_text) + 1) else # Plain number - self.add_token(2 #-animation_dsl.Token.NUMBER-#, number_text, size(number_text)) + return self.create_token(2 #-animation_dsl.Token.NUMBER-#, number_text, size(number_text)) end end @@ -266,7 +482,7 @@ class DSLLexer else # Consume closing quote self.advance() - self.add_token(3 #-animation_dsl.Token.STRING-#, value, self.position - start_pos) + return self.create_token(3 #-animation_dsl.Token.STRING-#, value, self.position - start_pos) end end @@ -286,8 +502,8 @@ class DSLLexer # Check for closing triple quotes if ch == quote_char && - self.peek_ahead(1) == quote_char && - self.peek_ahead(2) == quote_char + self.peek_char_ahead(1) == quote_char && + self.peek_char_ahead(2) == quote_char # Found closing triple quotes - consume them self.advance() # first closing quote self.advance() # second closing quote @@ -308,7 +524,7 @@ class DSLLexer if self.at_end() && !(self.source[self.position-3..self.position-1] == quote_char + quote_char + quote_char) self.error("Unterminated triple-quoted string literal") else - self.add_token(3 #-animation_dsl.Token.STRING-#, value, self.position - start_pos) + return self.create_token(3 #-animation_dsl.Token.STRING-#, value, self.position - start_pos) end end @@ -327,7 +543,7 @@ class DSLLexer end var var_ref = self.source[start_pos..self.position-1] - self.add_token(36 #-animation_dsl.Token.VARIABLE_REF-#, var_ref, size(var_ref)) + return self.create_token(36 #-animation_dsl.Token.VARIABLE_REF-#, var_ref, size(var_ref)) end # Scan operator or delimiter @@ -336,99 +552,89 @@ class DSLLexer if ch == '=' if self.match('=') - self.add_token(15 #-animation_dsl.Token.EQUAL-#, "==", 2) + return self.create_token(15 #-animation_dsl.Token.EQUAL-#, "==", 2) else - self.add_token(8 #-animation_dsl.Token.ASSIGN-#, "=", 1) + return self.create_token(8 #-animation_dsl.Token.ASSIGN-#, "=", 1) end elif ch == '!' if self.match('=') - self.add_token(16 #-animation_dsl.Token.NOT_EQUAL-#, "!=", 2) + return self.create_token(16 #-animation_dsl.Token.NOT_EQUAL-#, "!=", 2) else - self.add_token(23 #-animation_dsl.Token.LOGICAL_NOT-#, "!", 1) + return self.create_token(23 #-animation_dsl.Token.LOGICAL_NOT-#, "!", 1) end elif ch == '<' if self.match('=') - self.add_token(18 #-animation_dsl.Token.LESS_EQUAL-#, "<=", 2) + return self.create_token(18 #-animation_dsl.Token.LESS_EQUAL-#, "<=", 2) elif self.match('<') # Left shift - not used in DSL but included for completeness self.error("Left shift operator '<<' not supported in DSL") else - self.add_token(17 #-animation_dsl.Token.LESS_THAN-#, "<", 1) + return self.create_token(17 #-animation_dsl.Token.LESS_THAN-#, "<", 1) end elif ch == '>' if self.match('=') - self.add_token(20 #-animation_dsl.Token.GREATER_EQUAL-#, ">=", 2) + return self.create_token(20 #-animation_dsl.Token.GREATER_EQUAL-#, ">=", 2) elif self.match('>') # Right shift - not used in DSL but included for completeness self.error("Right shift operator '>>' not supported in DSL") else - self.add_token(19 #-animation_dsl.Token.GREATER_THAN-#, ">", 1) + return self.create_token(19 #-animation_dsl.Token.GREATER_THAN-#, ">", 1) end elif ch == '&' if self.match('&') - self.add_token(21 #-animation_dsl.Token.LOGICAL_AND-#, "&&", 2) + return self.create_token(21 #-animation_dsl.Token.LOGICAL_AND-#, "&&", 2) else self.error("Single '&' not supported in DSL") end elif ch == '|' if self.match('|') - self.add_token(22 #-animation_dsl.Token.LOGICAL_OR-#, "||", 2) + return self.create_token(22 #-animation_dsl.Token.LOGICAL_OR-#, "||", 2) else self.error("Single '|' not supported in DSL") end elif ch == '-' if self.match('>') - self.add_token(34 #-animation_dsl.Token.ARROW-#, "->", 2) + return self.create_token(34 #-animation_dsl.Token.ARROW-#, "->", 2) else - self.add_token(10 #-animation_dsl.Token.MINUS-#, "-", 1) + return self.create_token(10 #-animation_dsl.Token.MINUS-#, "-", 1) end elif ch == '+' - self.add_token(9 #-animation_dsl.Token.PLUS-#, "+", 1) + return self.create_token(9 #-animation_dsl.Token.PLUS-#, "+", 1) elif ch == '*' - self.add_token(11 #-animation_dsl.Token.MULTIPLY-#, "*", 1) + return self.create_token(11 #-animation_dsl.Token.MULTIPLY-#, "*", 1) elif ch == '/' - self.add_token(12 #-animation_dsl.Token.DIVIDE-#, "/", 1) + return self.create_token(12 #-animation_dsl.Token.DIVIDE-#, "/", 1) elif ch == '%' - self.add_token(13 #-animation_dsl.Token.MODULO-#, "%", 1) + return self.create_token(13 #-animation_dsl.Token.MODULO-#, "%", 1) elif ch == '^' - self.add_token(14 #-animation_dsl.Token.POWER-#, "^", 1) + return self.create_token(14 #-animation_dsl.Token.POWER-#, "^", 1) elif ch == '(' - self.add_token(24 #-animation_dsl.Token.LEFT_PAREN-#, "(", 1) + return self.create_token(24 #-animation_dsl.Token.LEFT_PAREN-#, "(", 1) elif ch == ')' - self.add_token(25 #-animation_dsl.Token.RIGHT_PAREN-#, ")", 1) + return self.create_token(25 #-animation_dsl.Token.RIGHT_PAREN-#, ")", 1) elif ch == '{' - self.add_token(26 #-animation_dsl.Token.LEFT_BRACE-#, "{", 1) + return self.create_token(26 #-animation_dsl.Token.LEFT_BRACE-#, "{", 1) elif ch == '}' - self.add_token(27 #-animation_dsl.Token.RIGHT_BRACE-#, "}", 1) + return self.create_token(27 #-animation_dsl.Token.RIGHT_BRACE-#, "}", 1) elif ch == '[' - self.add_token(28 #-animation_dsl.Token.LEFT_BRACKET-#, "[", 1) + return self.create_token(28 #-animation_dsl.Token.LEFT_BRACKET-#, "[", 1) elif ch == ']' - self.add_token(29 #-animation_dsl.Token.RIGHT_BRACKET-#, "]", 1) + return self.create_token(29 #-animation_dsl.Token.RIGHT_BRACKET-#, "]", 1) elif ch == ',' - self.add_token(30 #-animation_dsl.Token.COMMA-#, ",", 1) + return self.create_token(30 #-animation_dsl.Token.COMMA-#, ",", 1) elif ch == ';' - self.add_token(31 #-animation_dsl.Token.SEMICOLON-#, ";", 1) + return self.create_token(31 #-animation_dsl.Token.SEMICOLON-#, ";", 1) elif ch == ':' - self.add_token(32 #-animation_dsl.Token.COLON-#, ":", 1) + return self.create_token(32 #-animation_dsl.Token.COLON-#, ":", 1) elif ch == '.' - if self.match('.') - # Range operator (..) - treat as two dots for now - self.add_token(33 #-animation_dsl.Token.DOT-#, ".", 1) - self.add_token(33 #-animation_dsl.Token.DOT-#, ".", 1) - else - self.add_token(33 #-animation_dsl.Token.DOT-#, ".", 1) - end + # For now, just handle single dots - range operators can be added later if needed + return self.create_token(33 #-animation_dsl.Token.DOT-#, ".", 1) else self.error("Unexpected character: '" + ch + "'") end end - # Helper methods - - # Check if at end of source - def at_end() - return self.position >= size(self.source) - end + # === HELPER METHODS (from original lexer.be) === # Advance position and return current character def advance() @@ -450,16 +656,8 @@ class DSLLexer return self.source[self.position] end - # Peek at next character without advancing - def peek_next() - if self.position + 1 >= size(self.source) - return "" - end - return self.source[self.position + 1] - end - # Peek ahead by n characters without advancing - def peek_ahead(n) + def peek_char_ahead(n) if self.position + n >= size(self.source) return "" end @@ -494,11 +692,10 @@ class DSLLexer return self.is_digit(ch) || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F') end - # Add token to tokens list - def add_token(token_type, value, length) + # Create token with proper position tracking + def create_token(token_type, value, length) import animation_dsl - var token = animation_dsl.Token(token_type, value, self.line, self.column - length, length) - self.tokens.push(token) + return animation_dsl.Token(token_type, value, self.line, self.column - length, length) end # Raise lexical error immediately @@ -506,40 +703,8 @@ class DSLLexer var error_msg = "Line " + str(self.line) + ":" + str(self.column) + ": " + message raise "lexical_error", error_msg end - - # Reset lexer state for reuse - def reset(new_source) - self.source = new_source != nil ? new_source : "" - self.position = 0 - self.line = 1 - self.column = 1 - self.tokens = [] - end - - # Get current position info for debugging - def get_position_info() - return { - "position": self.position, - "line": self.line, - "column": self.column, - "at_end": self.at_end() - } - end - - -end - -# Utility function to tokenize DSL source code -# -# @param source: string - DSL source code -# @return list - Array of Token objects -def tokenize_dsl(source) - import animation_dsl - var lexer = animation_dsl.DSLLexer(source) - return lexer.tokenize() end return { - "DSLLexer": DSLLexer, - "tokenize_dsl": tokenize_dsl -} + "create_lexer": Lexer +} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/dsl/named_colors.be b/lib/libesp32/berry_animation/src/dsl/named_colors.be index 7a10da066..49ee8211f 100644 --- a/lib/libesp32/berry_animation/src/dsl/named_colors.be +++ b/lib/libesp32/berry_animation/src/dsl/named_colors.be @@ -2,61 +2,61 @@ # Provides color name to ARGB value mappings for the DSL transpiler # Static color mapping for named colors (helps with solidification) -# Maps color names to ARGB hex values (0xAARRGGBB format) +# Maps color names to ARGB integer values (0xAARRGGBB format) # All colors have full alpha (0xFF) except transparent var named_colors = { # Primary colors - "red": "0xFFFF0000", # Pure red - "green": "0xFF008000", # HTML/CSS standard green (darker, more readable) - "blue": "0xFF0000FF", # Pure blue + "red": 0xFFFF0000, # Pure red + "green": 0xFF008000, # HTML/CSS standard green (darker, more readable) + "blue": 0xFF0000FF, # Pure blue # Achromatic colors - "white": "0xFFFFFFFF", # Pure white - "black": "0xFF000000", # Pure black - "gray": "0xFF808080", # Medium gray - "grey": "0xFF808080", # Alternative spelling - "silver": "0xFFC0C0C0", # Light gray + "white": 0xFFFFFFFF, # Pure white + "black": 0xFF000000, # Pure black + "gray": 0xFF808080, # Medium gray + "grey": 0xFF808080, # Alternative spelling + "silver": 0xFFC0C0C0, # Light gray # Secondary colors - "yellow": "0xFFFFFF00", # Pure yellow (red + green) - "cyan": "0xFF00FFFF", # Pure cyan (green + blue) - "magenta": "0xFFFF00FF", # Pure magenta (red + blue) + "yellow": 0xFFFFFF00, # Pure yellow (red + green) + "cyan": 0xFF00FFFF, # Pure cyan (green + blue) + "magenta": 0xFFFF00FF, # Pure magenta (red + blue) # Extended web colors - "orange": "0xFFFFA500", # Orange - "purple": "0xFF800080", # Purple (darker magenta) - "pink": "0xFFFFC0CB", # Light pink - "lime": "0xFF00FF00", # Pure green (HTML/CSS lime = full intensity) - "navy": "0xFF000080", # Dark blue - "olive": "0xFF808000", # Dark yellow-green - "maroon": "0xFF800000", # Dark red - "teal": "0xFF008080", # Dark cyan - "aqua": "0xFF00FFFF", # Same as cyan - "fuchsia": "0xFFFF00FF", # Same as magenta + "orange": 0xFFFFA500, # Orange + "purple": 0xFF800080, # Purple (darker magenta) + "pink": 0xFFFFC0CB, # Light pink + "lime": 0xFF00FF00, # Pure green (HTML/CSS lime = full intensity) + "navy": 0xFF000080, # Dark blue + "olive": 0xFF808000, # Dark yellow-green + "maroon": 0xFF800000, # Dark red + "teal": 0xFF008080, # Dark cyan + "aqua": 0xFF00FFFF, # Same as cyan + "fuchsia": 0xFFFF00FF, # Same as magenta # Precious metals - "gold": "0xFFFFD700", # Metallic gold + "gold": 0xFFFFD700, # Metallic gold # Natural colors - "brown": "0xFFA52A2A", # Saddle brown - "tan": "0xFFD2B48C", # Light brown/beige - "beige": "0xFFF5F5DC", # Very light brown - "ivory": "0xFFFFFFF0", # Off-white with yellow tint - "snow": "0xFFFFFAFA", # Off-white with slight blue tint + "brown": 0xFFA52A2A, # Saddle brown + "tan": 0xFFD2B48C, # Light brown/beige + "beige": 0xFFF5F5DC, # Very light brown + "ivory": 0xFFFFFFF0, # Off-white with yellow tint + "snow": 0xFFFFFAFA, # Off-white with slight blue tint # Flower/nature colors - "indigo": "0xFF4B0082", # Deep blue-purple - "violet": "0xFFEE82EE", # Light purple - "crimson": "0xFFDC143C", # Deep red - "coral": "0xFFFF7F50", # Orange-pink - "salmon": "0xFFFA8072", # Pink-orange - "khaki": "0xFFF0E68C", # Pale yellow-brown - "plum": "0xFFDDA0DD", # Light purple - "orchid": "0xFFDA70D6", # Medium purple - "turquoise": "0xFF40E0D0", # Blue-green + "indigo": 0xFF4B0082, # Deep blue-purple + "violet": 0xFFEE82EE, # Light purple + "crimson": 0xFFDC143C, # Deep red + "coral": 0xFFFF7F50, # Orange-pink + "salmon": 0xFFFA8072, # Pink-orange + "khaki": 0xFFF0E68C, # Pale yellow-brown + "plum": 0xFFDDA0DD, # Light purple + "orchid": 0xFFDA70D6, # Medium purple + "turquoise": 0xFF40E0D0, # Blue-green # Special - "transparent": "0x00000000" # Fully transparent (alpha = 0) + "transparent": 0x00000000 # Fully transparent (alpha = 0) } return {"named_colors": named_colors} diff --git a/lib/libesp32/berry_animation/src/dsl/runtime.be b/lib/libesp32/berry_animation/src/dsl/runtime.be deleted file mode 100644 index 0a26a2cc6..000000000 --- a/lib/libesp32/berry_animation/src/dsl/runtime.be +++ /dev/null @@ -1,179 +0,0 @@ -# DSL Runtime Integration -# Provides complete DSL execution lifecycle management - -#@ solidify:DSLRuntime,weak -class DSLRuntime - var engine # Animation engine instance - var active_source # Currently loaded DSL source - var debug_mode # Enable debug output - - def init(engine, debug_mode) - self.engine = engine - self.active_source = nil - self.debug_mode = debug_mode != nil ? debug_mode : false - end - - # Load and execute DSL from string - def load_dsl(source_code) - import animation_dsl - if source_code == nil || size(source_code) == 0 - if self.debug_mode - print("DSL: Empty source code") - end - return false - end - - # Compile DSL with exception handling - if self.debug_mode - print("DSL: Compiling source...") - end - - try - var berry_code = animation_dsl.compile(source_code) - # Execute the compiled Berry code - return self.execute_berry_code(berry_code, source_code) - except "dsl_compilation_error" as e, msg - if self.debug_mode - print("DSL: Compilation failed - " + msg) - end - return false - end - end - - # Load DSL from file - def load_dsl_file(filename) - try - var file = open(filename, "r") - if file == nil - if self.debug_mode - print(f"DSL: Cannot open file {filename}") - end - return false - end - - var source_code = file.read() - file.close() - - if self.debug_mode - print(f"DSL: Loaded {size(source_code)} characters from {filename}") - end - - return self.load_dsl(source_code) - - except .. as e, msg - if self.debug_mode - print(f"DSL: File loading error: {msg}") - end - return false - end - end - - # Reload current DSL (useful for development) - def reload_dsl() - if self.active_source == nil - if self.debug_mode - print("DSL: No active DSL to reload") - end - return false - end - - if self.debug_mode - print("DSL: Reloading current DSL...") - end - - # Stop current animations - self.engine.stop() - self.engine.clear() - - # Reload with fresh compilation - return self.load_dsl(self.active_source) - end - - # Get generated Berry code for inspection (debugging) - def get_generated_code(source_code) - import animation_dsl - if source_code == nil - source_code = self.active_source - end - - if source_code == nil - return nil - end - - # Generate code with exception handling - try - return animation_dsl.compile(source_code) - except "dsl_compilation_error" as e, msg - if self.debug_mode - print("DSL: Code generation failed - " + msg) - end - return nil - end - end - - # Execute Berry code with proper error handling - def execute_berry_code(berry_code, source_code) - try - # Stop current animations before starting new ones - self.engine.stop() - self.engine.clear() - - # Compile and execute the Berry code - var compiled_func = compile(berry_code) - if compiled_func == nil - if self.debug_mode - print("DSL: Berry compilation failed") - end - return false - end - - # Execute in controlled environment - compiled_func() - - # Store as active source - self.active_source = source_code - - if self.debug_mode - print("DSL: Execution successful") - end - - return true - - except .. as e, msg - if self.debug_mode - print(f"DSL: Execution error: {msg}") - end - return false - end - end - - - - # Get current engine for external access - def get_engine() - return self.engine - end - - # Check if DSL is currently loaded - def is_loaded() - return self.active_source != nil - end - - # Get current DSL source - def get_active_source() - return self.active_source - end -end - -# Factory function for easy creation -def create_dsl_runtime(strip, debug_mode) - import animation_dsl - var engine = animation.create_engine(strip) - return animation_dsl.DSLRuntime(engine, debug_mode) -end - -# Return module exports -return { - "DSLRuntime": DSLRuntime, - "create_dsl_runtime": create_dsl_runtime -} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/dsl/symbol_table.be b/lib/libesp32/berry_animation/src/dsl/symbol_table.be index c6eba604e..4d6ab8603 100644 --- a/lib/libesp32/berry_animation/src/dsl/symbol_table.be +++ b/lib/libesp32/berry_animation/src/dsl/symbol_table.be @@ -467,7 +467,9 @@ class SymbolTable if entry != nil # For builtin color entries, return the actual color value directly if entry.is_builtin && entry.type == 11 #-animation_dsl._symbol_entry.TYPE_COLOR-# - return animation_dsl.named_colors[name] + var color_value = animation_dsl.named_colors[name] + # Convert integer to hex string format for transpiler + return f"0x{color_value:08X}" end return entry.get_reference() end @@ -590,7 +592,9 @@ class SymbolTable import animation_dsl var entry = self.get(color_name) # This will trigger _detect_and_cache_symbol if needed if entry != nil && entry.is_builtin && entry.type == 11 #-animation_dsl._symbol_entry.TYPE_COLOR-# - return animation_dsl.named_colors[color_name] + var color_value = animation_dsl.named_colors[color_name] + # Convert integer to hex string format for transpiler + return f"0x{color_value:08X}" end return "0xFFFFFFFF" # Default fallback end diff --git a/lib/libesp32/berry_animation/src/dsl/token.be b/lib/libesp32/berry_animation/src/dsl/token.be index f2d16b54a..2ea4d27a3 100644 --- a/lib/libesp32/berry_animation/src/dsl/token.be +++ b/lib/libesp32/berry_animation/src/dsl/token.be @@ -4,16 +4,16 @@ #@ solidify:Token,weak class Token # Basic token types - static var KEYWORD = 0 # strip, color, animation, sequence, etc. - static var IDENTIFIER = 1 # user-defined names - static var NUMBER = 2 # 123, 3.14 - static var STRING = 3 # "hello", 'world' - static var COLOR = 4 # #FF0000, rgb(255,0,0), hsv(240,100,100) - static var TIME = 5 # 2s, 500ms, 1m, 2h - static var PERCENTAGE = 6 # 50%, 100% - static var MULTIPLIER = 7 # 2x, 0.5x + # static var KEYWORD = 0 # strip, color, animation, sequence, etc. + # static var IDENTIFIER = 1 # user-defined names + # static var NUMBER = 2 # 123, 3.14 + # static var STRING = 3 # "hello", 'world' + # static var COLOR = 4 # #FF0000, rgb(255,0,0), hsv(240,100,100) + # static var TIME = 5 # 2s, 500ms, 1m, 2h + # static var PERCENTAGE = 6 # 50%, 100% + # static var MULTIPLIER = 7 # 2x, 0.5x - # Static arrays for better solidification (moved from inline arrays) + # Human readable type name for each type value static var names = [ "KEYWORD", "IDENTIFIER", "NUMBER", "STRING", "COLOR", "TIME", "PERCENTAGE", "MULTIPLIER", "ASSIGN", "PLUS", "MINUS", "MULTIPLY", "DIVIDE", "MODULO", "POWER", @@ -21,7 +21,7 @@ class Token "LOGICAL_AND", "LOGICAL_OR", "LOGICAL_NOT", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACE", "RIGHT_BRACE", "LEFT_BRACKET", "RIGHT_BRACKET", "COMMA", "SEMICOLON", "COLON", "DOT", "ARROW", - "NEWLINE", "VARIABLE_REF", "COMMENT", "EOF", "ERROR", + "NEWLINE", "VARIABLE_REF", "COMMENT", "" #-ex-EOF-#, "ERROR", "EVENT_ON", "EVENT_INTERRUPT", "EVENT_RESUME", "EVENT_AFTER" ] @@ -70,63 +70,55 @@ class Token "turquoise", "tan", "beige", "ivory", "snow", "transparent" ] - # Operators - static var ASSIGN = 8 # = - static var PLUS = 9 # + - static var MINUS = 10 # - - static var MULTIPLY = 11 # * - static var DIVIDE = 12 # / - static var MODULO = 13 # % - static var POWER = 14 # ^ + # # Operators + # static var ASSIGN = 8 # = + # static var PLUS = 9 # + + # static var MINUS = 10 # - + # static var MULTIPLY = 11 # * + # static var DIVIDE = 12 # / + # static var MODULO = 13 # % + # static var POWER = 14 # ^ - # Comparison operators - static var EQUAL = 15 # == - static var NOT_EQUAL = 16 # != - static var LESS_THAN = 17 # < - static var LESS_EQUAL = 18 # <= - static var GREATER_THAN = 19 # > - static var GREATER_EQUAL = 20 # >= + # # Comparison operators + # static var EQUAL = 15 # == + # static var NOT_EQUAL = 16 # != + # static var LESS_THAN = 17 # < + # static var LESS_EQUAL = 18 # <= + # static var GREATER_THAN = 19 # > + # static var GREATER_EQUAL = 20 # >= - # Logical operators - static var LOGICAL_AND = 21 # && - static var LOGICAL_OR = 22 # || - static var LOGICAL_NOT = 23 # ! + # # Logical operators + # static var LOGICAL_AND = 21 # && + # static var LOGICAL_OR = 22 # || + # static var LOGICAL_NOT = 23 # ! - # Delimiters - static var LEFT_PAREN = 24 # ( - static var RIGHT_PAREN = 25 # ) - static var LEFT_BRACE = 26 # { - static var RIGHT_BRACE = 27 # } - static var LEFT_BRACKET = 28 # [ - static var RIGHT_BRACKET = 29 # ] + # # Delimiters + # static var LEFT_PAREN = 24 # ( + # static var RIGHT_PAREN = 25 # ) + # static var LEFT_BRACE = 26 # { + # static var RIGHT_BRACE = 27 # } + # static var LEFT_BRACKET = 28 # [ + # static var RIGHT_BRACKET = 29 # ] - # Separators - static var COMMA = 30 # , - static var SEMICOLON = 31 # ; - static var COLON = 32 # : - static var DOT = 33 # . - static var ARROW = 34 # -> + # # Separators + # static var COMMA = 30 # , + # static var SEMICOLON = 31 # ; + # static var COLON = 32 # : + # static var DOT = 33 # . + # static var ARROW = 34 # -> - # Special tokens - static var NEWLINE = 35 # \n (significant in some contexts) - static var VARIABLE_REF = 36 # $identifier - static var COMMENT = 37 # # comment text - static var EOF = 38 # End of file - static var ERROR = 39 # Error token for invalid input + # # Special tokens + # static var NEWLINE = 35 # \n (significant in some contexts) + # static var VARIABLE_REF = 36 # $identifier + # static var COMMENT = 37 # # comment text + # # static var EOF = 38 # End of file (REMOVED - reserved number) + # static var ERROR = 39 # Error token for invalid input - # Event-related tokens - static var EVENT_ON = 40 # on (event handler keyword) - static var EVENT_INTERRUPT = 41 # interrupt - static var EVENT_RESUME = 42 # resume - static var EVENT_AFTER = 43 # after (for resume timing) - - # Convert token type to string for debugging - static def to_string(token_type) - if token_type >= 0 && token_type < size(_class.names) - return _class.names[token_type] - end - return "UNKNOWN" - end + # # Event-related tokens + # static var EVENT_ON = 40 # on (event handler keyword) + # static var EVENT_INTERRUPT = 41 # interrupt + # static var EVENT_RESUME = 42 # resume + # static var EVENT_AFTER = 43 # after (for resume timing) var type # int - the type of this token (Token.KEYWORD, Token.IDENTIFIER, etc.) var value # String - the actual text value of the token @@ -149,96 +141,17 @@ class Token self.length = length != nil ? length : size(self.value) end - # Check if this token is of a specific type - # - # @param token_type: int - Token type to check against - # @return bool - True if token matches the type - def is_type(token_type) - return self.type == token_type - end - - # Check if this token is a keyword with specific value - # - # @param keyword: string - Keyword to check for - # @return bool - True if token is the specified keyword - def is_keyword(keyword) - return self.type == 0 #-self.KEYWORD-# && self.value == keyword - end - - # Check if this token is an identifier with specific value - # - # @param name: string - Identifier name to check for - # @return bool - True if token is the specified identifier - def is_identifier(name) - return self.type == 1 #-self.IDENTIFIER-# && self.value == name - end - - # Check if this token is an operator - # - # @return bool - True if token is any operator type - def is_operator() - return self.type >= 8 #-self.ASSIGN-# && self.type <= 23 #-self.LOGICAL_NOT-# - end - - # Check if this token is a delimiter - # - # @return bool - True if token is any delimiter type - def is_delimiter() - return self.type >= 24 #-self.LEFT_PAREN-# && self.type <= 29 #-self.RIGHT_BRACKET-# - end - - # Check if this token is a separator - # - # @return bool - True if token is any separator type - def is_separator() - return self.type >= 30 #-self.COMMA-# && self.type <= 34 #-self.ARROW-# - end - - # Check if this token is a literal value - # - # @return bool - True if token represents a literal value - def is_literal() - return self.type == 2 #-self.NUMBER-# || - self.type == 3 #-self.STRING-# || - self.type == 4 #-self.COLOR-# || - self.type == 5 #-self.TIME-# || - self.type == 6 #-self.PERCENTAGE-# || - self.type == 7 #-self.MULTIPLIER-# - end - - # Get the end column of this token - # - # @return int - Column number where token ends - def end_column() - return self.column + self.length - 1 - end - - # Create a copy of this token with a different type - # - # @param new_type: int - New token type - # @return Token - New token with same position but different type - def with_type(new_type) - import animation_dsl - return animation_dsl.Token(new_type, self.value, self.line, self.column, self.length) - end - - # Create a copy of this token with a different value - # - # @param new_value: string - New value - # @return Token - New token with same position but different value - def with_value(new_value) - import animation_dsl - return animation_dsl.Token(self.type, new_value, self.line, self.column, size(new_value)) - end - # Get a string representation of the token for debugging # # @return string - Human-readable token description def tostring() - var type_name = self.to_string(self.type) - if self.type == 38 #-self.EOF-# - return f"Token({type_name} at {self.line}:{self.column})" - elif self.type == 35 #-self.NEWLINE-# + var type_name = "UNKNOWN" + if self.type >= 0 && self.type < size(self.names) + type_name = self.names[self.type] + end + # if self.type == 38 #-self.EOF-# + # return f"Token({type_name} at {self.line}:{self.column})" + if self.type == 35 #-self.NEWLINE-# return f"Token({type_name} at {self.line}:{self.column})" elif size(self.value) > 20 var short_value = self.value[0..17] + "..." @@ -248,200 +161,10 @@ class Token end end - # Get a compact string representation for error messages - # - # @return string - Compact token description - def to_error_string() - if self.type == 38 #-self.EOF-# - return "end of file" - elif self.type == 35 #-self.NEWLINE-# - return "newline" - elif self.type == 0 #-self.KEYWORD-# - return f"keyword '{self.value}'" - elif self.type == 1 #-self.IDENTIFIER-# - return f"identifier '{self.value}'" - elif self.type == 3 #-self.STRING-# - return f"string '{self.value}'" - elif self.type == 2 #-self.NUMBER-# - return f"number '{self.value}'" - elif self.type == 4 #-self.COLOR-# - return f"color '{self.value}'" - elif self.type == 5 #-self.TIME-# - return f"time '{self.value}'" - elif self.type == 6 #-self.PERCENTAGE-# - return f"percentage '{self.value}'" - elif self.type == 39 #-self.ERROR-# - return f"invalid token '{self.value}'" - else - return f"'{self.value}'" - end - end - - # Check if this token represents a boolean value - # - # @return bool - True if token is "true" or "false" keyword - def is_boolean() - return self.type == 0 #-self.KEYWORD-# && (self.value == "true" || self.value == "false") - end - - # Get boolean value if this token represents one - # - # @return bool - Boolean value, or nil if not a boolean token - def get_boolean_value() - if self.is_boolean() - return self.value == "true" - end - return nil - end - - # Check if this token represents a numeric value - # - # @return bool - True if token can be converted to a number - def is_numeric() - return self.type == 2 #-self.NUMBER-# || - self.type == 5 #-self.TIME-# || - self.type == 6 #-self.PERCENTAGE-# || - self.type == 7 #-self.MULTIPLIER-# - end - - # Get numeric value from token (without units) - returns only integers - # - # @return int - Numeric value, or nil if not numeric - # - time is in ms - # - percentage is converted to 100% = 255 - # - times is converted to x256 (2x = 512) - def get_numeric_value() - import string - import math - - if self.type == 2 #-self.NUMBER-# - return math.round(real(self.value)) - elif self.type == 5 #-self.TIME-# - # Remove time unit suffix and convert to milliseconds - var value_str = self.value - if string.endswith(value_str, "ms") - return math.round(real(value_str[0..-3])) - elif string.endswith(value_str, "s") - return math.round(real(value_str[0..-2]) * 1000) - elif string.endswith(value_str, "m") - return math.round(real(value_str[0..-2]) * 60000) - elif string.endswith(value_str, "h") - return math.round(real(value_str[0..-2]) * 3600000) - end - elif self.type == 6 #-self.PERCENTAGE-# - # Remove % and convert to 0-255 range (100% = 255) - var percent = math.round(real(self.value[0..-2])) - return tasmota.scale_uint(percent, 0, 100, 0, 255) - elif self.type == 7 #-self.MULTIPLIER-# - # Remove x suffix and convert to x256 scale (2x = 512) - var multiplier = real(self.value[0..-2]) - return math.round(multiplier * 256) - end - return nil - end - - - - # Check if this token can start an expression - # - # @return bool - True if token can begin an expression - def can_start_expression() - return self.is_literal() || - self.type == 1 #-self.IDENTIFIER-# || - self.type == 36 #-self.VARIABLE_REF-# || - self.type == 24 #-self.LEFT_PAREN-# || - self.type == 23 #-self.LOGICAL_NOT-# || - self.type == 10 #-self.MINUS-# || - self.type == 9 #-self.PLUS-# - end - - # Check if this token can end an expression - # - # @return bool - True if token can end an expression - def can_end_expression() - return self.is_literal() || - self.type == 1 #-self.IDENTIFIER-# || - self.type == 36 #-self.VARIABLE_REF-# || - self.type == 25 #-self.RIGHT_PAREN-# - end - - # Check if this token indicates the start of a new top-level statement - # Useful for single-pass transpiler to know when to stop collecting expression tokens - # - # @return bool - True if token starts a new statement - def is_statement_start() - if self.type != 0 #-self.KEYWORD-# - return false - end - - for keyword : self.statement_keywords - if self.value == keyword - return true - end - end - return false - end - - # Check if this token is a DSL function name (for animation expressions) - # Uses dynamic introspection to check if function exists in animation module - # - # @return bool - True if token is a DSL function name - def is_dsl_function() - if self.type != 0 #-self.KEYWORD-# - return false - end - - # Use dynamic introspection to check if function exists in animation module - # This automatically supports any new functions added to the framework - try - import introspect - var animation = global.animation - if animation != nil - var members = introspect.members(animation) - return members.find(self.value) != nil - end - except .. as e, msg - # Fallback to false if introspection fails - return false - end - - return false - end end # Utility functions for token handling -# Create an EOF token at a specific position -# -# @param line: int - Line number -# @param column: int - Column number -# @return Token - EOF token -def create_eof_token(line, column) - import animation_dsl - return animation_dsl.Token(38 #-animation_dsl.Token.EOF-#, "", line, column, 0) -end - -# Create an error token with a message -# -# @param message: string - Error message -# @param line: int - Line number -# @param column: int - Column number -# @return Token - Error token -def create_error_token(message, line, column) - import animation_dsl - return animation_dsl.Token(39 #-animation_dsl.Token.ERROR-#, message, line, column, size(message)) -end - -# Create a newline token -# -# @param line: int - Line number -# @param column: int - Column number -# @return Token - Newline token -def create_newline_token(line, column) - import animation_dsl - return animation_dsl.Token(35 #-animation_dsl.Token.NEWLINE-#, "\n", line, column, 1) -end - # Check if a string is a reserved keyword # # @param word: string - Word to check @@ -470,45 +193,8 @@ def is_color_name(word) return false end -# Get the precedence of an operator token -# -# @param token: Token - Operator token -# @return int - Precedence level (higher number = higher precedence) -def get_operator_precedence(token) - if token.type == 22 #-animation_dsl.Token.LOGICAL_OR-# - return 1 - elif token.type == 21 #-animation_dsl.Token.LOGICAL_AND-# - return 2 - elif token.type == 15 #-animation_dsl.Token.EQUAL-# || token.type == 16 #-animation_dsl.Token.NOT_EQUAL-# - return 3 - elif token.type == 17 #-animation_dsl.Token.LESS_THAN-# || token.type == 18 #-animation_dsl.Token.LESS_EQUAL-# || - token.type == 19 #-animation_dsl.Token.GREATER_THAN-# || token.type == 20 #-animation_dsl.Token.GREATER_EQUAL-# - return 4 - elif token.type == 9 #-animation_dsl.Token.PLUS-# || token.type == 10 #-animation_dsl.Token.MINUS-# - return 5 - elif token.type == 11 #-animation_dsl.Token.MULTIPLY-# || token.type == 12 #-animation_dsl.Token.DIVIDE-# || token.type == 13 #-animation_dsl.Token.MODULO-# - return 6 - elif token.type == 14 #-animation_dsl.Token.POWER-# - return 7 - end - return 0 # Not an operator or unknown operator -end - -# Check if an operator is right-associative -# -# @param token: Token - Operator token -# @return bool - True if operator is right-associative -def is_right_associative(token) - return token.type == 14 #-animation_dsl.Token.POWER-# # Only power operator is right-associative -end - return { "Token": Token, - "create_eof_token": create_eof_token, - "create_error_token": create_error_token, - "create_newline_token": create_newline_token, "is_keyword": is_keyword, - "is_color_name": is_color_name, - "get_operator_precedence": get_operator_precedence, - "is_right_associative": is_right_associative + "is_color_name": is_color_name } \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/dsl/transpiler.be b/lib/libesp32/berry_animation/src/dsl/transpiler.be index 45210b568..f7adaa595 100644 --- a/lib/libesp32/berry_animation/src/dsl/transpiler.be +++ b/lib/libesp32/berry_animation/src/dsl/transpiler.be @@ -4,8 +4,7 @@ #@ solidify:SimpleDSLTranspiler,weak class SimpleDSLTranspiler - var tokens # Token stream from lexer - var pos # Current token position + var pull_lexer # Pull lexer instance var output # Generated Berry code lines var warnings # Compilation warnings var run_statements # Collect all run statements for single engine.run() @@ -59,29 +58,30 @@ class SimpleDSLTranspiler # String representation for debugging def tostring() var instance_str = (self.instance_for_validation != nil) ? f"instance={classname(self.instance_for_validation)}" : "instance=nil" - var type_str = self._type_to_string(self.return_type) - return f"ExpressionResult(expr='{self.expr}', dynamic={self.has_dynamic}, dangerous={self.has_dangerous}, comp={self.has_computation}, type={type_str}, {instance_str})" + # var type_str = self._type_to_string(self.return_type) + # return f"ExpressionResult(expr='{self.expr}', dynamic={self.has_dynamic}, dangerous={self.has_dangerous}, comp={self.has_computation}, type={type_str}, {instance_str})" + return f"ExpressionResult(expr='{self.expr}', dynamic={self.has_dynamic}, dangerous={self.has_dangerous}, comp={self.has_computation}, type={self.return_type}, {instance_str})" end - # Helper method to convert type number to string for debugging - def _type_to_string(type_num) - if type_num == 1 #-animation_dsl._symbol_entry.TYPE_PALETTE_CONSTANT-# return "palette_constant" - elif type_num == 2 #-animation_dsl._symbol_entry.TYPE_PALETTE-# return "palette" - elif type_num == 3 #-animation_dsl._symbol_entry.TYPE_CONSTANT-# return "constant" - elif type_num == 4 #-animation_dsl._symbol_entry.TYPE_MATH_FUNCTION-# return "math_function" - elif type_num == 5 #-animation_dsl._symbol_entry.TYPE_USER_FUNCTION-# return "user_function" - elif type_num == 6 #-animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER_CONSTRUCTOR-# return "value_provider_constructor" - elif type_num == 7 #-animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER-# return "value_provider" - elif type_num == 8 #-animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR-# return "animation_constructor" - elif type_num == 9 #-animation_dsl._symbol_entry.TYPE_ANIMATION-# return "animation" - elif type_num == 10 #-animation_dsl._symbol_entry.TYPE_COLOR_CONSTRUCTOR-# return "color_constructor" - elif type_num == 11 #-animation_dsl._symbol_entry.TYPE_COLOR-# return "color" - elif type_num == 12 #-animation_dsl._symbol_entry.TYPE_VARIABLE-# return "variable" - elif type_num == 13 #-animation_dsl._symbol_entry.TYPE_SEQUENCE-# return "sequence" - elif type_num == 14 #-animation_dsl._symbol_entry.TYPE_TEMPLATE-# return "template" - else return f"unknown({type_num})" - end - end + # # Helper method to convert type number to string for debugging + # def _type_to_string(type_num) + # if type_num == 1 #-animation_dsl._symbol_entry.TYPE_PALETTE_CONSTANT-# return "palette_constant" + # elif type_num == 2 #-animation_dsl._symbol_entry.TYPE_PALETTE-# return "palette" + # elif type_num == 3 #-animation_dsl._symbol_entry.TYPE_CONSTANT-# return "constant" + # elif type_num == 4 #-animation_dsl._symbol_entry.TYPE_MATH_FUNCTION-# return "math_function" + # elif type_num == 5 #-animation_dsl._symbol_entry.TYPE_USER_FUNCTION-# return "user_function" + # elif type_num == 6 #-animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER_CONSTRUCTOR-# return "value_provider_constructor" + # elif type_num == 7 #-animation_dsl._symbol_entry.TYPE_VALUE_PROVIDER-# return "value_provider" + # elif type_num == 8 #-animation_dsl._symbol_entry.TYPE_ANIMATION_CONSTRUCTOR-# return "animation_constructor" + # elif type_num == 9 #-animation_dsl._symbol_entry.TYPE_ANIMATION-# return "animation" + # elif type_num == 10 #-animation_dsl._symbol_entry.TYPE_COLOR_CONSTRUCTOR-# return "color_constructor" + # elif type_num == 11 #-animation_dsl._symbol_entry.TYPE_COLOR-# return "color" + # elif type_num == 12 #-animation_dsl._symbol_entry.TYPE_VARIABLE-# return "variable" + # elif type_num == 13 #-animation_dsl._symbol_entry.TYPE_SEQUENCE-# return "sequence" + # elif type_num == 14 #-animation_dsl._symbol_entry.TYPE_TEMPLATE-# return "template" + # else return f"unknown({type_num})" + # end + # end # Static method to combine expression results # Takes an expression string and 1-2 ExpressionResult parameters (checks for nil) @@ -152,10 +152,11 @@ class SimpleDSLTranspiler end end - def init(tokens) + def init(pull_lexer) import animation_dsl - self.tokens = tokens != nil ? tokens : [] - self.pos = 0 + + # Only support pull lexer interface now + self.pull_lexer = pull_lexer self.output = [] self.warnings = [] # Separate array for warnings self.run_statements = [] @@ -367,8 +368,24 @@ class SimpleDSLTranspiler # Transpile template body (similar to main transpile but without imports/engine start) def transpile_template_body() try - # Process all statements in template body + # Process all statements in template body until we hit the closing brace + var brace_depth = 0 while !self.at_end() + var tok = self.current() + + # Check for template end condition + if tok != nil && tok.type == 27 #-animation_dsl.Token.RIGHT_BRACE-# && brace_depth == 0 + # This is the closing brace of the template - stop processing + break + end + + # Track brace depth for nested braces + if tok != nil && tok.type == 26 #-animation_dsl.Token.LEFT_BRACE-# + brace_depth += 1 + elif tok != nil && tok.type == 27 #-animation_dsl.Token.RIGHT_BRACE-# + brace_depth -= 1 + end + self.process_statement() end @@ -391,7 +408,7 @@ class SimpleDSLTranspiler # Process statements - simplified approach def process_statement() var tok = self.current() - if tok == nil || tok.type == 38 #-animation_dsl.Token.EOF-# + if tok == nil # EOF token removed - nil indicates end of file return end @@ -890,38 +907,8 @@ class SimpleDSLTranspiler end end - # Second pass: collect body tokens (everything until closing brace) - var body_tokens = [] - var brace_depth = 0 - - while !self.at_end() - var tok = self.current() - - if tok == nil || tok.type == 38 #-animation_dsl.Token.EOF-# - break - end - - if tok.type == 26 #-animation_dsl.Token.LEFT_BRACE-# - brace_depth += 1 - body_tokens.push(tok) - elif tok.type == 27 #-animation_dsl.Token.RIGHT_BRACE-# - if brace_depth == 0 - break # This is our closing brace - else - brace_depth -= 1 - body_tokens.push(tok) - end - else - body_tokens.push(tok) - end - - self.next() - end - - self.expect_right_brace() - - # Generate Berry function for this template - self.generate_template_function(name, params, param_types, body_tokens) + # Generate Berry function for this template using direct pull-lexer approach + self.generate_template_function_direct(name, params, param_types) # Add template to symbol table with parameter information var template_info = { @@ -1007,7 +994,7 @@ class SimpleDSLTranspiler # Process statements inside sequences using fluent interface def process_sequence_statement() var tok = self.current() - if tok == nil || tok.type == 38 #-animation_dsl.Token.EOF-# + if tok == nil # EOF token removed - nil indicates end of file return end @@ -1807,24 +1794,21 @@ class SimpleDSLTranspiler end end - # Helper methods + # Helper methods - pull lexer only def current() - return self.pos < size(self.tokens) ? self.tokens[self.pos] : nil + return self.pull_lexer.peek_token() end def peek() - return (self.pos + 1 < size(self.tokens)) ? self.tokens[self.pos + 1] : nil + return self.pull_lexer.peek_ahead(2) # Look ahead by 2 (next token after current) end def next() - if self.pos < size(self.tokens) - self.pos += 1 - end + return self.pull_lexer.next_token() end def at_end() - return self.pos >= size(self.tokens) || - (self.current() != nil && self.current().type == 38 #-animation_dsl.Token.EOF-#) + return self.pull_lexer.at_end() end def skip_whitespace() @@ -2184,7 +2168,7 @@ class SimpleDSLTranspiler # Skip to next statement (newline or EOF) while !self.at_end() var tok = self.current() - if tok.type == 35 #-animation_dsl.Token.NEWLINE-# || tok.type == 38 #-animation_dsl.Token.EOF-# + if tok == nil || tok.type == 35 #-animation_dsl.Token.NEWLINE-# # EOF token removed - check nil break end self.next() @@ -2645,8 +2629,10 @@ class SimpleDSLTranspiler self.strip_initialized = true end - # Generate Berry function for template definition - def generate_template_function(name, params, param_types, body_tokens) + + + # Generate Berry function for template definition using direct pull-lexer approach + def generate_template_function_direct(name, params, param_types) import animation_dsl import string @@ -2659,8 +2645,9 @@ class SimpleDSLTranspiler self.add(f"# Template function: {name}") self.add(f"def {name}_template({param_list})") - # Create a new transpiler instance for the template body - var template_transpiler = animation_dsl.SimpleDSLTranspiler(body_tokens) + # Create a new transpiler that shares the same pull lexer + # It will consume tokens from the current position until the template ends + var template_transpiler = animation_dsl.SimpleDSLTranspiler(self.pull_lexer) template_transpiler.symbol_table = animation_dsl._symbol_table() # Fresh symbol table for template template_transpiler.strip_initialized = true # Templates assume engine exists @@ -2676,7 +2663,7 @@ class SimpleDSLTranspiler end end - # Transpile the template body + # Transpile the template body - it will consume tokens until the closing brace var template_body = template_transpiler.transpile_template_body() if template_body != nil @@ -2697,6 +2684,9 @@ class SimpleDSLTranspiler end end + # Expect the closing brace (template_transpiler should have left us at this position) + self.expect_right_brace() + self.add("end") self.add("") @@ -3011,16 +3001,8 @@ end # DSL compilation function def compile_dsl(source) import animation_dsl - var lexer = animation_dsl.DSLLexer(source) - var tokens - - try - tokens = lexer.tokenize() - except "lexical_error" as e, msg - raise "dsl_compilation_error", msg - end - - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var berry_code = transpiler.transpile() return berry_code @@ -3030,5 +3012,4 @@ end return { "SimpleDSLTranspiler": SimpleDSLTranspiler, "compile_dsl": compile_dsl, - } \ No newline at end of file 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 5630ffb23..40e6a0ce7 100644 --- a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h +++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h @@ -4,82 +4,30 @@ \********************************************************************/ #include "be_constobj.h" extern const bclass be_class_ExpressionResult; -// compact class 'ExpressionResult' ktab size: 30, total: 47 (saved 136 bytes) -static const bvalue be_ktab_class_ExpressionResult[30] = { - /* K0 */ be_const_class(be_class_ExpressionResult), - /* K1 */ be_nested_str_weak(instance_for_validation), - /* K2 */ be_nested_str_weak(instance_X3D_X25s), - /* K3 */ be_nested_str_weak(instance_X3Dnil), - /* K4 */ be_nested_str_weak(_type_to_string), +// compact class 'ExpressionResult' ktab size: 11, total: 28 (saved 136 bytes) +static const bvalue be_ktab_class_ExpressionResult[11] = { + /* K0 */ be_nested_str_weak(has_dynamic), + /* K1 */ be_nested_str_weak(expr), + /* K2 */ be_nested_str_weak(), + /* K3 */ be_nested_str_weak(has_dangerous), + /* K4 */ be_nested_str_weak(has_computation), /* K5 */ be_nested_str_weak(return_type), - /* K6 */ be_nested_str_weak(ExpressionResult_X28expr_X3D_X27_X25s_X27_X2C_X20dynamic_X3D_X25s_X2C_X20dangerous_X3D_X25s_X2C_X20comp_X3D_X25s_X2C_X20type_X3D_X25s_X2C_X20_X25s_X29), - /* K7 */ be_nested_str_weak(expr), - /* K8 */ be_nested_str_weak(has_dynamic), - /* K9 */ be_nested_str_weak(has_dangerous), - /* K10 */ be_nested_str_weak(has_computation), - /* K11 */ be_nested_str_weak(), - /* K12 */ be_const_int(1), - /* K13 */ be_nested_str_weak(palette_constant), - /* K14 */ be_const_int(2), - /* K15 */ be_nested_str_weak(palette), - /* K16 */ be_const_int(3), - /* K17 */ be_nested_str_weak(constant), - /* K18 */ be_nested_str_weak(math_function), - /* K19 */ be_nested_str_weak(user_function), - /* K20 */ be_nested_str_weak(value_provider_constructor), - /* K21 */ be_nested_str_weak(value_provider), - /* K22 */ be_nested_str_weak(animation_constructor), - /* K23 */ be_nested_str_weak(animation), - /* K24 */ be_nested_str_weak(color_constructor), - /* K25 */ be_nested_str_weak(color), - /* K26 */ be_nested_str_weak(variable), - /* K27 */ be_nested_str_weak(sequence), - /* K28 */ be_nested_str_weak(template), - /* K29 */ be_nested_str_weak(unknown_X28_X25s_X29), + /* K6 */ be_nested_str_weak(instance_for_validation), + /* K7 */ be_const_class(be_class_ExpressionResult), + /* K8 */ be_nested_str_weak(instance_X3D_X25s), + /* K9 */ be_nested_str_weak(instance_X3Dnil), + /* K10 */ be_nested_str_weak(ExpressionResult_X28expr_X3D_X27_X25s_X27_X2C_X20dynamic_X3D_X25s_X2C_X20dangerous_X3D_X25s_X2C_X20comp_X3D_X25s_X2C_X20type_X3D_X25s_X2C_X20_X25s_X29), }; extern const bclass be_class_ExpressionResult; /******************************************************************** -** Solidified function: literal +** Solidified function: needs_closure ********************************************************************/ -be_local_closure(class_ExpressionResult_literal, /* name */ +be_local_closure(class_ExpressionResult_needs_closure, /* name */ be_nested_proto( - 11, /* nstack */ - 3, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(literal), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x580C0000, // 0000 LDCONST R3 K0 - 0x5C100600, // 0001 MOVE R4 R3 - 0x5C140000, // 0002 MOVE R5 R0 - 0x50180000, // 0003 LDBOOL R6 0 0 - 0x501C0000, // 0004 LDBOOL R7 0 0 - 0x50200000, // 0005 LDBOOL R8 0 0 - 0x5C240200, // 0006 MOVE R9 R1 - 0x5C280400, // 0007 MOVE R10 R2 - 0x7C100C00, // 0008 CALL R4 6 - 0x80040800, // 0009 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_ExpressionResult_tostring, /* name */ - be_nested_proto( - 11, /* nstack */ + 2, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -88,34 +36,36 @@ be_local_closure(class_ExpressionResult_tostring, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(tostring), + be_str_weak(needs_closure), &be_const_str_solidified, - ( &(const binstruction[25]) { /* code */ - 0x88040101, // 0000 GETMBR R1 R0 K1 - 0x4C080000, // 0001 LDNIL R2 - 0x20040202, // 0002 NE R1 R1 R2 - 0x78060006, // 0003 JMPF R1 #000B - 0x60040018, // 0004 GETGBL R1 G24 - 0x58080002, // 0005 LDCONST R2 K2 - 0x600C0005, // 0006 GETGBL R3 G5 - 0x88100101, // 0007 GETMBR R4 R0 K1 - 0x7C0C0200, // 0008 CALL R3 1 - 0x7C040400, // 0009 CALL R1 2 - 0x70020000, // 000A JMP #000C - 0x58040003, // 000B LDCONST R1 K3 - 0x8C080104, // 000C GETMET R2 R0 K4 - 0x88100105, // 000D GETMBR R4 R0 K5 - 0x7C080400, // 000E CALL R2 2 - 0x600C0018, // 000F GETGBL R3 G24 - 0x58100006, // 0010 LDCONST R4 K6 - 0x88140107, // 0011 GETMBR R5 R0 K7 - 0x88180108, // 0012 GETMBR R6 R0 K8 - 0x881C0109, // 0013 GETMBR R7 R0 K9 - 0x8820010A, // 0014 GETMBR R8 R0 K10 - 0x5C240400, // 0015 MOVE R9 R2 - 0x5C280200, // 0016 MOVE R10 R1 - 0x7C0C0E00, // 0017 CALL R3 7 - 0x80040600, // 0018 RET 1 R3 + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: needs_function +********************************************************************/ +be_local_closure(class_ExpressionResult_needs_function, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ExpressionResult, /* shared constants */ + be_str_weak(needs_function), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 }) ) ); @@ -144,20 +94,20 @@ be_local_closure(class_ExpressionResult_init, /* name */ 0x781E0001, // 0002 JMPF R7 #0005 0x5C1C0200, // 0003 MOVE R7 R1 0x70020000, // 0004 JMP #0006 - 0x581C000B, // 0005 LDCONST R7 K11 - 0x90020E07, // 0006 SETMBR R0 K7 R7 + 0x581C0002, // 0005 LDCONST R7 K2 + 0x90020207, // 0006 SETMBR R0 K1 R7 0x601C0017, // 0007 GETGBL R7 G23 0x5C200400, // 0008 MOVE R8 R2 0x7C1C0200, // 0009 CALL R7 1 - 0x90021007, // 000A SETMBR R0 K8 R7 + 0x90020007, // 000A SETMBR R0 K0 R7 0x601C0017, // 000B GETGBL R7 G23 0x5C200600, // 000C MOVE R8 R3 0x7C1C0200, // 000D CALL R7 1 - 0x90021207, // 000E SETMBR R0 K9 R7 + 0x90020607, // 000E SETMBR R0 K3 R7 0x601C0017, // 000F GETGBL R7 G23 0x5C200800, // 0010 MOVE R8 R4 0x7C1C0200, // 0011 CALL R7 1 - 0x90021407, // 0012 SETMBR R0 K10 R7 + 0x90020807, // 0012 SETMBR R0 K4 R7 0x4C1C0000, // 0013 LDNIL R7 0x201C0A07, // 0014 NE R7 R5 R7 0x781E0001, // 0015 JMPF R7 #0018 @@ -165,7 +115,7 @@ be_local_closure(class_ExpressionResult_init, /* name */ 0x70020000, // 0017 JMP #0019 0x541E000B, // 0018 LDINT R7 12 0x90020A07, // 0019 SETMBR R0 K5 R7 - 0x90020206, // 001A SETMBR R0 K1 R6 + 0x90020C06, // 001A SETMBR R0 K6 R6 0x80000000, // 001B RET 0 }) ) @@ -174,11 +124,44 @@ be_local_closure(class_ExpressionResult_init, /* name */ /******************************************************************** -** Solidified function: needs_function +** Solidified function: literal ********************************************************************/ -be_local_closure(class_ExpressionResult_needs_function, /* name */ +be_local_closure(class_ExpressionResult_literal, /* name */ be_nested_proto( - 2, /* nstack */ + 11, /* nstack */ + 3, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ExpressionResult, /* shared constants */ + be_str_weak(literal), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x580C0007, // 0000 LDCONST R3 K7 + 0x5C100600, // 0001 MOVE R4 R3 + 0x5C140000, // 0002 MOVE R5 R0 + 0x50180000, // 0003 LDBOOL R6 0 0 + 0x501C0000, // 0004 LDBOOL R7 0 0 + 0x50200000, // 0005 LDBOOL R8 0 0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: tostring +********************************************************************/ +be_local_closure(class_ExpressionResult_tostring, /* name */ + be_nested_proto( + 10, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -187,11 +170,64 @@ be_local_closure(class_ExpressionResult_needs_function, /* name */ NULL, /* no sub protos */ 1, /* has constants */ &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(needs_function), + be_str_weak(tostring), &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040108, // 0000 GETMBR R1 R0 K8 - 0x80040200, // 0001 RET 1 R1 + ( &(const binstruction[22]) { /* code */ + 0x88040106, // 0000 GETMBR R1 R0 K6 + 0x4C080000, // 0001 LDNIL R2 + 0x20040202, // 0002 NE R1 R1 R2 + 0x78060006, // 0003 JMPF R1 #000B + 0x60040018, // 0004 GETGBL R1 G24 + 0x58080008, // 0005 LDCONST R2 K8 + 0x600C0005, // 0006 GETGBL R3 G5 + 0x88100106, // 0007 GETMBR R4 R0 K6 + 0x7C0C0200, // 0008 CALL R3 1 + 0x7C040400, // 0009 CALL R1 2 + 0x70020000, // 000A JMP #000C + 0x58040009, // 000B LDCONST R1 K9 + 0x60080018, // 000C GETGBL R2 G24 + 0x580C000A, // 000D LDCONST R3 K10 + 0x88100101, // 000E GETMBR R4 R0 K1 + 0x88140100, // 000F GETMBR R5 R0 K0 + 0x88180103, // 0010 GETMBR R6 R0 K3 + 0x881C0104, // 0011 GETMBR R7 R0 K4 + 0x88200105, // 0012 GETMBR R8 R0 K5 + 0x5C240200, // 0013 MOVE R9 R1 + 0x7C080E00, // 0014 CALL R2 7 + 0x80040400, // 0015 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: function_call +********************************************************************/ +be_local_closure(class_ExpressionResult_function_call, /* name */ + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ExpressionResult, /* shared constants */ + be_str_weak(function_call), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x580C0007, // 0000 LDCONST R3 K7 + 0x5C100600, // 0001 MOVE R4 R3 + 0x5C140000, // 0002 MOVE R5 R0 + 0x50180200, // 0003 LDBOOL R6 1 0 + 0x501C0000, // 0004 LDBOOL R7 0 0 + 0x50200000, // 0005 LDBOOL R8 0 0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 }) ) ); @@ -215,7 +251,7 @@ be_local_closure(class_ExpressionResult_combine, /* name */ be_str_weak(combine), &be_const_str_solidified, ( &(const binstruction[91]) { /* code */ - 0x580C0000, // 0000 LDCONST R3 K0 + 0x580C0007, // 0000 LDCONST R3 K7 0x50100000, // 0001 LDBOOL R4 0 0 0x50140000, // 0002 LDBOOL R5 0 0 0x50180200, // 0003 LDBOOL R6 1 0 @@ -224,19 +260,19 @@ be_local_closure(class_ExpressionResult_combine, /* name */ 0x20200208, // 0006 NE R8 R1 R8 0x78220011, // 0007 JMPF R8 #001A 0x74120002, // 0008 JMPT R4 #000C - 0x88200308, // 0009 GETMBR R8 R1 K8 + 0x88200300, // 0009 GETMBR R8 R1 K0 0x74220000, // 000A JMPT R8 #000C 0x50200001, // 000B LDBOOL R8 0 1 0x50200200, // 000C LDBOOL R8 1 0 0x5C101000, // 000D MOVE R4 R8 0x74160002, // 000E JMPT R5 #0012 - 0x88200309, // 000F GETMBR R8 R1 K9 + 0x88200303, // 000F GETMBR R8 R1 K3 0x74220000, // 0010 JMPT R8 #0012 0x50200001, // 0011 LDBOOL R8 0 1 0x50200200, // 0012 LDBOOL R8 1 0 0x5C141000, // 0013 MOVE R5 R8 0x741A0002, // 0014 JMPT R6 #0018 - 0x8820030A, // 0015 GETMBR R8 R1 K10 + 0x88200304, // 0015 GETMBR R8 R1 K4 0x74220000, // 0016 JMPT R8 #0018 0x50200001, // 0017 LDBOOL R8 0 1 0x50200200, // 0018 LDBOOL R8 1 0 @@ -245,19 +281,19 @@ be_local_closure(class_ExpressionResult_combine, /* name */ 0x20200408, // 001B NE R8 R2 R8 0x78220011, // 001C JMPF R8 #002F 0x74120002, // 001D JMPT R4 #0021 - 0x88200508, // 001E GETMBR R8 R2 K8 + 0x88200500, // 001E GETMBR R8 R2 K0 0x74220000, // 001F JMPT R8 #0021 0x50200001, // 0020 LDBOOL R8 0 1 0x50200200, // 0021 LDBOOL R8 1 0 0x5C101000, // 0022 MOVE R4 R8 0x74160002, // 0023 JMPT R5 #0027 - 0x88200509, // 0024 GETMBR R8 R2 K9 + 0x88200503, // 0024 GETMBR R8 R2 K3 0x74220000, // 0025 JMPT R8 #0027 0x50200001, // 0026 LDBOOL R8 0 1 0x50200200, // 0027 LDBOOL R8 1 0 0x5C141000, // 0028 MOVE R5 R8 0x741A0002, // 0029 JMPT R6 #002D - 0x8820050A, // 002A GETMBR R8 R2 K10 + 0x88200504, // 002A GETMBR R8 R2 K4 0x74220000, // 002B JMPT R8 #002D 0x50200001, // 002C LDBOOL R8 0 1 0x50200200, // 002D LDBOOL R8 1 0 @@ -312,6 +348,39 @@ be_local_closure(class_ExpressionResult_combine, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: property_access +********************************************************************/ +be_local_closure(class_ExpressionResult_property_access, /* name */ + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 12, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_ExpressionResult, /* shared constants */ + be_str_weak(property_access), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x580C0007, // 0000 LDCONST R3 K7 + 0x5C100600, // 0001 MOVE R4 R3 + 0x5C140000, // 0002 MOVE R5 R0 + 0x50180200, // 0003 LDBOOL R6 1 0 + 0x501C0000, // 0004 LDBOOL R7 0 0 + 0x50200000, // 0005 LDBOOL R8 0 0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C100C00, // 0008 CALL R4 6 + 0x80040800, // 0009 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: constructor_call ********************************************************************/ @@ -329,7 +398,7 @@ be_local_closure(class_ExpressionResult_constructor_call, /* name */ be_str_weak(constructor_call), &be_const_str_solidified, ( &(const binstruction[10]) { /* code */ - 0x580C0000, // 0000 LDCONST R3 K0 + 0x580C0007, // 0000 LDCONST R3 K7 0x5C100600, // 0001 MOVE R4 R3 0x5C140000, // 0002 MOVE R5 R0 0x50180000, // 0003 LDBOOL R6 0 0 @@ -345,102 +414,6 @@ be_local_closure(class_ExpressionResult_constructor_call, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: _type_to_string -********************************************************************/ -be_local_closure(class_ExpressionResult__type_to_string, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(_type_to_string), - &be_const_str_solidified, - ( &(const binstruction[73]) { /* code */ - 0x1C08030C, // 0000 EQ R2 R1 K12 - 0x780A0001, // 0001 JMPF R2 #0004 - 0x80061A00, // 0002 RET 1 K13 - 0x70020043, // 0003 JMP #0048 - 0x1C08030E, // 0004 EQ R2 R1 K14 - 0x780A0001, // 0005 JMPF R2 #0008 - 0x80061E00, // 0006 RET 1 K15 - 0x7002003F, // 0007 JMP #0048 - 0x1C080310, // 0008 EQ R2 R1 K16 - 0x780A0001, // 0009 JMPF R2 #000C - 0x80062200, // 000A RET 1 K17 - 0x7002003B, // 000B JMP #0048 - 0x540A0003, // 000C LDINT R2 4 - 0x1C080202, // 000D EQ R2 R1 R2 - 0x780A0001, // 000E JMPF R2 #0011 - 0x80062400, // 000F RET 1 K18 - 0x70020036, // 0010 JMP #0048 - 0x540A0004, // 0011 LDINT R2 5 - 0x1C080202, // 0012 EQ R2 R1 R2 - 0x780A0001, // 0013 JMPF R2 #0016 - 0x80062600, // 0014 RET 1 K19 - 0x70020031, // 0015 JMP #0048 - 0x540A0005, // 0016 LDINT R2 6 - 0x1C080202, // 0017 EQ R2 R1 R2 - 0x780A0001, // 0018 JMPF R2 #001B - 0x80062800, // 0019 RET 1 K20 - 0x7002002C, // 001A JMP #0048 - 0x540A0006, // 001B LDINT R2 7 - 0x1C080202, // 001C EQ R2 R1 R2 - 0x780A0001, // 001D JMPF R2 #0020 - 0x80062A00, // 001E RET 1 K21 - 0x70020027, // 001F JMP #0048 - 0x540A0007, // 0020 LDINT R2 8 - 0x1C080202, // 0021 EQ R2 R1 R2 - 0x780A0001, // 0022 JMPF R2 #0025 - 0x80062C00, // 0023 RET 1 K22 - 0x70020022, // 0024 JMP #0048 - 0x540A0008, // 0025 LDINT R2 9 - 0x1C080202, // 0026 EQ R2 R1 R2 - 0x780A0001, // 0027 JMPF R2 #002A - 0x80062E00, // 0028 RET 1 K23 - 0x7002001D, // 0029 JMP #0048 - 0x540A0009, // 002A LDINT R2 10 - 0x1C080202, // 002B EQ R2 R1 R2 - 0x780A0001, // 002C JMPF R2 #002F - 0x80063000, // 002D RET 1 K24 - 0x70020018, // 002E JMP #0048 - 0x540A000A, // 002F LDINT R2 11 - 0x1C080202, // 0030 EQ R2 R1 R2 - 0x780A0001, // 0031 JMPF R2 #0034 - 0x80063200, // 0032 RET 1 K25 - 0x70020013, // 0033 JMP #0048 - 0x540A000B, // 0034 LDINT R2 12 - 0x1C080202, // 0035 EQ R2 R1 R2 - 0x780A0001, // 0036 JMPF R2 #0039 - 0x80063400, // 0037 RET 1 K26 - 0x7002000E, // 0038 JMP #0048 - 0x540A000C, // 0039 LDINT R2 13 - 0x1C080202, // 003A EQ R2 R1 R2 - 0x780A0001, // 003B JMPF R2 #003E - 0x80063600, // 003C RET 1 K27 - 0x70020009, // 003D JMP #0048 - 0x540A000D, // 003E LDINT R2 14 - 0x1C080202, // 003F EQ R2 R1 R2 - 0x780A0001, // 0040 JMPF R2 #0043 - 0x80063800, // 0041 RET 1 K28 - 0x70020004, // 0042 JMP #0048 - 0x60080018, // 0043 GETGBL R2 G24 - 0x580C001D, // 0044 LDCONST R3 K29 - 0x5C100200, // 0045 MOVE R4 R1 - 0x7C080400, // 0046 CALL R2 2 - 0x80040400, // 0047 RET 1 R2 - 0x80000000, // 0048 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: variable_ref ********************************************************************/ @@ -458,98 +431,7 @@ be_local_closure(class_ExpressionResult_variable_ref, /* name */ be_str_weak(variable_ref), &be_const_str_solidified, ( &(const binstruction[10]) { /* code */ - 0x580C0000, // 0000 LDCONST R3 K0 - 0x5C100600, // 0001 MOVE R4 R3 - 0x5C140000, // 0002 MOVE R5 R0 - 0x50180200, // 0003 LDBOOL R6 1 0 - 0x501C0000, // 0004 LDBOOL R7 0 0 - 0x50200000, // 0005 LDBOOL R8 0 0 - 0x5C240200, // 0006 MOVE R9 R1 - 0x5C280400, // 0007 MOVE R10 R2 - 0x7C100C00, // 0008 CALL R4 6 - 0x80040800, // 0009 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: function_call -********************************************************************/ -be_local_closure(class_ExpressionResult_function_call, /* name */ - be_nested_proto( - 11, /* nstack */ - 3, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(function_call), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x580C0000, // 0000 LDCONST R3 K0 - 0x5C100600, // 0001 MOVE R4 R3 - 0x5C140000, // 0002 MOVE R5 R0 - 0x50180200, // 0003 LDBOOL R6 1 0 - 0x501C0000, // 0004 LDBOOL R7 0 0 - 0x50200000, // 0005 LDBOOL R8 0 0 - 0x5C240200, // 0006 MOVE R9 R1 - 0x5C280400, // 0007 MOVE R10 R2 - 0x7C100C00, // 0008 CALL R4 6 - 0x80040800, // 0009 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: needs_closure -********************************************************************/ -be_local_closure(class_ExpressionResult_needs_closure, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(needs_closure), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040108, // 0000 GETMBR R1 R0 K8 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: property_access -********************************************************************/ -be_local_closure(class_ExpressionResult_property_access, /* name */ - be_nested_proto( - 11, /* nstack */ - 3, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_ExpressionResult, /* shared constants */ - be_str_weak(property_access), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x580C0000, // 0000 LDCONST R3 K0 + 0x580C0007, // 0000 LDCONST R3 K7 0x5C100600, // 0001 MOVE R4 R3 0x5C140000, // 0002 MOVE R5 R0 0x50180200, // 0003 LDBOOL R6 1 0 @@ -571,64 +453,27 @@ be_local_closure(class_ExpressionResult_property_access, /* name */ be_local_class(ExpressionResult, 6, NULL, - be_nested_map(17, + be_nested_map(16, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(return_type, -1), be_const_var(4) }, - { be_const_key_weak(property_access, 10), be_const_static_closure(class_ExpressionResult_property_access_closure) }, + { be_const_key_weak(needs_closure, 7), be_const_closure(class_ExpressionResult_needs_closure_closure) }, + { be_const_key_weak(variable_ref, -1), be_const_static_closure(class_ExpressionResult_variable_ref_closure) }, { be_const_key_weak(tostring, -1), be_const_closure(class_ExpressionResult_tostring_closure) }, - { be_const_key_weak(expr, -1), be_const_var(0) }, - { be_const_key_weak(needs_closure, 14), be_const_closure(class_ExpressionResult_needs_closure_closure) }, - { be_const_key_weak(needs_function, -1), be_const_closure(class_ExpressionResult_needs_function_closure) }, - { be_const_key_weak(combine, -1), be_const_static_closure(class_ExpressionResult_combine_closure) }, - { be_const_key_weak(constructor_call, -1), be_const_static_closure(class_ExpressionResult_constructor_call_closure) }, - { be_const_key_weak(has_computation, -1), be_const_var(3) }, - { be_const_key_weak(_type_to_string, -1), be_const_closure(class_ExpressionResult__type_to_string_closure) }, - { be_const_key_weak(instance_for_validation, -1), be_const_var(5) }, - { be_const_key_weak(has_dynamic, -1), be_const_var(1) }, - { be_const_key_weak(has_dangerous, 1), be_const_var(2) }, - { be_const_key_weak(function_call, -1), be_const_static_closure(class_ExpressionResult_function_call_closure) }, - { be_const_key_weak(variable_ref, 16), be_const_static_closure(class_ExpressionResult_variable_ref_closure) }, - { be_const_key_weak(literal, 4), be_const_static_closure(class_ExpressionResult_literal_closure) }, { be_const_key_weak(init, -1), be_const_closure(class_ExpressionResult_init_closure) }, + { be_const_key_weak(literal, -1), be_const_static_closure(class_ExpressionResult_literal_closure) }, + { be_const_key_weak(has_dynamic, 2), be_const_var(1) }, + { be_const_key_weak(function_call, -1), be_const_static_closure(class_ExpressionResult_function_call_closure) }, + { be_const_key_weak(constructor_call, -1), be_const_static_closure(class_ExpressionResult_constructor_call_closure) }, + { be_const_key_weak(instance_for_validation, 13), be_const_var(5) }, + { be_const_key_weak(property_access, -1), be_const_static_closure(class_ExpressionResult_property_access_closure) }, + { be_const_key_weak(combine, -1), be_const_static_closure(class_ExpressionResult_combine_closure) }, + { be_const_key_weak(has_computation, 9), be_const_var(3) }, + { be_const_key_weak(has_dangerous, -1), be_const_var(2) }, + { be_const_key_weak(return_type, -1), be_const_var(4) }, + { be_const_key_weak(expr, -1), be_const_var(0) }, + { be_const_key_weak(needs_function, 1), be_const_closure(class_ExpressionResult_needs_function_closure) }, })), be_str_weak(ExpressionResult) ); - -/******************************************************************** -** Solidified function: execute -********************************************************************/ -be_local_closure(execute, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(compile), - }), - be_str_weak(execute), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080301, // 0001 GETMET R2 R1 K1 - 0x5C100000, // 0002 MOVE R4 R0 - 0x7C080400, // 0003 CALL R2 2 - 0x600C000D, // 0004 GETGBL R3 G13 - 0x5C100400, // 0005 MOVE R4 R2 - 0x7C0C0200, // 0006 CALL R3 1 - 0x5C100600, // 0007 MOVE R4 R3 - 0x7C100000, // 0008 CALL R4 0 - 0x80040800, // 0009 RET 1 R4 - }) - ) -); -/*******************************************************************/ - extern const bclass be_class_SymbolEntry; // compact class 'SymbolEntry' ktab size: 61, total: 146 (saved 680 bytes) static const bvalue be_ktab_class_SymbolEntry[61] = { @@ -2037,38 +1882,97 @@ be_local_class(SymbolEntry, })), be_str_weak(SymbolEntry) ); +// compact class 'Token' ktab size: 13, total: 17 (saved 32 bytes) +static const bvalue be_ktab_class_Token[13] = { + /* K0 */ be_nested_str_weak(UNKNOWN), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(names), + /* K4 */ be_nested_str_weak(Token_X28_X25s_X20at_X20_X25s_X3A_X25s_X29), + /* K5 */ be_nested_str_weak(line), + /* K6 */ be_nested_str_weak(column), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(_X2E_X2E_X2E), + /* K9 */ be_nested_str_weak(Token_X28_X25s_X2C_X20_X27_X25s_X27_X20at_X20_X25s_X3A_X25s_X29), + /* K10 */ be_nested_str_weak(), + /* K11 */ be_const_int(1), + /* K12 */ be_nested_str_weak(length), +}; + + +extern const bclass be_class_Token; /******************************************************************** -** Solidified function: create_eof_token +** Solidified function: tostring ********************************************************************/ -be_local_closure(create_eof_token, /* name */ +be_local_closure(class_Token_tostring, /* name */ be_nested_proto( - 10, /* nstack */ - 2, /* argc */ - 0, /* varg */ + 9, /* nstack */ + 1, /* argc */ + 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - /* K2 */ be_nested_str_weak(), - /* K3 */ be_const_int(0), - }), - be_str_weak(create_eof_token), + &be_ktab_class_Token, /* shared constants */ + be_str_weak(tostring), &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x54160025, // 0002 LDINT R5 38 - 0x58180002, // 0003 LDCONST R6 K2 - 0x5C1C0000, // 0004 MOVE R7 R0 - 0x5C200200, // 0005 MOVE R8 R1 - 0x58240003, // 0006 LDCONST R9 K3 - 0x7C0C0C00, // 0007 CALL R3 6 - 0x80040600, // 0008 RET 1 R3 + ( &(const binstruction[54]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0x88080101, // 0001 GETMBR R2 R0 K1 + 0x28080502, // 0002 GE R2 R2 K2 + 0x780A0008, // 0003 JMPF R2 #000D + 0x88080101, // 0004 GETMBR R2 R0 K1 + 0x600C000C, // 0005 GETGBL R3 G12 + 0x88100103, // 0006 GETMBR R4 R0 K3 + 0x7C0C0200, // 0007 CALL R3 1 + 0x14080403, // 0008 LT R2 R2 R3 + 0x780A0002, // 0009 JMPF R2 #000D + 0x88080103, // 000A GETMBR R2 R0 K3 + 0x880C0101, // 000B GETMBR R3 R0 K1 + 0x94040403, // 000C GETIDX R1 R2 R3 + 0x88080101, // 000D GETMBR R2 R0 K1 + 0x540E0022, // 000E LDINT R3 35 + 0x1C080403, // 000F EQ R2 R2 R3 + 0x780A0007, // 0010 JMPF R2 #0019 + 0x60080018, // 0011 GETGBL R2 G24 + 0x580C0004, // 0012 LDCONST R3 K4 + 0x5C100200, // 0013 MOVE R4 R1 + 0x88140105, // 0014 GETMBR R5 R0 K5 + 0x88180106, // 0015 GETMBR R6 R0 K6 + 0x7C080800, // 0016 CALL R2 4 + 0x80040400, // 0017 RET 1 R2 + 0x7002001B, // 0018 JMP #0035 + 0x6008000C, // 0019 GETGBL R2 G12 + 0x880C0107, // 001A GETMBR R3 R0 K7 + 0x7C080200, // 001B CALL R2 1 + 0x540E0013, // 001C LDINT R3 20 + 0x24080403, // 001D GT R2 R2 R3 + 0x780A000D, // 001E JMPF R2 #002D + 0x540A0010, // 001F LDINT R2 17 + 0x400A0402, // 0020 CONNECT R2 K2 R2 + 0x880C0107, // 0021 GETMBR R3 R0 K7 + 0x94080602, // 0022 GETIDX R2 R3 R2 + 0x00080508, // 0023 ADD R2 R2 K8 + 0x600C0018, // 0024 GETGBL R3 G24 + 0x58100009, // 0025 LDCONST R4 K9 + 0x5C140200, // 0026 MOVE R5 R1 + 0x5C180400, // 0027 MOVE R6 R2 + 0x881C0105, // 0028 GETMBR R7 R0 K5 + 0x88200106, // 0029 GETMBR R8 R0 K6 + 0x7C0C0A00, // 002A CALL R3 5 + 0x80040600, // 002B RET 1 R3 + 0x70020007, // 002C JMP #0035 + 0x60080018, // 002D GETGBL R2 G24 + 0x580C0009, // 002E LDCONST R3 K9 + 0x5C100200, // 002F MOVE R4 R1 + 0x88140107, // 0030 GETMBR R5 R0 K7 + 0x88180105, // 0031 GETMBR R6 R0 K5 + 0x881C0106, // 0032 GETMBR R7 R0 K6 + 0x7C080A00, // 0033 CALL R2 5 + 0x80040400, // 0034 RET 1 R2 + 0x80000000, // 0035 RET 0 }) ) ); @@ -2076,43 +1980,401 @@ be_local_closure(create_eof_token, /* name */ /******************************************************************** -** Solidified function: create_newline_token +** Solidified function: init ********************************************************************/ -be_local_closure(create_newline_token, /* name */ +be_local_closure(class_Token_init, /* name */ be_nested_proto( - 10, /* nstack */ - 2, /* argc */ + 8, /* nstack */ + 6, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Token, /* shared constants */ + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x90020201, // 0000 SETMBR R0 K1 R1 + 0x4C180000, // 0001 LDNIL R6 + 0x20180406, // 0002 NE R6 R2 R6 + 0x781A0001, // 0003 JMPF R6 #0006 + 0x5C180400, // 0004 MOVE R6 R2 + 0x70020000, // 0005 JMP #0007 + 0x5818000A, // 0006 LDCONST R6 K10 + 0x90020E06, // 0007 SETMBR R0 K7 R6 + 0x4C180000, // 0008 LDNIL R6 + 0x20180606, // 0009 NE R6 R3 R6 + 0x781A0001, // 000A JMPF R6 #000D + 0x5C180600, // 000B MOVE R6 R3 + 0x70020000, // 000C JMP #000E + 0x5818000B, // 000D LDCONST R6 K11 + 0x90020A06, // 000E SETMBR R0 K5 R6 + 0x4C180000, // 000F LDNIL R6 + 0x20180806, // 0010 NE R6 R4 R6 + 0x781A0001, // 0011 JMPF R6 #0014 + 0x5C180800, // 0012 MOVE R6 R4 + 0x70020000, // 0013 JMP #0015 + 0x5818000B, // 0014 LDCONST R6 K11 + 0x90020C06, // 0015 SETMBR R0 K6 R6 + 0x4C180000, // 0016 LDNIL R6 + 0x20180A06, // 0017 NE R6 R5 R6 + 0x781A0001, // 0018 JMPF R6 #001B + 0x5C180A00, // 0019 MOVE R6 R5 + 0x70020002, // 001A JMP #001E + 0x6018000C, // 001B GETGBL R6 G12 + 0x881C0107, // 001C GETMBR R7 R0 K7 + 0x7C180200, // 001D CALL R6 1 + 0x90021806, // 001E SETMBR R0 K12 R6 + 0x80000000, // 001F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: Token +********************************************************************/ +be_local_class(Token, + 5, + NULL, + be_nested_map(11, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(value, -1), be_const_var(1) }, + { be_const_key_weak(column, -1), be_const_var(3) }, + { be_const_key_weak(line, -1), be_const_var(2) }, + { be_const_key_weak(tostring, -1), be_const_closure(class_Token_tostring_closure) }, + { be_const_key_weak(length, -1), be_const_var(4) }, + { be_const_key_weak(type, 10), be_const_var(0) }, + { be_const_key_weak(color_names, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { + be_const_list( * be_nested_list(37, + ( (struct bvalue*) &(const bvalue[]) { + be_nested_str_weak(red), + be_nested_str_weak(green), + be_nested_str_weak(blue), + be_nested_str_weak(white), + be_nested_str_weak(black), + be_nested_str_weak(yellow), + be_nested_str_weak(orange), + be_nested_str_weak(purple), + be_nested_str_weak(pink), + be_nested_str_weak(cyan), + be_nested_str_weak(magenta), + be_nested_str_weak(gray), + be_nested_str_weak(grey), + be_nested_str_weak(silver), + be_nested_str_weak(gold), + be_nested_str_weak(brown), + be_nested_str_weak(lime), + be_nested_str_weak(navy), + be_nested_str_weak(olive), + be_nested_str_weak(maroon), + be_nested_str_weak(teal), + be_nested_str_weak(aqua), + be_nested_str_weak(fuchsia), + be_nested_str_weak(indigo), + be_nested_str_weak(violet), + be_nested_str_weak(crimson), + be_nested_str_weak(coral), + be_nested_str_weak(salmon), + be_nested_str_weak(khaki), + be_nested_str_weak(plum), + be_nested_str_weak(orchid), + be_nested_str_weak(turquoise), + be_nested_str_weak(tan), + be_nested_str_weak(beige), + be_nested_str_weak(ivory), + be_nested_str_weak(snow), + be_nested_str_weak(transparent), + })) ) } )) }, + { be_const_key_weak(keywords, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { + be_const_list( * be_nested_list(73, + ( (struct bvalue*) &(const bvalue[]) { + be_nested_str_weak(strip), + be_nested_str_weak(set), + be_nested_str_weak(import), + be_nested_str_weak(berry), + be_nested_str_weak(color), + be_nested_str_weak(palette), + be_nested_str_weak(animation), + be_nested_str_weak(sequence), + be_nested_str_weak(function), + be_nested_str_weak(zone), + be_nested_str_weak(template), + be_nested_str_weak(param), + be_nested_str_weak(type), + be_nested_str_weak(play), + be_nested_str_weak(for), + be_nested_str_weak(with), + be_nested_str_weak(repeat), + be_nested_str_weak(times), + be_nested_str_weak(forever), + be_nested_str_weak(if), + be_nested_str_weak(else), + be_nested_str_weak(elif), + be_nested_str_weak(choose), + be_nested_str_weak(random), + be_nested_str_weak(on), + be_nested_str_weak(run), + be_nested_str_weak(wait), + be_nested_str_weak(goto), + be_nested_str_weak(interrupt), + be_nested_str_weak(resume), + be_nested_str_weak(while), + be_nested_str_weak(from), + be_nested_str_weak(to), + be_nested_str_weak(return), + be_nested_str_weak(reset), + be_nested_str_weak(restart), + be_nested_str_weak(at), + be_nested_str_weak(ease), + be_nested_str_weak(sync), + be_nested_str_weak(every), + be_nested_str_weak(stagger), + be_nested_str_weak(across), + be_nested_str_weak(pixels), + be_nested_str_weak(rgb), + be_nested_str_weak(hsv), + be_nested_str_weak(all), + be_nested_str_weak(even), + be_nested_str_weak(odd), + be_nested_str_weak(center), + be_nested_str_weak(edges), + be_nested_str_weak(left), + be_nested_str_weak(right), + be_nested_str_weak(top), + be_nested_str_weak(bottom), + be_nested_str_weak(true), + be_nested_str_weak(false), + be_nested_str_weak(nil), + be_nested_str_weak(transparent), + be_nested_str_weak(startup), + be_nested_str_weak(shutdown), + be_nested_str_weak(button_press), + be_nested_str_weak(button_hold), + be_nested_str_weak(motion_detected), + be_nested_str_weak(brightness_change), + be_nested_str_weak(timer), + be_nested_str_weak(time), + be_nested_str_weak(sound_peak), + be_nested_str_weak(network_message), + be_nested_str_weak(ms), + be_nested_str_weak(s), + be_nested_str_weak(m), + be_nested_str_weak(h), + be_nested_str_weak(bpm), + })) ) } )) }, + { be_const_key_weak(names, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { + be_const_list( * be_nested_list(44, + ( (struct bvalue*) &(const bvalue[]) { + be_nested_str_weak(KEYWORD), + be_nested_str_weak(IDENTIFIER), + be_nested_str_weak(NUMBER), + be_nested_str_weak(STRING), + be_nested_str_weak(COLOR), + be_nested_str_weak(TIME), + be_nested_str_weak(PERCENTAGE), + be_nested_str_weak(MULTIPLIER), + be_nested_str_weak(ASSIGN), + be_nested_str_weak(PLUS), + be_nested_str_weak(MINUS), + be_nested_str_weak(MULTIPLY), + be_nested_str_weak(DIVIDE), + be_nested_str_weak(MODULO), + be_nested_str_weak(POWER), + be_nested_str_weak(EQUAL), + be_nested_str_weak(NOT_EQUAL), + be_nested_str_weak(LESS_THAN), + be_nested_str_weak(LESS_EQUAL), + be_nested_str_weak(GREATER_THAN), + be_nested_str_weak(GREATER_EQUAL), + be_nested_str_weak(LOGICAL_AND), + be_nested_str_weak(LOGICAL_OR), + be_nested_str_weak(LOGICAL_NOT), + be_nested_str_weak(LEFT_PAREN), + be_nested_str_weak(RIGHT_PAREN), + be_nested_str_weak(LEFT_BRACE), + be_nested_str_weak(RIGHT_BRACE), + be_nested_str_weak(LEFT_BRACKET), + be_nested_str_weak(RIGHT_BRACKET), + be_nested_str_weak(COMMA), + be_nested_str_weak(SEMICOLON), + be_nested_str_weak(COLON), + be_nested_str_weak(DOT), + be_nested_str_weak(ARROW), + be_nested_str_weak(NEWLINE), + be_nested_str_weak(VARIABLE_REF), + be_nested_str_weak(COMMENT), + be_nested_str_weak(), + be_nested_str_weak(ERROR), + be_nested_str_weak(EVENT_ON), + be_nested_str_weak(EVENT_INTERRUPT), + be_nested_str_weak(EVENT_RESUME), + be_nested_str_weak(EVENT_AFTER), + })) ) } )) }, + { be_const_key_weak(init, 0), be_const_closure(class_Token_init_closure) }, + { be_const_key_weak(statement_keywords, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { + be_const_list( * be_nested_list(14, + ( (struct bvalue*) &(const bvalue[]) { + be_nested_str_weak(strip), + be_nested_str_weak(set), + be_nested_str_weak(color), + be_nested_str_weak(palette), + be_nested_str_weak(animation), + be_nested_str_weak(sequence), + be_nested_str_weak(function), + be_nested_str_weak(zone), + be_nested_str_weak(on), + be_nested_str_weak(run), + be_nested_str_weak(template), + be_nested_str_weak(param), + be_nested_str_weak(import), + be_nested_str_weak(berry), + })) ) } )) }, + })), + be_str_weak(Token) +); + +extern const bclass be_class_MockEngine; + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_MockEngine_init, /* name */ + be_nested_proto( + 1, /* 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(time_ms), + /* K1 */ be_const_int(0), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x90020101, // 0000 SETMBR R0 K0 K1 + 0x80000000, // 0001 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_strip_length +********************************************************************/ +be_local_closure(class_MockEngine_get_strip_length, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 0, /* has constants */ + NULL, /* no const */ + be_str_weak(get_strip_length), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x5406001D, // 0000 LDINT R1 30 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: MockEngine +********************************************************************/ +be_local_class(MockEngine, + 1, + NULL, + be_nested_map(3, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(time_ms, 1), be_const_var(0) }, + { be_const_key_weak(init, -1), be_const_closure(class_MockEngine_init_closure) }, + { be_const_key_weak(get_strip_length, -1), be_const_closure(class_MockEngine_get_strip_length_closure) }, + })), + be_str_weak(MockEngine) +); + +/******************************************************************** +** Solidified function: compile_dsl_source +********************************************************************/ +be_local_closure(compile_dsl_source, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ 0, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ + ( &(const bvalue[ 2]) { /* constants */ /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - /* K2 */ be_nested_str_weak(_X0A), - /* K3 */ be_const_int(1), + /* K1 */ be_nested_str_weak(compile_dsl), }), - be_str_weak(create_newline_token), + be_str_weak(compile_dsl_source), &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x54160022, // 0002 LDINT R5 35 - 0x58180002, // 0003 LDCONST R6 K2 - 0x5C1C0000, // 0004 MOVE R7 R0 - 0x5C200200, // 0005 MOVE R8 R1 - 0x58240003, // 0006 LDCONST R9 K3 - 0x7C0C0C00, // 0007 CALL R3 6 - 0x80040600, // 0008 RET 1 R3 + ( &(const binstruction[ 5]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080301, // 0001 GETMET R2 R1 K1 + 0x5C100000, // 0002 MOVE R4 R0 + 0x7C080400, // 0003 CALL R2 2 + 0x80040400, // 0004 RET 1 R2 }) ) ); /*******************************************************************/ -// compact class 'SymbolTable' ktab size: 54, total: 111 (saved 456 bytes) -static const bvalue be_ktab_class_SymbolTable[54] = { + +/******************************************************************** +** Solidified function: execute +********************************************************************/ +be_local_closure(execute, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 0, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(compile), + }), + be_str_weak(execute), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080301, // 0001 GETMET R2 R1 K1 + 0x5C100000, // 0002 MOVE R4 R0 + 0x7C080400, // 0003 CALL R2 2 + 0x600C000D, // 0004 GETGBL R3 G13 + 0x5C100400, // 0005 MOVE R4 R2 + 0x7C0C0200, // 0006 CALL R3 1 + 0x5C100600, // 0007 MOVE R4 R3 + 0x7C100000, // 0008 CALL R4 0 + 0x80040800, // 0009 RET 1 R4 + }) + ) +); +/*******************************************************************/ + +// compact class 'SymbolTable' ktab size: 55, total: 113 (saved 464 bytes) +static const bvalue be_ktab_class_SymbolTable[55] = { /* K0 */ be_nested_str_weak(get), /* K1 */ be_nested_str_weak(takes_named_args), /* K2 */ be_nested_str_weak(animation_dsl), @@ -2147,26 +2409,27 @@ static const bvalue be_ktab_class_SymbolTable[54] = { /* K31 */ be_nested_str_weak(create_value_provider_instance), /* K32 */ be_nested_str_weak(is_builtin), /* K33 */ be_nested_str_weak(type), - /* K34 */ be_nested_str_weak(0xFFFFFFFF), - /* K35 */ be_nested_str_weak(get_reference), - /* K36 */ be_nested_str_weak(_X25s_), - /* K37 */ be_nested_str_weak(create_template), - /* K38 */ be_nested_str_weak(set_param_types), - /* K39 */ be_nested_str_weak(Cannot_X20define_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X20conflicts_X20with_X20built_X2Din_X20_X25s), - /* K40 */ be_nested_str_weak(type_to_string), - /* K41 */ be_nested_str_weak(symbol_redefinition_error), - /* K42 */ be_nested_str_weak(find), - /* K43 */ be_nested_str_weak(Cannot_X20redefine_X20symbol_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X27s_X20already_X20defined_X20as_X20_X25s), - /* K44 */ be_nested_str_weak(MockEngine), - /* K45 */ be_nested_str_weak(create_sequence), - /* K46 */ be_nested_str_weak(takes_args), - /* K47 */ be_nested_str_weak(create_palette_instance), - /* K48 */ be_nested_str_weak(create_variable), - /* K49 */ be_nested_str_weak(keys), - /* K50 */ be_nested_str_weak(push), - /* K51 */ be_nested_str_weak(_X25s_X3A_X20_X25s), - /* K52 */ be_nested_str_weak(stop_iteration), - /* K53 */ be_nested_str_weak(instance), + /* K34 */ be_nested_str_weak(0x_X2508X), + /* K35 */ be_nested_str_weak(0xFFFFFFFF), + /* K36 */ be_nested_str_weak(get_reference), + /* K37 */ be_nested_str_weak(_X25s_), + /* K38 */ be_nested_str_weak(create_template), + /* K39 */ be_nested_str_weak(set_param_types), + /* K40 */ be_nested_str_weak(Cannot_X20define_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X20conflicts_X20with_X20built_X2Din_X20_X25s), + /* K41 */ be_nested_str_weak(type_to_string), + /* K42 */ be_nested_str_weak(symbol_redefinition_error), + /* K43 */ be_nested_str_weak(find), + /* K44 */ be_nested_str_weak(Cannot_X20redefine_X20symbol_X20_X27_X25s_X27_X20as_X20_X25s_X20_X2D_X20it_X27s_X20already_X20defined_X20as_X20_X25s), + /* K45 */ be_nested_str_weak(MockEngine), + /* K46 */ be_nested_str_weak(create_sequence), + /* K47 */ be_nested_str_weak(takes_args), + /* K48 */ be_nested_str_weak(create_palette_instance), + /* K49 */ be_nested_str_weak(create_variable), + /* K50 */ be_nested_str_weak(keys), + /* K51 */ be_nested_str_weak(push), + /* K52 */ be_nested_str_weak(_X25s_X3A_X20_X25s), + /* K53 */ be_nested_str_weak(stop_iteration), + /* K54 */ be_nested_str_weak(instance), }; @@ -2622,7 +2885,7 @@ be_local_closure(class_SymbolTable_create_value_provider, /* name */ ********************************************************************/ be_local_closure(class_SymbolTable__get_named_color_value, /* name */ be_nested_proto( - 6, /* nstack */ + 8, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -2633,24 +2896,28 @@ be_local_closure(class_SymbolTable__get_named_color_value, /* name */ &be_ktab_class_SymbolTable, /* shared constants */ be_str_weak(_get_named_color_value), &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ + ( &(const binstruction[21]) { /* code */ 0xA40A0400, // 0000 IMPORT R2 K2 0x8C0C0100, // 0001 GETMET R3 R0 K0 0x5C140200, // 0002 MOVE R5 R1 0x7C0C0400, // 0003 CALL R3 2 0x4C100000, // 0004 LDNIL R4 0x20100604, // 0005 NE R4 R3 R4 - 0x78120008, // 0006 JMPF R4 #0010 + 0x7812000C, // 0006 JMPF R4 #0014 0x88100720, // 0007 GETMBR R4 R3 K32 - 0x78120006, // 0008 JMPF R4 #0010 + 0x7812000A, // 0008 JMPF R4 #0014 0x88100721, // 0009 GETMBR R4 R3 K33 0x5416000A, // 000A LDINT R5 11 0x1C100805, // 000B EQ R4 R4 R5 - 0x78120002, // 000C JMPF R4 #0010 + 0x78120006, // 000C JMPF R4 #0014 0x8810050A, // 000D GETMBR R4 R2 K10 0x94100801, // 000E GETIDX R4 R4 R1 - 0x80040800, // 000F RET 1 R4 - 0x80064400, // 0010 RET 1 K34 + 0x60140018, // 000F GETGBL R5 G24 + 0x58180022, // 0010 LDCONST R6 K34 + 0x5C1C0800, // 0011 MOVE R7 R4 + 0x7C140400, // 0012 CALL R5 2 + 0x80040A00, // 0013 RET 1 R5 + 0x80064600, // 0014 RET 1 K35 }) ) ); @@ -2662,7 +2929,7 @@ be_local_closure(class_SymbolTable__get_named_color_value, /* name */ ********************************************************************/ be_local_closure(class_SymbolTable_get_reference, /* name */ be_nested_proto( - 7, /* nstack */ + 8, /* nstack */ 2, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -2673,31 +2940,35 @@ be_local_closure(class_SymbolTable_get_reference, /* name */ &be_ktab_class_SymbolTable, /* shared constants */ be_str_weak(get_reference), &be_const_str_solidified, - ( &(const binstruction[24]) { /* code */ + ( &(const binstruction[28]) { /* code */ 0xA40A0400, // 0000 IMPORT R2 K2 0x8C0C0100, // 0001 GETMET R3 R0 K0 0x5C140200, // 0002 MOVE R5 R1 0x7C0C0400, // 0003 CALL R3 2 0x4C100000, // 0004 LDNIL R4 0x20100604, // 0005 NE R4 R3 R4 - 0x7812000B, // 0006 JMPF R4 #0013 + 0x7812000F, // 0006 JMPF R4 #0017 0x88100720, // 0007 GETMBR R4 R3 K32 - 0x78120006, // 0008 JMPF R4 #0010 + 0x7812000A, // 0008 JMPF R4 #0014 0x88100721, // 0009 GETMBR R4 R3 K33 0x5416000A, // 000A LDINT R5 11 0x1C100805, // 000B EQ R4 R4 R5 - 0x78120002, // 000C JMPF R4 #0010 + 0x78120006, // 000C JMPF R4 #0014 0x8810050A, // 000D GETMBR R4 R2 K10 0x94100801, // 000E GETIDX R4 R4 R1 - 0x80040800, // 000F RET 1 R4 - 0x8C100723, // 0010 GETMET R4 R3 K35 - 0x7C100200, // 0011 CALL R4 1 - 0x80040800, // 0012 RET 1 R4 - 0x60100018, // 0013 GETGBL R4 G24 - 0x58140024, // 0014 LDCONST R5 K36 - 0x5C180200, // 0015 MOVE R6 R1 - 0x7C100400, // 0016 CALL R4 2 - 0x80040800, // 0017 RET 1 R4 + 0x60140018, // 000F GETGBL R5 G24 + 0x58180022, // 0010 LDCONST R6 K34 + 0x5C1C0800, // 0011 MOVE R7 R4 + 0x7C140400, // 0012 CALL R5 2 + 0x80040A00, // 0013 RET 1 R5 + 0x8C100724, // 0014 GETMET R4 R3 K36 + 0x7C100200, // 0015 CALL R4 1 + 0x80040800, // 0016 RET 1 R4 + 0x60100018, // 0017 GETGBL R4 G24 + 0x58140025, // 0018 LDCONST R5 K37 + 0x5C180200, // 0019 MOVE R6 R1 + 0x7C100400, // 001A CALL R4 2 + 0x80040800, // 001B RET 1 R4 }) ) ); @@ -2723,11 +2994,11 @@ be_local_closure(class_SymbolTable_create_template, /* name */ ( &(const binstruction[20]) { /* code */ 0xA40E0400, // 0000 IMPORT R3 K2 0x88100703, // 0001 GETMBR R4 R3 K3 - 0x8C100925, // 0002 GETMET R4 R4 K37 + 0x8C100926, // 0002 GETMET R4 R4 K38 0x5C180200, // 0003 MOVE R6 R1 0x501C0000, // 0004 LDBOOL R7 0 0 0x7C100600, // 0005 CALL R4 3 - 0x8C140926, // 0006 GETMET R5 R4 K38 + 0x8C140927, // 0006 GETMET R5 R4 K39 0x4C1C0000, // 0007 LDNIL R7 0x201C0407, // 0008 NE R7 R2 R7 0x781E0001, // 0009 JMPF R7 #000C @@ -2815,16 +3086,16 @@ be_local_closure(class_SymbolTable_add, /* name */ 0x20100805, // 0008 NE R4 R4 R5 0x78120008, // 0009 JMPF R4 #0013 0x60100018, // 000A GETGBL R4 G24 - 0x58140027, // 000B LDCONST R5 K39 + 0x58140028, // 000B LDCONST R5 K40 0x5C180200, // 000C MOVE R6 R1 - 0x8C1C0528, // 000D GETMET R7 R2 K40 + 0x8C1C0529, // 000D GETMET R7 R2 K41 0x7C1C0200, // 000E CALL R7 1 - 0x8C200728, // 000F GETMET R8 R3 K40 + 0x8C200729, // 000F GETMET R8 R3 K41 0x7C200200, // 0010 CALL R8 1 0x7C100800, // 0011 CALL R4 4 - 0xB0065204, // 0012 RAISE 1 K41 R4 + 0xB0065404, // 0012 RAISE 1 K42 R4 0x88100107, // 0013 GETMBR R4 R0 K7 - 0x8C10092A, // 0014 GETMET R4 R4 K42 + 0x8C10092B, // 0014 GETMET R4 R4 K43 0x5C180200, // 0015 MOVE R6 R1 0x7C100400, // 0016 CALL R4 2 0x4C140000, // 0017 LDNIL R5 @@ -2835,14 +3106,14 @@ be_local_closure(class_SymbolTable_add, /* name */ 0x20140A06, // 001C NE R5 R5 R6 0x78160008, // 001D JMPF R5 #0027 0x60140018, // 001E GETGBL R5 G24 - 0x5818002B, // 001F LDCONST R6 K43 + 0x5818002C, // 001F LDCONST R6 K44 0x5C1C0200, // 0020 MOVE R7 R1 - 0x8C200528, // 0021 GETMET R8 R2 K40 + 0x8C200529, // 0021 GETMET R8 R2 K41 0x7C200200, // 0022 CALL R8 1 - 0x8C240928, // 0023 GETMET R9 R4 K40 + 0x8C240929, // 0023 GETMET R9 R4 K41 0x7C240200, // 0024 CALL R9 1 0x7C140800, // 0025 CALL R5 4 - 0xB0065205, // 0026 RAISE 1 K41 R5 + 0xB0065405, // 0026 RAISE 1 K42 R5 0x88140107, // 0027 GETMBR R5 R0 K7 0x98140202, // 0028 SETIDX R5 R1 R2 0x80040400, // 0029 RET 1 R2 @@ -2870,7 +3141,7 @@ be_local_closure(class_SymbolTable_get, /* name */ &be_const_str_solidified, ( &(const binstruction[12]) { /* code */ 0x88080107, // 0000 GETMBR R2 R0 K7 - 0x8C08052A, // 0001 GETMET R2 R2 K42 + 0x8C08052B, // 0001 GETMET R2 R2 K43 0x5C100200, // 0002 MOVE R4 R1 0x7C080400, // 0003 CALL R2 2 0x4C0C0000, // 0004 LDNIL R3 @@ -2908,7 +3179,7 @@ be_local_closure(class_SymbolTable_init, /* name */ 0x60080013, // 0001 GETGBL R2 G19 0x7C080000, // 0002 CALL R2 0 0x90020E02, // 0003 SETMBR R0 K7 R2 - 0x8C08032C, // 0004 GETMET R2 R1 K44 + 0x8C08032D, // 0004 GETMET R2 R1 K45 0x7C080200, // 0005 CALL R2 1 0x90022E02, // 0006 SETMBR R0 K23 R2 0x80000000, // 0007 RET 0 @@ -2937,7 +3208,7 @@ be_local_closure(class_SymbolTable_create_sequence, /* name */ ( &(const binstruction[11]) { /* code */ 0xA40A0400, // 0000 IMPORT R2 K2 0x880C0503, // 0001 GETMBR R3 R2 K3 - 0x8C0C072D, // 0002 GETMET R3 R3 K45 + 0x8C0C072E, // 0002 GETMET R3 R3 K46 0x5C140200, // 0003 MOVE R5 R1 0x50180000, // 0004 LDBOOL R6 0 0 0x7C0C0600, // 0005 CALL R3 3 @@ -3040,7 +3311,7 @@ be_local_closure(class_SymbolTable_takes_args, /* name */ 0x4C0C0000, // 0003 LDNIL R3 0x200C0403, // 0004 NE R3 R2 R3 0x780E0001, // 0005 JMPF R3 #0008 - 0x880C052E, // 0006 GETMBR R3 R2 K46 + 0x880C052F, // 0006 GETMBR R3 R2 K47 0x70020000, // 0007 JMP #0009 0x500C0000, // 0008 LDBOOL R3 0 0 0x80040600, // 0009 RET 1 R3 @@ -3069,7 +3340,7 @@ be_local_closure(class_SymbolTable_create_palette, /* name */ ( &(const binstruction[12]) { /* code */ 0xA40E0400, // 0000 IMPORT R3 K2 0x88100703, // 0001 GETMBR R4 R3 K3 - 0x8C10092F, // 0002 GETMET R4 R4 K47 + 0x8C100930, // 0002 GETMET R4 R4 K48 0x5C180200, // 0003 MOVE R6 R1 0x5C1C0400, // 0004 MOVE R7 R2 0x50200000, // 0005 LDBOOL R8 0 0 @@ -3104,7 +3375,7 @@ be_local_closure(class_SymbolTable_create_variable, /* name */ ( &(const binstruction[11]) { /* code */ 0xA40A0400, // 0000 IMPORT R2 K2 0x880C0503, // 0001 GETMBR R3 R2 K3 - 0x8C0C0730, // 0002 GETMET R3 R3 K48 + 0x8C0C0731, // 0002 GETMET R3 R3 K49 0x5C140200, // 0003 MOVE R5 R1 0x50180000, // 0004 LDBOOL R6 0 0 0x7C0C0600, // 0005 CALL R3 3 @@ -3140,7 +3411,7 @@ be_local_closure(class_SymbolTable_list_symbols, /* name */ 0x7C040000, // 0001 CALL R1 0 0x60080010, // 0002 GETGBL R2 G16 0x880C0107, // 0003 GETMBR R3 R0 K7 - 0x8C0C0731, // 0004 GETMET R3 R3 K49 + 0x8C0C0732, // 0004 GETMET R3 R3 K50 0x7C0C0200, // 0005 CALL R3 1 0x7C080200, // 0006 CALL R2 1 0xA802000C, // 0007 EXBLK 0 #0015 @@ -3148,16 +3419,16 @@ be_local_closure(class_SymbolTable_list_symbols, /* name */ 0x7C0C0000, // 0009 CALL R3 0 0x88100107, // 000A GETMBR R4 R0 K7 0x94100803, // 000B GETIDX R4 R4 R3 - 0x8C140332, // 000C GETMET R5 R1 K50 + 0x8C140333, // 000C GETMET R5 R1 K51 0x601C0018, // 000D GETGBL R7 G24 - 0x58200033, // 000E LDCONST R8 K51 + 0x58200034, // 000E LDCONST R8 K52 0x5C240600, // 000F MOVE R9 R3 - 0x8C280928, // 0010 GETMET R10 R4 K40 + 0x8C280929, // 0010 GETMET R10 R4 K41 0x7C280200, // 0011 CALL R10 1 0x7C1C0600, // 0012 CALL R7 3 0x7C140400, // 0013 CALL R5 2 0x7001FFF2, // 0014 JMP #0008 - 0x58080034, // 0015 LDCONST R2 K52 + 0x58080035, // 0015 LDCONST R2 K53 0xAC080200, // 0016 CATCH R2 1 0 0xB0080000, // 0017 RAISE 2 R0 R0 0x80040200, // 0018 RET 1 R1 @@ -3190,7 +3461,7 @@ be_local_closure(class_SymbolTable_get_type, /* name */ 0x4C0C0000, // 0003 LDNIL R3 0x200C0403, // 0004 NE R3 R2 R3 0x780E0002, // 0005 JMPF R3 #0009 - 0x8C0C0528, // 0006 GETMET R3 R2 K40 + 0x8C0C0529, // 0006 GETMET R3 R2 K41 0x7C0C0200, // 0007 CALL R3 1 0x70020000, // 0008 JMP #000A 0x4C0C0000, // 0009 LDNIL R3 @@ -3224,7 +3495,7 @@ be_local_closure(class_SymbolTable_get_instance, /* name */ 0x4C0C0000, // 0003 LDNIL R3 0x200C0403, // 0004 NE R3 R2 R3 0x780E0001, // 0005 JMPF R3 #0008 - 0x880C0535, // 0006 GETMBR R3 R2 K53 + 0x880C0536, // 0006 GETMBR R3 R2 K54 0x70020000, // 0007 JMP #0009 0x4C0C0000, // 0008 LDNIL R3 0x80040600, // 0009 RET 1 R3 @@ -3273,9 +3544,9 @@ be_local_class(SymbolTable, ); /******************************************************************** -** Solidified function: compile_dsl_source +** Solidified function: is_keyword ********************************************************************/ -be_local_closure(compile_dsl_source, /* name */ +be_local_closure(is_keyword, /* name */ be_nested_proto( 5, /* nstack */ 1, /* argc */ @@ -3285,239 +3556,161 @@ be_local_closure(compile_dsl_source, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(compile_dsl), - }), - be_str_weak(compile_dsl_source), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080301, // 0001 GETMET R2 R1 K1 - 0x5C100000, // 0002 MOVE R4 R0 - 0x7C080400, // 0003 CALL R2 2 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_operator_precedence -********************************************************************/ -be_local_closure(get_operator_precedence, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(type), - /* K1 */ be_const_int(1), - /* K2 */ be_const_int(2), - /* K3 */ be_const_int(3), - /* K4 */ be_const_int(0), - }), - be_str_weak(get_operator_precedence), - &be_const_str_solidified, - ( &(const binstruction[74]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x540A0015, // 0001 LDINT R2 22 - 0x1C040202, // 0002 EQ R1 R1 R2 - 0x78060001, // 0003 JMPF R1 #0006 - 0x80060200, // 0004 RET 1 K1 - 0x70020042, // 0005 JMP #0049 - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x540A0014, // 0007 LDINT R2 21 - 0x1C040202, // 0008 EQ R1 R1 R2 - 0x78060001, // 0009 JMPF R1 #000C - 0x80060400, // 000A RET 1 K2 - 0x7002003C, // 000B JMP #0049 - 0x88040100, // 000C GETMBR R1 R0 K0 - 0x540A000E, // 000D LDINT R2 15 - 0x1C040202, // 000E EQ R1 R1 R2 - 0x74060003, // 000F JMPT R1 #0014 - 0x88040100, // 0010 GETMBR R1 R0 K0 - 0x540A000F, // 0011 LDINT R2 16 - 0x1C040202, // 0012 EQ R1 R1 R2 - 0x78060001, // 0013 JMPF R1 #0016 - 0x80060600, // 0014 RET 1 K3 - 0x70020032, // 0015 JMP #0049 - 0x88040100, // 0016 GETMBR R1 R0 K0 - 0x540A0010, // 0017 LDINT R2 17 - 0x1C040202, // 0018 EQ R1 R1 R2 - 0x7406000B, // 0019 JMPT R1 #0026 - 0x88040100, // 001A GETMBR R1 R0 K0 - 0x540A0011, // 001B LDINT R2 18 - 0x1C040202, // 001C EQ R1 R1 R2 - 0x74060007, // 001D JMPT R1 #0026 - 0x88040100, // 001E GETMBR R1 R0 K0 - 0x540A0012, // 001F LDINT R2 19 - 0x1C040202, // 0020 EQ R1 R1 R2 - 0x74060003, // 0021 JMPT R1 #0026 - 0x88040100, // 0022 GETMBR R1 R0 K0 - 0x540A0013, // 0023 LDINT R2 20 - 0x1C040202, // 0024 EQ R1 R1 R2 - 0x78060002, // 0025 JMPF R1 #0029 - 0x54060003, // 0026 LDINT R1 4 - 0x80040200, // 0027 RET 1 R1 - 0x7002001F, // 0028 JMP #0049 - 0x88040100, // 0029 GETMBR R1 R0 K0 - 0x540A0008, // 002A LDINT R2 9 - 0x1C040202, // 002B EQ R1 R1 R2 - 0x74060003, // 002C JMPT R1 #0031 - 0x88040100, // 002D GETMBR R1 R0 K0 - 0x540A0009, // 002E LDINT R2 10 - 0x1C040202, // 002F EQ R1 R1 R2 - 0x78060002, // 0030 JMPF R1 #0034 - 0x54060004, // 0031 LDINT R1 5 - 0x80040200, // 0032 RET 1 R1 - 0x70020014, // 0033 JMP #0049 - 0x88040100, // 0034 GETMBR R1 R0 K0 - 0x540A000A, // 0035 LDINT R2 11 - 0x1C040202, // 0036 EQ R1 R1 R2 - 0x74060007, // 0037 JMPT R1 #0040 - 0x88040100, // 0038 GETMBR R1 R0 K0 - 0x540A000B, // 0039 LDINT R2 12 - 0x1C040202, // 003A EQ R1 R1 R2 - 0x74060003, // 003B JMPT R1 #0040 - 0x88040100, // 003C GETMBR R1 R0 K0 - 0x540A000C, // 003D LDINT R2 13 - 0x1C040202, // 003E EQ R1 R1 R2 - 0x78060002, // 003F JMPF R1 #0043 - 0x54060005, // 0040 LDINT R1 6 - 0x80040200, // 0041 RET 1 R1 - 0x70020005, // 0042 JMP #0049 - 0x88040100, // 0043 GETMBR R1 R0 K0 - 0x540A000D, // 0044 LDINT R2 14 - 0x1C040202, // 0045 EQ R1 R1 R2 - 0x78060001, // 0046 JMPF R1 #0049 - 0x54060006, // 0047 LDINT R1 7 - 0x80040200, // 0048 RET 1 R1 - 0x80060800, // 0049 RET 1 K4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_runtime -********************************************************************/ -be_local_closure(create_runtime, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ ( &(const bvalue[ 4]) { /* constants */ /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(create_engine), - /* K3 */ be_nested_str_weak(DSLRuntime), + /* K1 */ be_nested_str_weak(Token), + /* K2 */ be_nested_str_weak(keywords), + /* K3 */ be_nested_str_weak(stop_iteration), }), - be_str_weak(create_runtime), + be_str_weak(is_keyword), &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0xB80E0200, // 0001 GETNGBL R3 K1 - 0x8C0C0702, // 0002 GETMET R3 R3 K2 - 0x5C140000, // 0003 MOVE R5 R0 - 0x7C0C0400, // 0004 CALL R3 2 - 0x8C100503, // 0005 GETMET R4 R2 K3 - 0x5C180600, // 0006 MOVE R6 R3 - 0x5C1C0200, // 0007 MOVE R7 R1 - 0x7C100600, // 0008 CALL R4 3 - 0x80040800, // 0009 RET 1 R4 + ( &(const binstruction[19]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x60080010, // 0001 GETGBL R2 G16 + 0x880C0301, // 0002 GETMBR R3 R1 K1 + 0x880C0702, // 0003 GETMBR R3 R3 K2 + 0x7C080200, // 0004 CALL R2 1 + 0xA8020007, // 0005 EXBLK 0 #000E + 0x5C0C0400, // 0006 MOVE R3 R2 + 0x7C0C0000, // 0007 CALL R3 0 + 0x1C100003, // 0008 EQ R4 R0 R3 + 0x78120002, // 0009 JMPF R4 #000D + 0x50100200, // 000A LDBOOL R4 1 0 + 0xA8040001, // 000B EXBLK 1 1 + 0x80040800, // 000C RET 1 R4 + 0x7001FFF7, // 000D JMP #0006 + 0x58080003, // 000E LDCONST R2 K3 + 0xAC080200, // 000F CATCH R2 1 0 + 0xB0080000, // 0010 RAISE 2 R0 R0 + 0x50080000, // 0011 LDBOOL R2 0 0 + 0x80040400, // 0012 RET 1 R2 }) ) ); /*******************************************************************/ -// compact class 'AnimationWebUI' ktab size: 62, total: 73 (saved 88 bytes) -static const bvalue be_ktab_class_AnimationWebUI[62] = { - /* K0 */ be_nested_str_weak(webserver), - /* K1 */ be_nested_str_weak(content_start), - /* K2 */ be_nested_str_weak(Berry_X20Animation_X20Framework), - /* K3 */ be_nested_str_weak(content_send_style), - /* K4 */ be_nested_str_weak(content_send), - /* K5 */ be_nested_str_long(_X3Cstyle_X3E_X2Eanim_X2Dcontainer_X7Bmin_X2Dwidth_X3A350px_X3Bmargin_X3A0_X20auto_X3Bpadding_X3A10px_X3Bwidth_X3A100_X25_X3Bmax_X2Dwidth_X3Anone_X3B_X7Dbody_X20_X3E_X20div_X7Bwidth_X3Acalc_X28100_X25_X20_X2D_X2020px_X29_X20_X21important_X3Bmax_X2Dwidth_X3A1200px_X20_X21important_X3Bdisplay_X3Ablock_X20_X21important_X3Bbox_X2Dsizing_X3Aborder_X2Dbox_X20_X21important_X3B_X7D_X2Eanim_X2Deditor_X7Bwidth_X3A100_X25_X3Bmin_X2Dheight_X3A300px_X3Bfont_X2Dfamily_X3Amonospace_X3Bfont_X2Dsize_X3A12px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_frm_X29_X3Bpadding_X3A8px_X3Bbackground_X3Avar_X28_X2D_X2Dc_intxt_X29_X3Bcolor_X3A_X23b19cd9_X3Bbox_X2Dsizing_X3Aborder_X2Dbox_X3B_X7D_X2Eanim_X2Doutput_X7Bwidth_X3A100_X25_X3Bmin_X2Dheight_X3A200px_X3Bfont_X2Dfamily_X3Amonospace_X3Bfont_X2Dsize_X3A11px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_frm_X29_X3Bpadding_X3A8px_X3Bbackground_X3Avar_X28_X2D_X2Dc_intxt_X29_X3Bcolor_X3A_X23fb1_X3Bbox_X2Dsizing_X3Aborder_X2Dbox_X3B_X7D_X2Eanim_X2Derror_X7Bcolor_X3Avar_X28_X2D_X2Dc_btnrst_X29_X3Bbackground_X3A_X23ffe6e6_X3Bpadding_X3A8px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_btnrst_X29_X3Bmargin_X3A5px_X200_X3B_X7D_X2Eanim_X2Dsuccess_X7Bcolor_X3Avar_X28_X2D_X2Dc_btnsv_X29_X3Bbackground_X3A_X23e6ffe6_X3Bpadding_X3A8px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_btnsv_X29_X3Bmargin_X3A5px_X200_X3B_X7Dbutton_X3Adisabled_X7Bopacity_X3A0_X2E5_X3Bcursor_X3Anot_X2Dallowed_X3B_X7D_X2Etextarea_X2Dcontainer_X7Bposition_X3Arelative_X3B_X7D_X2Ecopy_X2Dbtn_X7Bposition_X3Aabsolute_X3Btop_X3A8px_X3Bright_X3A0_X3Bwidth_X3A20px_X3Bheight_X3A20px_X3Bcursor_X3Apointer_X3Buser_X2Dselect_X3Anone_X3Btransition_X3Aall_X200_X2E2s_X3Bbackground_X3Atransparent_X3Bborder_X3Anone_X3B_X7D_X2Eanim_X2Deditor_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Abefore_X2C_X2Eanim_X2Doutput_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Abefore_X7Bcontent_X3A_X27_X27_X3Bposition_X3Aabsolute_X3Btop_X3A2px_X3Bleft_X3A2px_X3Bwidth_X3A10px_X3Bheight_X3A10px_X3Bborder_X2Dleft_X3A2px_X20solid_X20var_X28_X2D_X2Dc_txt_X29_X3Bborder_X2Dtop_X3A2px_X20solid_X20var_X28_X2D_X2Dc_txt_X29_X3Bbackground_X3Atransparent_X3B_X7D_X2Eanim_X2Deditor_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Aafter_X2C_X2Eanim_X2Doutput_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Aafter_X7Bcontent_X3A_X27_X27_X3Bposition_X3Aabsolute_X3Btop_X3A6px_X3Bleft_X3A6px_X3Bwidth_X3A10px_X3Bheight_X3A10px_X3Bborder_X3A2px_X20solid_X20var_X28_X2D_X2Dc_txt_X29_X3B_X7D_X2Ecopy_X2Dbtn_X3Ahover_X3A_X3Abefore_X2C_X2Ecopy_X2Dbtn_X3Ahover_X3A_X3Aafter_X7Bopacity_X3A0_X2E7_X3B_X7D_X2Ecopy_X2Dmessage_X7Bposition_X3Aabsolute_X3Btop_X3A35px_X3Bright_X3A8px_X3Bbackground_X3Avar_X28_X2D_X2Dc_intxt_X29_X3Bcolor_X3Awhite_X3Bpadding_X3A4px_X208px_X3Bborder_X2Dradius_X3A3px_X3Bfont_X2Dsize_X3A11px_X3Bopacity_X3A0_X3Btransition_X3Aopacity_X200_X2E3s_X3Bpointer_X2Devents_X3Anone_X3Bwhite_X2Dspace_X3Anowrap_X3B_X7D_X2Ecopy_X2Dmessage_X2Eshow_X7Bopacity_X3A1_X3B_X7D_X3C_X2Fstyle_X3E), - /* K6 */ be_nested_str_weak(_X3Cdiv_X20class_X3D_X27anim_X2Dcontainer_X27_X3E_X3Ch3_X3EDSL_X20Code_X20Editor_X3C_X2Fh3_X3E_X3Cdiv_X20class_X3D_X27textarea_X2Dcontainer_X27_X3E_X3Ctextarea_X20id_X3D_X27dsl_code_X27_X20class_X3D_X27anim_X2Deditor_X27_X20spellcheck_X3D_X27false_X27_X20placeholder_X3D_X27Enter_X20your_X20Berry_X20Animation_X20DSL_X20code_X20here_X2E_X2E_X2E_X27_X3E), - /* K7 */ be_nested_str_weak(last_dsl_code), - /* K8 */ be_nested_str_long(_X3C_X2Ftextarea_X3E_X3Cdiv_X20class_X3D_X27copy_X2Dbtn_X27_X20onclick_X3D_X27copyDslCode_X28_X29_X27_X20title_X3D_X27Copy_X20DSL_X20code_X27_X3E_X3C_X2Fdiv_X3E_X3Cdiv_X20id_X3D_X27dsl_X2Dcopy_X2Dmsg_X27_X20class_X3D_X27copy_X2Dmessage_X27_X3E_X3C_X2Fdiv_X3E_X3C_X2Fdiv_X3E_X3Cdiv_X20id_X3D_X27status_X2Dmessage_X27_X3E_X3Cdiv_X20class_X3D_X27anim_X2Dsuccess_X27_X3E_X3Cstrong_X3EStatus_X3A_X3C_X2Fstrong_X3E_X20Ready_X3C_X2Fdiv_X3E_X3C_X2Fdiv_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cbutton_X20id_X3D_X27btn_X2Dcompile_X27_X20onclick_X3D_X27sendAction_X28_X22compile_X22_X29_X27_X20class_X3D_X27button_X20bgrn_X27_X3ECompile_X20_X26_X20Run_X3C_X2Fbutton_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cbutton_X20id_X3D_X27btn_X2Dcompile_X2Donly_X27_X20onclick_X3D_X27sendAction_X28_X22compile_only_X22_X29_X27_X20class_X3D_X27button_X27_X3ECompile_X20Only_X3C_X2Fbutton_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cbutton_X20id_X3D_X27btn_X2Dstop_X27_X20onclick_X3D_X27sendAction_X28_X22stop_X22_X29_X27_X20class_X3D_X27button_X27_X3EStop_X20Animation_X3C_X2Fbutton_X3E), - /* K9 */ be_nested_str_weak(_X3Ch3_X3EGenerated_X20Berry_X20Code_X3C_X2Fh3_X3E_X3Cdiv_X20class_X3D_X27textarea_X2Dcontainer_X27_X3E_X3Ctextarea_X20id_X3D_X27berry_output_X27_X20class_X3D_X27anim_X2Doutput_X27_X20readonly_X3E), - /* K10 */ be_nested_str_weak(html_escape), - /* K11 */ be_nested_str_weak(last_berry_code), - /* K12 */ be_nested_str_weak(_X3C_X2Ftextarea_X3E_X3Cdiv_X20class_X3D_X27copy_X2Dbtn_X27_X20onclick_X3D_X27copyBerryCode_X28_X29_X27_X20title_X3D_X27Copy_X20Berry_X20code_X27_X3E_X3C_X2Fdiv_X3E_X3Cdiv_X20id_X3D_X27berry_X2Dcopy_X2Dmsg_X27_X20class_X3D_X27copy_X2Dmessage_X27_X3E_X3C_X2Fdiv_X3E_X3C_X2Fdiv_X3E), - /* K13 */ be_nested_str_weak(content_button), - /* K14 */ be_nested_str_weak(BUTTON_MANAGEMENT), - /* K15 */ be_nested_str_long(_X3Cscript_X3Efunction_X20showStatus_X28message_X2CisError_X29_X7Bvar_X20statusDiv_X3Deb_X28_X27status_X2Dmessage_X27_X29_X3Bif_X28message_X29_X7BstatusDiv_X2EinnerHTML_X3D_X27_X3Cdiv_X20class_X3D_X22anim_X2D_X27_X2B_X28isError_X3F_X27error_X27_X3A_X27success_X27_X29_X2B_X27_X22_X3E_X3Cstrong_X3E_X27_X2B_X28isError_X3F_X27Error_X27_X3A_X27Success_X27_X29_X2B_X27_X3A_X3C_X2Fstrong_X3E_X20_X27_X2Bmessage_X2B_X27_X3C_X2Fdiv_X3E_X27_X3B_X7Delse_X7BstatusDiv_X2EinnerHTML_X3D_X27_X27_X3B_X7D_X7Dfunction_X20showProcessingStatus_X28_X29_X7Bvar_X20statusDiv_X3Deb_X28_X27status_X2Dmessage_X27_X29_X3BstatusDiv_X2EinnerHTML_X3D_X27_X3Cdiv_X20class_X3D_X22anim_X2Dsuccess_X22_X3E_X3Cstrong_X3EStatus_X3A_X3C_X2Fstrong_X3E_X20Processing_X2E_X2E_X2E_X3C_X2Fdiv_X3E_X27_X3B_X7Dfunction_X20setButtonsDisabled_X28disabled_X29_X7Bvar_X20btnIds_X3D_X5B_X27btn_X2Dcompile_X27_X2C_X27btn_X2Dcompile_X2Donly_X27_X2C_X27btn_X2Dstop_X27_X5D_X3Bfor_X28var_X20i_X3D0_X3Bi_X3CbtnIds_X2Elength_X3Bi_X2B_X2B_X29_X7Bvar_X20btn_X3Deb_X28btnIds_X5Bi_X5D_X29_X3Bif_X28btn_X29btn_X2Edisabled_X3Ddisabled_X3B_X7D_X7D), - /* K16 */ be_nested_str_long(function_X20sendAction_X28action_X29_X7BsetButtonsDisabled_X28true_X29_X3BshowProcessingStatus_X28_X29_X3Bvar_X20xhr_X3Dnew_X20XMLHttpRequest_X28_X29_X3Bvar_X20formData_X3Dnew_X20FormData_X28_X29_X3BformData_X2Eappend_X28_X27action_X27_X2Caction_X29_X3Bif_X28action_X21_X3D_X3D_X27stop_X27_X26_X26action_X21_X3D_X3D_X27clear_X27_X29_X7BformData_X2Eappend_X28_X27dsl_code_X27_X2Ceb_X28_X27dsl_code_X27_X29_X2Evalue_X29_X3B_X7Dxhr_X2Eopen_X28_X27POST_X27_X2C_X27_X2Fberry_anim_X3Fapi_X3Daction_X27_X2Ctrue_X29_X3Bxhr_X2Eonreadystatechange_X3Dfunction_X28_X29_X7Bif_X28xhr_X2EreadyState_X3D_X3D_X3D4_X29_X7BsetButtonsDisabled_X28false_X29_X3Bif_X28xhr_X2Estatus_X3D_X3D_X3D200_X29_X7Btry_X7Bvar_X20result_X3DJSON_X2Eparse_X28xhr_X2EresponseText_X29_X3Bif_X28result_X2Esuccess_X29_X7BshowStatus_X28result_X2Emessage_X2Cfalse_X29_X3Bif_X28result_X2Eberry_code_X21_X3D_X3Dundefined_X29_X7Beb_X28_X27berry_output_X27_X29_X2Evalue_X3Dresult_X2Eberry_code_X3B_X7Dif_X28result_X2Edsl_code_X21_X3D_X3Dundefined_X29_X7Beb_X28_X27dsl_code_X27_X29_X2Evalue_X3Dresult_X2Edsl_code_X3B_X7D_X7Delse_X7BshowStatus_X28result_X2Eerror_X2Ctrue_X29_X3Bif_X28result_X2Eerror_X2Eincludes_X28_X27Compilation_X20failed_X27_X29_X29_X7Beb_X28_X27berry_output_X27_X29_X2Evalue_X3D_X27_X23_X20Compilation_X20failed_X5Cn_X23_X20_X27_X2Bresult_X2Eerror_X3B_X7D_X7D_X7Dcatch_X28e_X29_X7BshowStatus_X28_X27Invalid_X20response_X20from_X20server_X27_X2Ctrue_X29_X3B_X7D_X7Delse_X7BshowStatus_X28_X27Network_X20error_X3A_X20_X27_X2Bxhr_X2Estatus_X2Ctrue_X29_X3B_X7D_X7D_X7D_X3Bxhr_X2Esend_X28formData_X29_X3B_X7D), - /* K17 */ be_nested_str_long(function_X20showCopyMessage_X28msgId_X2Ctext_X2CisError_X29_X7Bvar_X20msgDiv_X3Deb_X28msgId_X29_X3BmsgDiv_X2EtextContent_X3Dtext_X3BmsgDiv_X2Estyle_X2Ebackground_X3D_X27color_X2Dmix_X28in_X20srgb_X2C_X20var_X28_X27_X2B_X28isError_X3F_X27_X2D_X2Dc_btnrst_X27_X3A_X27_X2D_X2Dc_btnsv_X27_X29_X2B_X27_X29_X2090_X25_X2C_X20transparent_X29_X27_X3BmsgDiv_X2EclassList_X2Eadd_X28_X27show_X27_X29_X3BsetTimeout_X28function_X28_X29_X7BmsgDiv_X2EclassList_X2Eremove_X28_X27show_X27_X29_X3B_X7D_X2C2000_X29_X3B_X7Dfunction_X20copyTextarea_X28textareaId_X2CmsgId_X29_X7Bvar_X20textarea_X3Deb_X28textareaId_X29_X3Btextarea_X2Eselect_X28_X29_X3Btextarea_X2EsetSelectionRange_X280_X2C99999_X29_X3Btry_X7Bdocument_X2EexecCommand_X28_X27copy_X27_X29_X3BshowCopyMessage_X28msgId_X2C_X27Copied_X21_X27_X2Cfalse_X29_X3B_X7Dcatch_X28err_X29_X7BshowCopyMessage_X28msgId_X2C_X27Copy_X20failed_X27_X2Ctrue_X29_X3B_X7D_X7Dfunction_X20copyDslCode_X28_X29_X7BcopyTextarea_X28_X27dsl_code_X27_X2C_X27dsl_X2Dcopy_X2Dmsg_X27_X29_X3B_X7Dfunction_X20copyBerryCode_X28_X29_X7BcopyTextarea_X28_X27berry_output_X27_X2C_X27berry_X2Dcopy_X2Dmsg_X27_X29_X3B_X7D_X3C_X2Fscript_X3E), - /* K18 */ be_nested_str_weak(content_stop), - /* K19 */ be_nested_str_weak(animation_dsl), - /* K20 */ be_nested_str_weak(has_arg), - /* K21 */ be_nested_str_weak(api), - /* K22 */ be_nested_str_weak(arg), - /* K23 */ be_nested_str_weak(action), - /* K24 */ be_nested_str_weak(content_open), - /* K25 */ be_nested_str_weak(application_X2Fjson), - /* K26 */ be_nested_str_weak(compile), - /* K27 */ be_nested_str_weak(compile_only), - /* K28 */ be_nested_str_weak(dsl_code), - /* K29 */ be_nested_str_weak(success), - /* K30 */ be_nested_str_weak(berry_code), - /* K31 */ be_nested_str_weak(execute), - /* K32 */ be_nested_str_weak(message), - /* K33 */ be_nested_str_weak(Animation_X20compiled_X20and_X20started), - /* K34 */ be_nested_str_weak(DSL_X20compiled_X20successfully), - /* K35 */ be_nested_str_weak(error), - /* K36 */ be_nested_str_weak(_X25s_X3A_X20_X25s), - /* K37 */ be_nested_str_weak(_X23_X20Compilation_X20failed_X0A_X23_X20_X25s), - /* K38 */ be_nested_str_weak(No_X20DSL_X20code_X20provided), - /* K39 */ be_nested_str_weak(stop), - /* K40 */ be_nested_str_weak(animation), - /* K41 */ be_nested_str_weak(init_strip), - /* K42 */ be_nested_str_weak(Animation_X20stopped), - /* K43 */ be_nested_str_weak(Unknown_X20action_X3A_X20_X25s), - /* K44 */ be_nested_str_weak(No_X20action_X20specified), - /* K45 */ be_nested_str_weak(json), - /* K46 */ be_nested_str_weak(dump), - /* K47 */ be_nested_str_weak(content_close), - /* K48 */ be_nested_str_weak(page_main), - /* K49 */ be_nested_str_weak(_X3Cp_X3E_X3C_X2Fp_X3E_X3Cform_X20id_X3Dbut_part_mgr_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27berry_anim_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3ELED_X20Animation_X20Console_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3Cp_X3E_X3C_X2Fp_X3E), - /* K50 */ be_nested_str_weak(log), - /* K51 */ be_nested_str_weak(LED_X3A_X20Berry_X20Animation_X20WebUI_X20deinitialized), - /* K52 */ be_const_int(3), - /* K53 */ be_nested_str_weak(on), - /* K54 */ be_nested_str_weak(_X2Fberry_anim), - /* K55 */ be_nested_str_weak(DEFAULT_DSL), - /* K56 */ be_nested_str_weak(), - /* K57 */ be_nested_str_weak(tasmota), - /* K58 */ be_nested_str_weak(add_driver), - /* K59 */ be_nested_str_weak(is_network_up), - /* K60 */ be_nested_str_weak(web_add_handler), - /* K61 */ be_nested_str_weak(LED_X3A_X20Berry_X20Animation_X20WebUI_X20initialized), +// compact class 'Lexer' ktab size: 109, total: 288 (saved 1432 bytes) +static const bvalue be_ktab_class_Lexer[109] = { + /* K0 */ be_nested_str_weak(position), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(line), + /* K3 */ be_const_int(1), + /* K4 */ be_nested_str_weak(column), + /* K5 */ be_nested_str_weak(token_position), + /* K6 */ be_nested_str_weak(a), + /* K7 */ be_nested_str_weak(z), + /* K8 */ be_nested_str_weak(A), + /* K9 */ be_nested_str_weak(Z), + /* K10 */ be_nested_str_weak(Line_X20), + /* K11 */ be_nested_str_weak(_X3A), + /* K12 */ be_nested_str_weak(_X3A_X20), + /* K13 */ be_nested_str_weak(lexical_error), + /* K14 */ be_nested_str_weak(0), + /* K15 */ be_nested_str_weak(9), + /* K16 */ be_nested_str_weak(advance), + /* K17 */ be_nested_str_weak(at_end), + /* K18 */ be_nested_str_weak(is_hex_digit), + /* K19 */ be_nested_str_weak(peek), + /* K20 */ be_nested_str_weak(source), + /* K21 */ be_nested_str_weak(create_token), + /* K22 */ be_nested_str_weak(error), + /* K23 */ be_nested_str_weak(Invalid_X20hex_X20color_X20format_X3A_X20), + /* K24 */ be_nested_str_weak(_X20_X28expected_X200xRRGGBB_X20or_X200xAARRGGBB_X29), + /* K25 */ be_nested_str_weak(), + /* K26 */ be_nested_str_weak(animation_dsl), + /* K27 */ be_nested_str_weak(Token), + /* K28 */ be_nested_str_weak(is_digit), + /* K29 */ be_nested_str_weak(_X2E), + /* K30 */ be_nested_str_weak(check_time_suffix), + /* K31 */ be_nested_str_weak(scan_time_suffix), + /* K32 */ be_nested_str_weak(_X25), + /* K33 */ be_nested_str_weak(x), + /* K34 */ be_const_int(2), + /* K35 */ be_nested_str_weak(next_token), + /* K36 */ be_nested_str_weak(create_lexer), + /* K37 */ be_nested_str_weak(_X20), + /* K38 */ be_nested_str_weak(_X09), + /* K39 */ be_nested_str_weak(_X0D), + /* K40 */ be_nested_str_weak(_X0A), + /* K41 */ be_nested_str_weak(_X23), + /* K42 */ be_nested_str_weak(scan_comment), + /* K43 */ be_nested_str_weak(scan_hex_color_0x), + /* K44 */ be_nested_str_weak(is_alpha), + /* K45 */ be_nested_str_weak(_), + /* K46 */ be_nested_str_weak(scan_identifier_or_keyword), + /* K47 */ be_nested_str_weak(scan_number), + /* K48 */ be_nested_str_weak(_X22), + /* K49 */ be_nested_str_weak(_X27), + /* K50 */ be_nested_str_weak(peek_char_ahead), + /* K51 */ be_nested_str_weak(scan_triple_quoted_string), + /* K52 */ be_nested_str_weak(scan_string), + /* K53 */ be_nested_str_weak(_X24), + /* K54 */ be_nested_str_weak(scan_variable_reference), + /* K55 */ be_nested_str_weak(scan_operator_or_delimiter), + /* K56 */ be_const_int(3), + /* K57 */ be_nested_str_weak(Unterminated_X20triple_X2Dquoted_X20string_X20literal), + /* K58 */ be_nested_str_weak(_X3D), + /* K59 */ be_nested_str_weak(match), + /* K60 */ be_nested_str_weak(_X3D_X3D), + /* K61 */ be_nested_str_weak(_X21), + /* K62 */ be_nested_str_weak(_X21_X3D), + /* K63 */ be_nested_str_weak(_X3C), + /* K64 */ be_nested_str_weak(_X3C_X3D), + /* K65 */ be_nested_str_weak(Left_X20shift_X20operator_X20_X27_X3C_X3C_X27_X20not_X20supported_X20in_X20DSL), + /* K66 */ be_nested_str_weak(_X3E), + /* K67 */ be_nested_str_weak(_X3E_X3D), + /* K68 */ be_nested_str_weak(Right_X20shift_X20operator_X20_X27_X3E_X3E_X27_X20not_X20supported_X20in_X20DSL), + /* K69 */ be_nested_str_weak(_X26), + /* K70 */ be_nested_str_weak(_X26_X26), + /* K71 */ be_nested_str_weak(Single_X20_X27_X26_X27_X20not_X20supported_X20in_X20DSL), + /* K72 */ be_nested_str_weak(_X7C), + /* K73 */ be_nested_str_weak(_X7C_X7C), + /* K74 */ be_nested_str_weak(Single_X20_X27_X7C_X27_X20not_X20supported_X20in_X20DSL), + /* K75 */ be_nested_str_weak(_X2D), + /* K76 */ be_nested_str_weak(_X2D_X3E), + /* K77 */ be_nested_str_weak(_X2B), + /* K78 */ be_nested_str_weak(_X2A), + /* K79 */ be_nested_str_weak(_X2F), + /* K80 */ be_nested_str_weak(_X5E), + /* K81 */ be_nested_str_weak(_X28), + /* K82 */ be_nested_str_weak(_X29), + /* K83 */ be_nested_str_weak(_X7B), + /* K84 */ be_nested_str_weak(_X7D), + /* K85 */ be_nested_str_weak(_X5B), + /* K86 */ be_nested_str_weak(_X5D), + /* K87 */ be_nested_str_weak(_X2C), + /* K88 */ be_nested_str_weak(_X3B), + /* K89 */ be_nested_str_weak(Unexpected_X20character_X3A_X20_X27), + /* K90 */ be_nested_str_weak(string), + /* K91 */ be_nested_str_weak(startswith), + /* K92 */ be_const_int(2147483647), + /* K93 */ be_nested_str_weak(ms), + /* K94 */ be_nested_str_weak(s), + /* K95 */ be_nested_str_weak(m), + /* K96 */ be_nested_str_weak(h), + /* K97 */ be_nested_str_weak(Invalid_X20variable_X20reference_X3A_X20_X24_X20must_X20be_X20followed_X20by_X20identifier), + /* K98 */ be_nested_str_weak(is_alnum), + /* K99 */ be_nested_str_weak(f), + /* K100 */ be_nested_str_weak(F), + /* K101 */ be_nested_str_weak(stop_iteration), + /* K102 */ be_nested_str_weak(_X5C), + /* K103 */ be_nested_str_weak(n), + /* K104 */ be_nested_str_weak(t), + /* K105 */ be_nested_str_weak(r), + /* K106 */ be_nested_str_weak(Unterminated_X20string_X20literal), + /* K107 */ be_nested_str_weak(is_color_name), + /* K108 */ be_nested_str_weak(is_keyword), }; -extern const bclass be_class_AnimationWebUI; +extern const bclass be_class_Lexer; /******************************************************************** -** Solidified function: page_main +** Solidified function: reset ********************************************************************/ -be_local_closure(class_AnimationWebUI_page_main, /* name */ +be_local_closure(class_Lexer_reset, /* name */ be_nested_proto( - 7, /* nstack */ + 1, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -3525,53 +3718,206 @@ be_local_closure(class_AnimationWebUI_page_main, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_AnimationWebUI, /* shared constants */ - be_str_weak(page_main), + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(reset), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x90020101, // 0000 SETMBR R0 K0 K1 + 0x90020503, // 0001 SETMBR R0 K2 K3 + 0x90020903, // 0002 SETMBR R0 K4 K3 + 0x90020B01, // 0003 SETMBR R0 K5 K1 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_position +********************************************************************/ +be_local_closure(class_Lexer_get_position, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(get_position), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040105, // 0000 GETMBR R1 R0 K5 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_alpha +********************************************************************/ +be_local_closure(class_Lexer_is_alpha, /* name */ + be_nested_proto( + 3, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(is_alpha), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x28080306, // 0000 GE R2 R1 K6 + 0x780A0001, // 0001 JMPF R2 #0004 + 0x18080307, // 0002 LE R2 R1 K7 + 0x740A0004, // 0003 JMPT R2 #0009 + 0x28080308, // 0004 GE R2 R1 K8 + 0x780A0001, // 0005 JMPF R2 #0008 + 0x18080309, // 0006 LE R2 R1 K9 + 0x740A0000, // 0007 JMPT R2 #0009 + 0x50080001, // 0008 LDBOOL R2 0 1 + 0x50080200, // 0009 LDBOOL R2 1 0 + 0x80040400, // 000A RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: error +********************************************************************/ +be_local_closure(class_Lexer_error, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(error), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x60080008, // 0000 GETGBL R2 G8 + 0x880C0102, // 0001 GETMBR R3 R0 K2 + 0x7C080200, // 0002 CALL R2 1 + 0x000A1402, // 0003 ADD R2 K10 R2 + 0x0008050B, // 0004 ADD R2 R2 K11 + 0x600C0008, // 0005 GETGBL R3 G8 + 0x88100104, // 0006 GETMBR R4 R0 K4 + 0x7C0C0200, // 0007 CALL R3 1 + 0x00080403, // 0008 ADD R2 R2 R3 + 0x0008050C, // 0009 ADD R2 R2 K12 + 0x00080401, // 000A ADD R2 R2 R1 + 0xB0061A02, // 000B RAISE 1 K13 R2 + 0x80000000, // 000C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_digit +********************************************************************/ +be_local_closure(class_Lexer_is_digit, /* name */ + be_nested_proto( + 3, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(is_digit), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x2808030E, // 0000 GE R2 R1 K14 + 0x780A0001, // 0001 JMPF R2 #0004 + 0x1808030F, // 0002 LE R2 R1 K15 + 0x740A0000, // 0003 JMPT R2 #0005 + 0x50080001, // 0004 LDBOOL R2 0 1 + 0x50080200, // 0005 LDBOOL R2 1 0 + 0x80040400, // 0006 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_hex_color_0x +********************************************************************/ +be_local_closure(class_Lexer_scan_hex_color_0x, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_hex_color_0x), &be_const_str_solidified, ( &(const binstruction[44]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080301, // 0001 GETMET R2 R1 K1 - 0x58100002, // 0002 LDCONST R4 K2 - 0x7C080400, // 0003 CALL R2 2 - 0x8C080303, // 0004 GETMET R2 R1 K3 - 0x7C080200, // 0005 CALL R2 1 - 0x8C080304, // 0006 GETMET R2 R1 K4 - 0x58100005, // 0007 LDCONST R4 K5 - 0x7C080400, // 0008 CALL R2 2 - 0x8C080304, // 0009 GETMET R2 R1 K4 - 0x58100006, // 000A LDCONST R4 K6 - 0x7C080400, // 000B CALL R2 2 - 0x8C080304, // 000C GETMET R2 R1 K4 - 0x88100107, // 000D GETMBR R4 R0 K7 - 0x7C080400, // 000E CALL R2 2 - 0x8C080304, // 000F GETMET R2 R1 K4 - 0x58100008, // 0010 LDCONST R4 K8 - 0x7C080400, // 0011 CALL R2 2 - 0x8C080304, // 0012 GETMET R2 R1 K4 - 0x58100009, // 0013 LDCONST R4 K9 - 0x7C080400, // 0014 CALL R2 2 - 0x8C080304, // 0015 GETMET R2 R1 K4 - 0x8C10030A, // 0016 GETMET R4 R1 K10 - 0x8818010B, // 0017 GETMBR R6 R0 K11 - 0x7C100400, // 0018 CALL R4 2 - 0x7C080400, // 0019 CALL R2 2 - 0x8C080304, // 001A GETMET R2 R1 K4 - 0x5810000C, // 001B LDCONST R4 K12 - 0x7C080400, // 001C CALL R2 2 - 0x8C08030D, // 001D GETMET R2 R1 K13 - 0x8810030E, // 001E GETMBR R4 R1 K14 - 0x7C080400, // 001F CALL R2 2 - 0x8C080304, // 0020 GETMET R2 R1 K4 - 0x5810000F, // 0021 LDCONST R4 K15 - 0x7C080400, // 0022 CALL R2 2 - 0x8C080304, // 0023 GETMET R2 R1 K4 - 0x58100010, // 0024 LDCONST R4 K16 - 0x7C080400, // 0025 CALL R2 2 - 0x8C080304, // 0026 GETMET R2 R1 K4 - 0x58100011, // 0027 LDCONST R4 K17 - 0x7C080400, // 0028 CALL R2 2 - 0x8C080312, // 0029 GETMET R2 R1 K18 - 0x7C080200, // 002A CALL R2 1 + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x04040303, // 0001 SUB R1 R1 K3 + 0x88080104, // 0002 GETMBR R2 R0 K4 + 0x04080503, // 0003 SUB R2 R2 K3 + 0x8C0C0110, // 0004 GETMET R3 R0 K16 + 0x7C0C0200, // 0005 CALL R3 1 + 0x580C0001, // 0006 LDCONST R3 K1 + 0x8C100111, // 0007 GETMET R4 R0 K17 + 0x7C100200, // 0008 CALL R4 1 + 0x74120008, // 0009 JMPT R4 #0013 + 0x8C100112, // 000A GETMET R4 R0 K18 + 0x8C180113, // 000B GETMET R6 R0 K19 + 0x7C180200, // 000C CALL R6 1 + 0x7C100400, // 000D CALL R4 2 + 0x78120003, // 000E JMPF R4 #0013 + 0x8C100110, // 000F GETMET R4 R0 K16 + 0x7C100200, // 0010 CALL R4 1 + 0x000C0703, // 0011 ADD R3 R3 K3 + 0x7001FFF3, // 0012 JMP #0007 + 0x88100100, // 0013 GETMBR R4 R0 K0 + 0x04100903, // 0014 SUB R4 R4 K3 + 0x40100204, // 0015 CONNECT R4 R1 R4 + 0x88140114, // 0016 GETMBR R5 R0 K20 + 0x94100A04, // 0017 GETIDX R4 R5 R4 + 0x54160005, // 0018 LDINT R5 6 + 0x1C140605, // 0019 EQ R5 R3 R5 + 0x74160002, // 001A JMPT R5 #001E + 0x54160007, // 001B LDINT R5 8 + 0x1C140605, // 001C EQ R5 R3 R5 + 0x78160008, // 001D JMPF R5 #0027 + 0x8C140115, // 001E GETMET R5 R0 K21 + 0x541E0003, // 001F LDINT R7 4 + 0x5C200800, // 0020 MOVE R8 R4 + 0x6024000C, // 0021 GETGBL R9 G12 + 0x5C280800, // 0022 MOVE R10 R4 + 0x7C240200, // 0023 CALL R9 1 + 0x7C140800, // 0024 CALL R5 4 + 0x80040A00, // 0025 RET 1 R5 + 0x70020003, // 0026 JMP #002B + 0x8C140116, // 0027 GETMET R5 R0 K22 + 0x001E2E04, // 0028 ADD R7 K23 R4 + 0x001C0F18, // 0029 ADD R7 R7 K24 + 0x7C140400, // 002A CALL R5 2 0x80000000, // 002B RET 0 }) ) @@ -3580,9 +3926,175 @@ be_local_closure(class_AnimationWebUI_page_main, /* name */ /******************************************************************** -** Solidified function: handle_request +** Solidified function: peek ********************************************************************/ -be_local_closure(class_AnimationWebUI_handle_request, /* name */ +be_local_closure(class_Lexer_peek, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(peek), + &be_const_str_solidified, + ( &(const binstruction[ 8]) { /* code */ + 0x8C040111, // 0000 GETMET R1 R0 K17 + 0x7C040200, // 0001 CALL R1 1 + 0x78060000, // 0002 JMPF R1 #0004 + 0x80063200, // 0003 RET 1 K25 + 0x88040114, // 0004 GETMBR R1 R0 K20 + 0x88080100, // 0005 GETMBR R2 R0 K0 + 0x94040202, // 0006 GETIDX R1 R1 R2 + 0x80040200, // 0007 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: advance +********************************************************************/ +be_local_closure(class_Lexer_advance, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(advance), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x8C040111, // 0000 GETMET R1 R0 K17 + 0x7C040200, // 0001 CALL R1 1 + 0x78060000, // 0002 JMPF R1 #0004 + 0x80063200, // 0003 RET 1 K25 + 0x88040114, // 0004 GETMBR R1 R0 K20 + 0x88080100, // 0005 GETMBR R2 R0 K0 + 0x94040202, // 0006 GETIDX R1 R1 R2 + 0x88080100, // 0007 GETMBR R2 R0 K0 + 0x00080503, // 0008 ADD R2 R2 K3 + 0x90020002, // 0009 SETMBR R0 K0 R2 + 0x88080104, // 000A GETMBR R2 R0 K4 + 0x00080503, // 000B ADD R2 R2 K3 + 0x90020802, // 000C SETMBR R0 K4 R2 + 0x80040200, // 000D RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_token +********************************************************************/ +be_local_closure(class_Lexer_create_token, /* name */ + be_nested_proto( + 12, /* nstack */ + 4, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(create_token), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0xA4123400, // 0000 IMPORT R4 K26 + 0x8C14091B, // 0001 GETMET R5 R4 K27 + 0x5C1C0200, // 0002 MOVE R7 R1 + 0x5C200400, // 0003 MOVE R8 R2 + 0x88240102, // 0004 GETMBR R9 R0 K2 + 0x88280104, // 0005 GETMBR R10 R0 K4 + 0x04281403, // 0006 SUB R10 R10 R3 + 0x5C2C0600, // 0007 MOVE R11 R3 + 0x7C140C00, // 0008 CALL R5 6 + 0x80040A00, // 0009 RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: at_end +********************************************************************/ +be_local_closure(class_Lexer_at_end, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(at_end), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x6008000C, // 0001 GETGBL R2 G12 + 0x880C0114, // 0002 GETMBR R3 R0 K20 + 0x7C080200, // 0003 CALL R2 1 + 0x28040202, // 0004 GE R1 R1 R2 + 0x80040200, // 0005 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: peek_char_ahead +********************************************************************/ +be_local_closure(class_Lexer_peek_char_ahead, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(peek_char_ahead), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x00080401, // 0001 ADD R2 R2 R1 + 0x600C000C, // 0002 GETGBL R3 G12 + 0x88100114, // 0003 GETMBR R4 R0 K20 + 0x7C0C0200, // 0004 CALL R3 1 + 0x28080403, // 0005 GE R2 R2 R3 + 0x780A0000, // 0006 JMPF R2 #0008 + 0x80063200, // 0007 RET 1 K25 + 0x88080100, // 0008 GETMBR R2 R0 K0 + 0x00080401, // 0009 ADD R2 R2 R1 + 0x880C0114, // 000A GETMBR R3 R0 K20 + 0x94080602, // 000B GETIDX R2 R3 R2 + 0x80040400, // 000C RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_number +********************************************************************/ +be_local_closure(class_Lexer_scan_number, /* name */ be_nested_proto( 12, /* nstack */ 1, /* argc */ @@ -3592,229 +4104,127 @@ be_local_closure(class_AnimationWebUI_handle_request, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_AnimationWebUI, /* shared constants */ - be_str_weak(handle_request), + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_number), &be_const_str_solidified, - ( &(const binstruction[109]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0xA40A2600, // 0001 IMPORT R2 K19 - 0x8C0C0314, // 0002 GETMET R3 R1 K20 - 0x58140015, // 0003 LDCONST R5 K21 - 0x7C0C0400, // 0004 CALL R3 2 - 0x780E0063, // 0005 JMPF R3 #006A - 0x8C0C0316, // 0006 GETMET R3 R1 K22 - 0x58140015, // 0007 LDCONST R5 K21 - 0x7C0C0400, // 0008 CALL R3 2 - 0x1C100717, // 0009 EQ R4 R3 K23 - 0x7812005D, // 000A JMPF R4 #0069 - 0x8C100318, // 000B GETMET R4 R1 K24 - 0x541A00C7, // 000C LDINT R6 200 - 0x581C0019, // 000D LDCONST R7 K25 - 0x7C100600, // 000E CALL R4 3 - 0x60100013, // 000F GETGBL R4 G19 - 0x7C100000, // 0010 CALL R4 0 - 0x8C140314, // 0011 GETMET R5 R1 K20 - 0x581C0017, // 0012 LDCONST R7 K23 - 0x7C140400, // 0013 CALL R5 2 - 0x78160048, // 0014 JMPF R5 #005E - 0x8C140316, // 0015 GETMET R5 R1 K22 - 0x581C0017, // 0016 LDCONST R7 K23 - 0x7C140400, // 0017 CALL R5 2 - 0x1C180B1A, // 0018 EQ R6 R5 K26 - 0x741A0001, // 0019 JMPT R6 #001C - 0x1C180B1B, // 001A EQ R6 R5 K27 - 0x781A0030, // 001B JMPF R6 #004D - 0x8C180314, // 001C GETMET R6 R1 K20 - 0x5820001C, // 001D LDCONST R8 K28 - 0x7C180400, // 001E CALL R6 2 - 0x781A0028, // 001F JMPF R6 #0049 - 0x8C180316, // 0020 GETMET R6 R1 K22 - 0x5820001C, // 0021 LDCONST R8 K28 - 0x7C180400, // 0022 CALL R6 2 - 0x90020E06, // 0023 SETMBR R0 K7 R6 - 0xA8020011, // 0024 EXBLK 0 #0037 - 0x8C18051A, // 0025 GETMET R6 R2 K26 - 0x88200107, // 0026 GETMBR R8 R0 K7 - 0x7C180400, // 0027 CALL R6 2 - 0x90021606, // 0028 SETMBR R0 K11 R6 - 0x50180200, // 0029 LDBOOL R6 1 0 - 0x98123A06, // 002A SETIDX R4 K29 R6 - 0x8818010B, // 002B GETMBR R6 R0 K11 - 0x98123C06, // 002C SETIDX R4 K30 R6 - 0x1C180B1A, // 002D EQ R6 R5 K26 - 0x781A0004, // 002E JMPF R6 #0034 - 0x8C18051F, // 002F GETMET R6 R2 K31 - 0x88200107, // 0030 GETMBR R8 R0 K7 - 0x7C180400, // 0031 CALL R6 2 - 0x98124121, // 0032 SETIDX R4 K32 K33 - 0x70020000, // 0033 JMP #0035 - 0x98124122, // 0034 SETIDX R4 K32 K34 - 0xA8040001, // 0035 EXBLK 1 1 - 0x70020010, // 0036 JMP #0048 - 0xAC180002, // 0037 CATCH R6 0 2 - 0x7002000D, // 0038 JMP #0047 - 0x50200000, // 0039 LDBOOL R8 0 0 - 0x98123A08, // 003A SETIDX R4 K29 R8 - 0x60200018, // 003B GETGBL R8 G24 - 0x58240024, // 003C LDCONST R9 K36 - 0x5C280C00, // 003D MOVE R10 R6 - 0x5C2C0E00, // 003E MOVE R11 R7 - 0x7C200600, // 003F CALL R8 3 - 0x98124608, // 0040 SETIDX R4 K35 R8 - 0x60200018, // 0041 GETGBL R8 G24 - 0x58240025, // 0042 LDCONST R9 K37 - 0x94280923, // 0043 GETIDX R10 R4 K35 - 0x7C200400, // 0044 CALL R8 2 - 0x90021608, // 0045 SETMBR R0 K11 R8 - 0x70020000, // 0046 JMP #0048 - 0xB0080000, // 0047 RAISE 2 R0 R0 - 0x70020002, // 0048 JMP #004C - 0x50180000, // 0049 LDBOOL R6 0 0 - 0x98123A06, // 004A SETIDX R4 K29 R6 - 0x98124726, // 004B SETIDX R4 K35 K38 - 0x7002000F, // 004C JMP #005D - 0x1C180B27, // 004D EQ R6 R5 K39 - 0x781A0006, // 004E JMPF R6 #0056 - 0xB81A5000, // 004F GETNGBL R6 K40 - 0x8C180D29, // 0050 GETMET R6 R6 K41 - 0x7C180200, // 0051 CALL R6 1 - 0x50180200, // 0052 LDBOOL R6 1 0 - 0x98123A06, // 0053 SETIDX R4 K29 R6 - 0x9812412A, // 0054 SETIDX R4 K32 K42 - 0x70020006, // 0055 JMP #005D - 0x50180000, // 0056 LDBOOL R6 0 0 - 0x98123A06, // 0057 SETIDX R4 K29 R6 - 0x60180018, // 0058 GETGBL R6 G24 - 0x581C002B, // 0059 LDCONST R7 K43 - 0x5C200A00, // 005A MOVE R8 R5 - 0x7C180400, // 005B CALL R6 2 - 0x98124606, // 005C SETIDX R4 K35 R6 - 0x70020002, // 005D JMP #0061 - 0x50140000, // 005E LDBOOL R5 0 0 - 0x98123A05, // 005F SETIDX R4 K29 R5 - 0x9812472C, // 0060 SETIDX R4 K35 K44 - 0xA4165A00, // 0061 IMPORT R5 K45 - 0x8C180304, // 0062 GETMET R6 R1 K4 - 0x8C200B2E, // 0063 GETMET R8 R5 K46 - 0x5C280800, // 0064 MOVE R10 R4 - 0x7C200400, // 0065 CALL R8 2 - 0x7C180400, // 0066 CALL R6 2 - 0x8C18032F, // 0067 GETMET R6 R1 K47 - 0x7C180200, // 0068 CALL R6 1 - 0x70020001, // 0069 JMP #006C - 0x8C0C0130, // 006A GETMET R3 R0 K48 - 0x7C0C0200, // 006B CALL R3 1 - 0x80000000, // 006C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: web_add_button -********************************************************************/ -be_local_closure(class_AnimationWebUI_web_add_button, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationWebUI, /* shared constants */ - be_str_weak(web_add_button), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080304, // 0001 GETMET R2 R1 K4 - 0x58100031, // 0002 LDCONST R4 K49 - 0x7C080400, // 0003 CALL R2 2 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: deinit -********************************************************************/ -be_local_closure(class_AnimationWebUI_deinit, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_AnimationWebUI, /* shared constants */ - be_str_weak(deinit), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0xB8066400, // 0000 GETNGBL R1 K50 - 0x58080033, // 0001 LDCONST R2 K51 - 0x580C0034, // 0002 LDCONST R3 K52 - 0x7C040400, // 0003 CALL R1 2 - 0x80000000, // 0004 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: web_add_handler -********************************************************************/ -be_local_closure(class_AnimationWebUI_web_add_handler, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 2, /* nstack */ - 0, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 0), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(handle_request), - }), - be_str_weak(_X3Clambda_X3E), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x68000000, // 0000 GETUPV R0 U0 - 0x8C000100, // 0001 GETMET R0 R0 K0 - 0x7C000200, // 0002 CALL R0 1 - 0x80040000, // 0003 RET 1 R0 - }) - ), - }), - 1, /* has constants */ - &be_ktab_class_AnimationWebUI, /* shared constants */ - be_str_weak(web_add_handler), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080335, // 0001 GETMET R2 R1 K53 - 0x58100036, // 0002 LDCONST R4 K54 - 0x84140000, // 0003 CLOSURE R5 P0 - 0x7C080600, // 0004 CALL R2 3 - 0xA0000000, // 0005 CLOSE R0 - 0x80000000, // 0006 RET 0 + ( &(const binstruction[117]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x04040303, // 0001 SUB R1 R1 K3 + 0x88080104, // 0002 GETMBR R2 R0 K4 + 0x04080503, // 0003 SUB R2 R2 K3 + 0x500C0000, // 0004 LDBOOL R3 0 0 + 0x8C100111, // 0005 GETMET R4 R0 K17 + 0x7C100200, // 0006 CALL R4 1 + 0x74120007, // 0007 JMPT R4 #0010 + 0x8C10011C, // 0008 GETMET R4 R0 K28 + 0x8C180113, // 0009 GETMET R6 R0 K19 + 0x7C180200, // 000A CALL R6 1 + 0x7C100400, // 000B CALL R4 2 + 0x78120002, // 000C JMPF R4 #0010 + 0x8C100110, // 000D GETMET R4 R0 K16 + 0x7C100200, // 000E CALL R4 1 + 0x7001FFF4, // 000F JMP #0005 + 0x8C100111, // 0010 GETMET R4 R0 K17 + 0x7C100200, // 0011 CALL R4 1 + 0x7412001F, // 0012 JMPT R4 #0033 + 0x8C100113, // 0013 GETMET R4 R0 K19 + 0x7C100200, // 0014 CALL R4 1 + 0x1C10091D, // 0015 EQ R4 R4 K29 + 0x7812001B, // 0016 JMPF R4 #0033 + 0x88100100, // 0017 GETMBR R4 R0 K0 + 0x00100903, // 0018 ADD R4 R4 K3 + 0x6014000C, // 0019 GETGBL R5 G12 + 0x88180114, // 001A GETMBR R6 R0 K20 + 0x7C140200, // 001B CALL R5 1 + 0x14100805, // 001C LT R4 R4 R5 + 0x78120014, // 001D JMPF R4 #0033 + 0x8C10011C, // 001E GETMET R4 R0 K28 + 0x88180100, // 001F GETMBR R6 R0 K0 + 0x00180D03, // 0020 ADD R6 R6 K3 + 0x881C0114, // 0021 GETMBR R7 R0 K20 + 0x94180E06, // 0022 GETIDX R6 R7 R6 + 0x7C100400, // 0023 CALL R4 2 + 0x7812000D, // 0024 JMPF R4 #0033 + 0x500C0200, // 0025 LDBOOL R3 1 0 + 0x8C100110, // 0026 GETMET R4 R0 K16 + 0x7C100200, // 0027 CALL R4 1 + 0x8C100111, // 0028 GETMET R4 R0 K17 + 0x7C100200, // 0029 CALL R4 1 + 0x74120007, // 002A JMPT R4 #0033 + 0x8C10011C, // 002B GETMET R4 R0 K28 + 0x8C180113, // 002C GETMET R6 R0 K19 + 0x7C180200, // 002D CALL R6 1 + 0x7C100400, // 002E CALL R4 2 + 0x78120002, // 002F JMPF R4 #0033 + 0x8C100110, // 0030 GETMET R4 R0 K16 + 0x7C100200, // 0031 CALL R4 1 + 0x7001FFF4, // 0032 JMP #0028 + 0x88100100, // 0033 GETMBR R4 R0 K0 + 0x04100903, // 0034 SUB R4 R4 K3 + 0x40100204, // 0035 CONNECT R4 R1 R4 + 0x88140114, // 0036 GETMBR R5 R0 K20 + 0x94100A04, // 0037 GETIDX R4 R5 R4 + 0x8C14011E, // 0038 GETMET R5 R0 K30 + 0x7C140200, // 0039 CALL R5 1 + 0x7816000A, // 003A JMPF R5 #0046 + 0x8C14011F, // 003B GETMET R5 R0 K31 + 0x7C140200, // 003C CALL R5 1 + 0x8C180115, // 003D GETMET R6 R0 K21 + 0x54220004, // 003E LDINT R8 5 + 0x00240805, // 003F ADD R9 R4 R5 + 0x6028000C, // 0040 GETGBL R10 G12 + 0x002C0805, // 0041 ADD R11 R4 R5 + 0x7C280200, // 0042 CALL R10 1 + 0x7C180800, // 0043 CALL R6 4 + 0x80040C00, // 0044 RET 1 R6 + 0x7002002D, // 0045 JMP #0074 + 0x8C140111, // 0046 GETMET R5 R0 K17 + 0x7C140200, // 0047 CALL R5 1 + 0x7416000F, // 0048 JMPT R5 #0059 + 0x8C140113, // 0049 GETMET R5 R0 K19 + 0x7C140200, // 004A CALL R5 1 + 0x1C140B20, // 004B EQ R5 R5 K32 + 0x7816000B, // 004C JMPF R5 #0059 + 0x8C140110, // 004D GETMET R5 R0 K16 + 0x7C140200, // 004E CALL R5 1 + 0x8C140115, // 004F GETMET R5 R0 K21 + 0x541E0005, // 0050 LDINT R7 6 + 0x00200920, // 0051 ADD R8 R4 K32 + 0x6024000C, // 0052 GETGBL R9 G12 + 0x5C280800, // 0053 MOVE R10 R4 + 0x7C240200, // 0054 CALL R9 1 + 0x00241303, // 0055 ADD R9 R9 K3 + 0x7C140800, // 0056 CALL R5 4 + 0x80040A00, // 0057 RET 1 R5 + 0x7002001A, // 0058 JMP #0074 + 0x8C140111, // 0059 GETMET R5 R0 K17 + 0x7C140200, // 005A CALL R5 1 + 0x7416000F, // 005B JMPT R5 #006C + 0x8C140113, // 005C GETMET R5 R0 K19 + 0x7C140200, // 005D CALL R5 1 + 0x1C140B21, // 005E EQ R5 R5 K33 + 0x7816000B, // 005F JMPF R5 #006C + 0x8C140110, // 0060 GETMET R5 R0 K16 + 0x7C140200, // 0061 CALL R5 1 + 0x8C140115, // 0062 GETMET R5 R0 K21 + 0x541E0006, // 0063 LDINT R7 7 + 0x00200921, // 0064 ADD R8 R4 K33 + 0x6024000C, // 0065 GETGBL R9 G12 + 0x5C280800, // 0066 MOVE R10 R4 + 0x7C240200, // 0067 CALL R9 1 + 0x00241303, // 0068 ADD R9 R9 K3 + 0x7C140800, // 0069 CALL R5 4 + 0x80040A00, // 006A RET 1 R5 + 0x70020007, // 006B JMP #0074 + 0x8C140115, // 006C GETMET R5 R0 K21 + 0x581C0022, // 006D LDCONST R7 K34 + 0x5C200800, // 006E MOVE R8 R4 + 0x6024000C, // 006F GETGBL R9 G12 + 0x5C280800, // 0070 MOVE R10 R4 + 0x7C240200, // 0071 CALL R9 1 + 0x7C140800, // 0072 CALL R5 4 + 0x80040A00, // 0073 RET 1 R5 + 0x80000000, // 0074 RET 0 }) ) ); @@ -3824,38 +4234,32 @@ be_local_closure(class_AnimationWebUI_web_add_handler, /* name */ /******************************************************************** ** Solidified function: init ********************************************************************/ -be_local_closure(class_AnimationWebUI_init, /* name */ +be_local_closure(class_Lexer_init, /* name */ be_nested_proto( - 4, /* nstack */ - 1, /* argc */ + 3, /* nstack */ + 2, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_AnimationWebUI, /* shared constants */ + &be_ktab_class_Lexer, /* shared constants */ be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x88040137, // 0000 GETMBR R1 R0 K55 - 0x90020E01, // 0001 SETMBR R0 K7 R1 - 0x90021738, // 0002 SETMBR R0 K11 K56 - 0xB8067200, // 0003 GETNGBL R1 K57 - 0x8C04033A, // 0004 GETMET R1 R1 K58 - 0x5C0C0000, // 0005 MOVE R3 R0 - 0x7C040400, // 0006 CALL R1 2 - 0xB8067200, // 0007 GETNGBL R1 K57 - 0x8C04033B, // 0008 GETMET R1 R1 K59 - 0x7C040200, // 0009 CALL R1 1 - 0x78060001, // 000A JMPF R1 #000D - 0x8C04013C, // 000B GETMET R1 R0 K60 - 0x7C040200, // 000C CALL R1 1 - 0xB8066400, // 000D GETNGBL R1 K50 - 0x5808003D, // 000E LDCONST R2 K61 - 0x580C0034, // 000F LDCONST R3 K52 - 0x7C040400, // 0010 CALL R1 2 - 0x80000000, // 0011 RET 0 + ( &(const binstruction[12]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A0001, // 0002 JMPF R2 #0005 + 0x5C080200, // 0003 MOVE R2 R1 + 0x70020000, // 0004 JMP #0006 + 0x58080019, // 0005 LDCONST R2 K25 + 0x90022802, // 0006 SETMBR R0 K20 R2 + 0x90020101, // 0007 SETMBR R0 K0 K1 + 0x90020503, // 0008 SETMBR R0 K2 K3 + 0x90020903, // 0009 SETMBR R0 K4 K3 + 0x90020B01, // 000A SETMBR R0 K5 K1 + 0x80000000, // 000B RET 0 }) ) ); @@ -3863,32 +4267,1424 @@ be_local_closure(class_AnimationWebUI_init, /* name */ /******************************************************************** -** Solidified class: AnimationWebUI +** Solidified function: peek_token ********************************************************************/ -be_local_class(AnimationWebUI, - 2, +be_local_closure(class_Lexer_peek_token, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(peek_token), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x88080102, // 0001 GETMBR R2 R0 K2 + 0x880C0104, // 0002 GETMBR R3 R0 K4 + 0x88100105, // 0003 GETMBR R4 R0 K5 + 0x8C140123, // 0004 GETMET R5 R0 K35 + 0x7C140200, // 0005 CALL R5 1 + 0x4C180000, // 0006 LDNIL R6 + 0x20180A06, // 0007 NE R6 R5 R6 + 0x781A0003, // 0008 JMPF R6 #000D + 0x90020001, // 0009 SETMBR R0 K0 R1 + 0x90020402, // 000A SETMBR R0 K2 R2 + 0x90020803, // 000B SETMBR R0 K4 R3 + 0x90020A04, // 000C SETMBR R0 K5 R4 + 0x80040A00, // 000D RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_sub_lexer +********************************************************************/ +be_local_closure(class_Lexer_create_sub_lexer, /* name */ + be_nested_proto( + 16, /* nstack */ + 3, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(create_sub_lexer), + &be_const_str_solidified, + ( &(const binstruction[89]) { /* code */ + 0xA40E3400, // 0000 IMPORT R3 K26 + 0x14100301, // 0001 LT R4 R1 K1 + 0x74120001, // 0002 JMPT R4 #0005 + 0x18100401, // 0003 LE R4 R2 R1 + 0x78120003, // 0004 JMPF R4 #0009 + 0x8C100724, // 0005 GETMET R4 R3 K36 + 0x58180019, // 0006 LDCONST R6 K25 + 0x7C100400, // 0007 CALL R4 2 + 0x80040800, // 0008 RET 1 R4 + 0x88100100, // 0009 GETMBR R4 R0 K0 + 0x88140102, // 000A GETMBR R5 R0 K2 + 0x88180104, // 000B GETMBR R6 R0 K4 + 0x881C0105, // 000C GETMBR R7 R0 K5 + 0x90020101, // 000D SETMBR R0 K0 K1 + 0x90020503, // 000E SETMBR R0 K2 K3 + 0x90020903, // 000F SETMBR R0 K4 K3 + 0x90020B01, // 0010 SETMBR R0 K5 K1 + 0x58200001, // 0011 LDCONST R8 K1 + 0x6024000C, // 0012 GETGBL R9 G12 + 0x88280114, // 0013 GETMBR R10 R0 K20 + 0x7C240200, // 0014 CALL R9 1 + 0x50280000, // 0015 LDBOOL R10 0 0 + 0x502C0000, // 0016 LDBOOL R11 0 0 + 0x88300105, // 0017 GETMBR R12 R0 K5 + 0x14301801, // 0018 LT R12 R12 R1 + 0x78320006, // 0019 JMPF R12 #0021 + 0x8C300111, // 001A GETMET R12 R0 K17 + 0x7C300200, // 001B CALL R12 1 + 0x74320003, // 001C JMPT R12 #0021 + 0x88200100, // 001D GETMBR R8 R0 K0 + 0x8C300123, // 001E GETMET R12 R0 K35 + 0x7C300200, // 001F CALL R12 1 + 0x7001FFF5, // 0020 JMP #0017 + 0x88300105, // 0021 GETMBR R12 R0 K5 + 0x1C301801, // 0022 EQ R12 R12 R1 + 0x78320001, // 0023 JMPF R12 #0026 + 0x88200100, // 0024 GETMBR R8 R0 K0 + 0x50280200, // 0025 LDBOOL R10 1 0 + 0x88300105, // 0026 GETMBR R12 R0 K5 + 0x14301802, // 0027 LT R12 R12 R2 + 0x78320005, // 0028 JMPF R12 #002F + 0x8C300111, // 0029 GETMET R12 R0 K17 + 0x7C300200, // 002A CALL R12 1 + 0x74320002, // 002B JMPT R12 #002F + 0x8C300123, // 002C GETMET R12 R0 K35 + 0x7C300200, // 002D CALL R12 1 + 0x7001FFF6, // 002E JMP #0026 + 0x88300105, // 002F GETMBR R12 R0 K5 + 0x1C301802, // 0030 EQ R12 R12 R2 + 0x78320001, // 0031 JMPF R12 #0034 + 0x88240100, // 0032 GETMBR R9 R0 K0 + 0x502C0200, // 0033 LDBOOL R11 1 0 + 0x90020004, // 0034 SETMBR R0 K0 R4 + 0x90020405, // 0035 SETMBR R0 K2 R5 + 0x90020806, // 0036 SETMBR R0 K4 R6 + 0x90020A07, // 0037 SETMBR R0 K5 R7 + 0x5C301400, // 0038 MOVE R12 R10 + 0x74320003, // 0039 JMPT R12 #003E + 0x8C300724, // 003A GETMET R12 R3 K36 + 0x58380019, // 003B LDCONST R14 K25 + 0x7C300400, // 003C CALL R12 2 + 0x80041800, // 003D RET 1 R12 + 0x6030000C, // 003E GETGBL R12 G12 + 0x88340114, // 003F GETMBR R13 R0 K20 + 0x7C300200, // 0040 CALL R12 1 + 0x2430120C, // 0041 GT R12 R9 R12 + 0x78320003, // 0042 JMPF R12 #0047 + 0x6030000C, // 0043 GETGBL R12 G12 + 0x88340114, // 0044 GETMBR R13 R0 K20 + 0x7C300200, // 0045 CALL R12 1 + 0x5C241800, // 0046 MOVE R9 R12 + 0x28301009, // 0047 GE R12 R8 R9 + 0x78320003, // 0048 JMPF R12 #004D + 0x8C300724, // 0049 GETMET R12 R3 K36 + 0x58380019, // 004A LDCONST R14 K25 + 0x7C300400, // 004B CALL R12 2 + 0x80041800, // 004C RET 1 R12 + 0x04301303, // 004D SUB R12 R9 K3 + 0x4030100C, // 004E CONNECT R12 R8 R12 + 0x88340114, // 004F GETMBR R13 R0 K20 + 0x94301A0C, // 0050 GETIDX R12 R13 R12 + 0x8C340724, // 0051 GETMET R13 R3 K36 + 0x5C3C1800, // 0052 MOVE R15 R12 + 0x7C340400, // 0053 CALL R13 2 + 0x90360101, // 0054 SETMBR R13 K0 K1 + 0x90360503, // 0055 SETMBR R13 K2 K3 + 0x90360903, // 0056 SETMBR R13 K4 K3 + 0x90360B01, // 0057 SETMBR R13 K5 K1 + 0x80041A00, // 0058 RET 1 R13 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: match +********************************************************************/ +be_local_closure(class_Lexer_match, /* name */ + be_nested_proto( + 4, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(match), + &be_const_str_solidified, + ( &(const binstruction[18]) { /* code */ + 0x8C080111, // 0000 GETMET R2 R0 K17 + 0x7C080200, // 0001 CALL R2 1 + 0x740A0004, // 0002 JMPT R2 #0008 + 0x88080114, // 0003 GETMBR R2 R0 K20 + 0x880C0100, // 0004 GETMBR R3 R0 K0 + 0x94080403, // 0005 GETIDX R2 R2 R3 + 0x20080401, // 0006 NE R2 R2 R1 + 0x780A0001, // 0007 JMPF R2 #000A + 0x50080000, // 0008 LDBOOL R2 0 0 + 0x80040400, // 0009 RET 1 R2 + 0x88080100, // 000A GETMBR R2 R0 K0 + 0x00080503, // 000B ADD R2 R2 K3 + 0x90020002, // 000C SETMBR R0 K0 R2 + 0x88080104, // 000D GETMBR R2 R0 K4 + 0x00080503, // 000E ADD R2 R2 K3 + 0x90020802, // 000F SETMBR R0 K4 R2 + 0x50080200, // 0010 LDBOOL R2 1 0 + 0x80040400, // 0011 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: next_token +********************************************************************/ +be_local_closure(class_Lexer_next_token, /* name */ + be_nested_proto( + 8, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(next_token), + &be_const_str_solidified, + ( &(const binstruction[137]) { /* code */ + 0x8C040111, // 0000 GETMET R1 R0 K17 + 0x7C040200, // 0001 CALL R1 1 + 0x74060083, // 0002 JMPT R1 #0087 + 0x88040104, // 0003 GETMBR R1 R0 K4 + 0x8C080110, // 0004 GETMET R2 R0 K16 + 0x7C080200, // 0005 CALL R2 1 + 0x1C0C0525, // 0006 EQ R3 R2 K37 + 0x740E0003, // 0007 JMPT R3 #000C + 0x1C0C0526, // 0008 EQ R3 R2 K38 + 0x740E0001, // 0009 JMPT R3 #000C + 0x1C0C0527, // 000A EQ R3 R2 K39 + 0x780E0001, // 000B JMPF R3 #000E + 0x7001FFF2, // 000C JMP #0000 + 0x70020077, // 000D JMP #0086 + 0x1C0C0528, // 000E EQ R3 R2 K40 + 0x780E000D, // 000F JMPF R3 #001E + 0x8C0C0115, // 0010 GETMET R3 R0 K21 + 0x54160022, // 0011 LDINT R5 35 + 0x58180028, // 0012 LDCONST R6 K40 + 0x581C0003, // 0013 LDCONST R7 K3 + 0x7C0C0800, // 0014 CALL R3 4 + 0x88100102, // 0015 GETMBR R4 R0 K2 + 0x00100903, // 0016 ADD R4 R4 K3 + 0x90020404, // 0017 SETMBR R0 K2 R4 + 0x90020903, // 0018 SETMBR R0 K4 K3 + 0x88100105, // 0019 GETMBR R4 R0 K5 + 0x00100903, // 001A ADD R4 R4 K3 + 0x90020A04, // 001B SETMBR R0 K5 R4 + 0x80040600, // 001C RET 1 R3 + 0x70020067, // 001D JMP #0086 + 0x1C0C0529, // 001E EQ R3 R2 K41 + 0x780E0006, // 001F JMPF R3 #0027 + 0x8C0C012A, // 0020 GETMET R3 R0 K42 + 0x7C0C0200, // 0021 CALL R3 1 + 0x88100105, // 0022 GETMBR R4 R0 K5 + 0x00100903, // 0023 ADD R4 R4 K3 + 0x90020A04, // 0024 SETMBR R0 K5 R4 + 0x80040600, // 0025 RET 1 R3 + 0x7002005E, // 0026 JMP #0086 + 0x1C0C050E, // 0027 EQ R3 R2 K14 + 0x780E000A, // 0028 JMPF R3 #0034 + 0x8C0C0113, // 0029 GETMET R3 R0 K19 + 0x7C0C0200, // 002A CALL R3 1 + 0x1C0C0721, // 002B EQ R3 R3 K33 + 0x780E0006, // 002C JMPF R3 #0034 + 0x8C0C012B, // 002D GETMET R3 R0 K43 + 0x7C0C0200, // 002E CALL R3 1 + 0x88100105, // 002F GETMBR R4 R0 K5 + 0x00100903, // 0030 ADD R4 R4 K3 + 0x90020A04, // 0031 SETMBR R0 K5 R4 + 0x80040600, // 0032 RET 1 R3 + 0x70020051, // 0033 JMP #0086 + 0x8C0C012C, // 0034 GETMET R3 R0 K44 + 0x5C140400, // 0035 MOVE R5 R2 + 0x7C0C0400, // 0036 CALL R3 2 + 0x740E0001, // 0037 JMPT R3 #003A + 0x1C0C052D, // 0038 EQ R3 R2 K45 + 0x780E0006, // 0039 JMPF R3 #0041 + 0x8C0C012E, // 003A GETMET R3 R0 K46 + 0x7C0C0200, // 003B CALL R3 1 + 0x88100105, // 003C GETMBR R4 R0 K5 + 0x00100903, // 003D ADD R4 R4 K3 + 0x90020A04, // 003E SETMBR R0 K5 R4 + 0x80040600, // 003F RET 1 R3 + 0x70020044, // 0040 JMP #0086 + 0x8C0C011C, // 0041 GETMET R3 R0 K28 + 0x5C140400, // 0042 MOVE R5 R2 + 0x7C0C0400, // 0043 CALL R3 2 + 0x780E0006, // 0044 JMPF R3 #004C + 0x8C0C012F, // 0045 GETMET R3 R0 K47 + 0x7C0C0200, // 0046 CALL R3 1 + 0x88100105, // 0047 GETMBR R4 R0 K5 + 0x00100903, // 0048 ADD R4 R4 K3 + 0x90020A04, // 0049 SETMBR R0 K5 R4 + 0x80040600, // 004A RET 1 R3 + 0x70020039, // 004B JMP #0086 + 0x1C0C0530, // 004C EQ R3 R2 K48 + 0x740E0001, // 004D JMPT R3 #0050 + 0x1C0C0531, // 004E EQ R3 R2 K49 + 0x780E0025, // 004F JMPF R3 #0076 + 0x1C0C0530, // 0050 EQ R3 R2 K48 + 0x780E0008, // 0051 JMPF R3 #005B + 0x8C0C0113, // 0052 GETMET R3 R0 K19 + 0x7C0C0200, // 0053 CALL R3 1 + 0x1C0C0730, // 0054 EQ R3 R3 K48 + 0x780E0004, // 0055 JMPF R3 #005B + 0x8C0C0132, // 0056 GETMET R3 R0 K50 + 0x58140003, // 0057 LDCONST R5 K3 + 0x7C0C0400, // 0058 CALL R3 2 + 0x1C0C0730, // 0059 EQ R3 R3 K48 + 0x740E000A, // 005A JMPT R3 #0066 + 0x1C0C0531, // 005B EQ R3 R2 K49 + 0x780E0010, // 005C JMPF R3 #006E + 0x8C0C0113, // 005D GETMET R3 R0 K19 + 0x7C0C0200, // 005E CALL R3 1 + 0x1C0C0731, // 005F EQ R3 R3 K49 + 0x780E000C, // 0060 JMPF R3 #006E + 0x8C0C0132, // 0061 GETMET R3 R0 K50 + 0x58140003, // 0062 LDCONST R5 K3 + 0x7C0C0400, // 0063 CALL R3 2 + 0x1C0C0731, // 0064 EQ R3 R3 K49 + 0x780E0007, // 0065 JMPF R3 #006E + 0x8C0C0133, // 0066 GETMET R3 R0 K51 + 0x5C140400, // 0067 MOVE R5 R2 + 0x7C0C0400, // 0068 CALL R3 2 + 0x88100105, // 0069 GETMBR R4 R0 K5 + 0x00100903, // 006A ADD R4 R4 K3 + 0x90020A04, // 006B SETMBR R0 K5 R4 + 0x80040600, // 006C RET 1 R3 + 0x70020006, // 006D JMP #0075 + 0x8C0C0134, // 006E GETMET R3 R0 K52 + 0x5C140400, // 006F MOVE R5 R2 + 0x7C0C0400, // 0070 CALL R3 2 + 0x88100105, // 0071 GETMBR R4 R0 K5 + 0x00100903, // 0072 ADD R4 R4 K3 + 0x90020A04, // 0073 SETMBR R0 K5 R4 + 0x80040600, // 0074 RET 1 R3 + 0x7002000F, // 0075 JMP #0086 + 0x1C0C0535, // 0076 EQ R3 R2 K53 + 0x780E0006, // 0077 JMPF R3 #007F + 0x8C0C0136, // 0078 GETMET R3 R0 K54 + 0x7C0C0200, // 0079 CALL R3 1 + 0x88100105, // 007A GETMBR R4 R0 K5 + 0x00100903, // 007B ADD R4 R4 K3 + 0x90020A04, // 007C SETMBR R0 K5 R4 + 0x80040600, // 007D RET 1 R3 + 0x70020006, // 007E JMP #0086 + 0x8C0C0137, // 007F GETMET R3 R0 K55 + 0x5C140400, // 0080 MOVE R5 R2 + 0x7C0C0400, // 0081 CALL R3 2 + 0x88100105, // 0082 GETMBR R4 R0 K5 + 0x00100903, // 0083 ADD R4 R4 K3 + 0x90020A04, // 0084 SETMBR R0 K5 R4 + 0x80040600, // 0085 RET 1 R3 + 0x7001FF78, // 0086 JMP #0000 + 0x4C040000, // 0087 LDNIL R1 + 0x80040200, // 0088 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_triple_quoted_string +********************************************************************/ +be_local_closure(class_Lexer_scan_triple_quoted_string, /* name */ + be_nested_proto( + 10, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_triple_quoted_string), + &be_const_str_solidified, + ( &(const binstruction[70]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x04080503, // 0001 SUB R2 R2 K3 + 0x880C0104, // 0002 GETMBR R3 R0 K4 + 0x040C0703, // 0003 SUB R3 R3 K3 + 0x58100019, // 0004 LDCONST R4 K25 + 0x8C140110, // 0005 GETMET R5 R0 K16 + 0x7C140200, // 0006 CALL R5 1 + 0x8C140110, // 0007 GETMET R5 R0 K16 + 0x7C140200, // 0008 CALL R5 1 + 0x8C140111, // 0009 GETMET R5 R0 K17 + 0x7C140200, // 000A CALL R5 1 + 0x7416001F, // 000B JMPT R5 #002C + 0x8C140113, // 000C GETMET R5 R0 K19 + 0x7C140200, // 000D CALL R5 1 + 0x1C180A01, // 000E EQ R6 R5 R1 + 0x781A0010, // 000F JMPF R6 #0021 + 0x8C180132, // 0010 GETMET R6 R0 K50 + 0x58200003, // 0011 LDCONST R8 K3 + 0x7C180400, // 0012 CALL R6 2 + 0x1C180C01, // 0013 EQ R6 R6 R1 + 0x781A000B, // 0014 JMPF R6 #0021 + 0x8C180132, // 0015 GETMET R6 R0 K50 + 0x58200022, // 0016 LDCONST R8 K34 + 0x7C180400, // 0017 CALL R6 2 + 0x1C180C01, // 0018 EQ R6 R6 R1 + 0x781A0006, // 0019 JMPF R6 #0021 + 0x8C180110, // 001A GETMET R6 R0 K16 + 0x7C180200, // 001B CALL R6 1 + 0x8C180110, // 001C GETMET R6 R0 K16 + 0x7C180200, // 001D CALL R6 1 + 0x8C180110, // 001E GETMET R6 R0 K16 + 0x7C180200, // 001F CALL R6 1 + 0x7002000A, // 0020 JMP #002C + 0x8C180110, // 0021 GETMET R6 R0 K16 + 0x7C180200, // 0022 CALL R6 1 + 0x5C140C00, // 0023 MOVE R5 R6 + 0x1C180B28, // 0024 EQ R6 R5 K40 + 0x781A0003, // 0025 JMPF R6 #002A + 0x88180102, // 0026 GETMBR R6 R0 K2 + 0x00180D03, // 0027 ADD R6 R6 K3 + 0x90020406, // 0028 SETMBR R0 K2 R6 + 0x90020903, // 0029 SETMBR R0 K4 K3 + 0x00100805, // 002A ADD R4 R4 R5 + 0x7001FFDC, // 002B JMP #0009 + 0x8C140111, // 002C GETMET R5 R0 K17 + 0x7C140200, // 002D CALL R5 1 + 0x7816000E, // 002E JMPF R5 #003E + 0x88140100, // 002F GETMBR R5 R0 K0 + 0x04140B38, // 0030 SUB R5 R5 K56 + 0x88180100, // 0031 GETMBR R6 R0 K0 + 0x04180D03, // 0032 SUB R6 R6 K3 + 0x40140A06, // 0033 CONNECT R5 R5 R6 + 0x88180114, // 0034 GETMBR R6 R0 K20 + 0x94140C05, // 0035 GETIDX R5 R6 R5 + 0x00180201, // 0036 ADD R6 R1 R1 + 0x00180C01, // 0037 ADD R6 R6 R1 + 0x1C140A06, // 0038 EQ R5 R5 R6 + 0x74160003, // 0039 JMPT R5 #003E + 0x8C140116, // 003A GETMET R5 R0 K22 + 0x581C0039, // 003B LDCONST R7 K57 + 0x7C140400, // 003C CALL R5 2 + 0x70020006, // 003D JMP #0045 + 0x8C140115, // 003E GETMET R5 R0 K21 + 0x581C0038, // 003F LDCONST R7 K56 + 0x5C200800, // 0040 MOVE R8 R4 + 0x88240100, // 0041 GETMBR R9 R0 K0 + 0x04241202, // 0042 SUB R9 R9 R2 + 0x7C140800, // 0043 CALL R5 4 + 0x80040A00, // 0044 RET 1 R5 + 0x80000000, // 0045 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_operator_or_delimiter +********************************************************************/ +be_local_closure(class_Lexer_scan_operator_or_delimiter, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_operator_or_delimiter), + &be_const_str_solidified, + ( &(const binstruction[292]) { /* code */ + 0x88080104, // 0000 GETMBR R2 R0 K4 + 0x04080503, // 0001 SUB R2 R2 K3 + 0x1C0C033A, // 0002 EQ R3 R1 K58 + 0x780E0011, // 0003 JMPF R3 #0016 + 0x8C0C013B, // 0004 GETMET R3 R0 K59 + 0x5814003A, // 0005 LDCONST R5 K58 + 0x7C0C0400, // 0006 CALL R3 2 + 0x780E0006, // 0007 JMPF R3 #000F + 0x8C0C0115, // 0008 GETMET R3 R0 K21 + 0x5416000E, // 0009 LDINT R5 15 + 0x5818003C, // 000A LDCONST R6 K60 + 0x581C0022, // 000B LDCONST R7 K34 + 0x7C0C0800, // 000C CALL R3 4 + 0x80040600, // 000D RET 1 R3 + 0x70020005, // 000E JMP #0015 + 0x8C0C0115, // 000F GETMET R3 R0 K21 + 0x54160007, // 0010 LDINT R5 8 + 0x5818003A, // 0011 LDCONST R6 K58 + 0x581C0003, // 0012 LDCONST R7 K3 + 0x7C0C0800, // 0013 CALL R3 4 + 0x80040600, // 0014 RET 1 R3 + 0x7002010C, // 0015 JMP #0123 + 0x1C0C033D, // 0016 EQ R3 R1 K61 + 0x780E0011, // 0017 JMPF R3 #002A + 0x8C0C013B, // 0018 GETMET R3 R0 K59 + 0x5814003A, // 0019 LDCONST R5 K58 + 0x7C0C0400, // 001A CALL R3 2 + 0x780E0006, // 001B JMPF R3 #0023 + 0x8C0C0115, // 001C GETMET R3 R0 K21 + 0x5416000F, // 001D LDINT R5 16 + 0x5818003E, // 001E LDCONST R6 K62 + 0x581C0022, // 001F LDCONST R7 K34 + 0x7C0C0800, // 0020 CALL R3 4 + 0x80040600, // 0021 RET 1 R3 + 0x70020005, // 0022 JMP #0029 + 0x8C0C0115, // 0023 GETMET R3 R0 K21 + 0x54160016, // 0024 LDINT R5 23 + 0x5818003D, // 0025 LDCONST R6 K61 + 0x581C0003, // 0026 LDCONST R7 K3 + 0x7C0C0800, // 0027 CALL R3 4 + 0x80040600, // 0028 RET 1 R3 + 0x700200F8, // 0029 JMP #0123 + 0x1C0C033F, // 002A EQ R3 R1 K63 + 0x780E0019, // 002B JMPF R3 #0046 + 0x8C0C013B, // 002C GETMET R3 R0 K59 + 0x5814003A, // 002D LDCONST R5 K58 + 0x7C0C0400, // 002E CALL R3 2 + 0x780E0006, // 002F JMPF R3 #0037 + 0x8C0C0115, // 0030 GETMET R3 R0 K21 + 0x54160011, // 0031 LDINT R5 18 + 0x58180040, // 0032 LDCONST R6 K64 + 0x581C0022, // 0033 LDCONST R7 K34 + 0x7C0C0800, // 0034 CALL R3 4 + 0x80040600, // 0035 RET 1 R3 + 0x7002000D, // 0036 JMP #0045 + 0x8C0C013B, // 0037 GETMET R3 R0 K59 + 0x5814003F, // 0038 LDCONST R5 K63 + 0x7C0C0400, // 0039 CALL R3 2 + 0x780E0003, // 003A JMPF R3 #003F + 0x8C0C0116, // 003B GETMET R3 R0 K22 + 0x58140041, // 003C LDCONST R5 K65 + 0x7C0C0400, // 003D CALL R3 2 + 0x70020005, // 003E JMP #0045 + 0x8C0C0115, // 003F GETMET R3 R0 K21 + 0x54160010, // 0040 LDINT R5 17 + 0x5818003F, // 0041 LDCONST R6 K63 + 0x581C0003, // 0042 LDCONST R7 K3 + 0x7C0C0800, // 0043 CALL R3 4 + 0x80040600, // 0044 RET 1 R3 + 0x700200DC, // 0045 JMP #0123 + 0x1C0C0342, // 0046 EQ R3 R1 K66 + 0x780E0019, // 0047 JMPF R3 #0062 + 0x8C0C013B, // 0048 GETMET R3 R0 K59 + 0x5814003A, // 0049 LDCONST R5 K58 + 0x7C0C0400, // 004A CALL R3 2 + 0x780E0006, // 004B JMPF R3 #0053 + 0x8C0C0115, // 004C GETMET R3 R0 K21 + 0x54160013, // 004D LDINT R5 20 + 0x58180043, // 004E LDCONST R6 K67 + 0x581C0022, // 004F LDCONST R7 K34 + 0x7C0C0800, // 0050 CALL R3 4 + 0x80040600, // 0051 RET 1 R3 + 0x7002000D, // 0052 JMP #0061 + 0x8C0C013B, // 0053 GETMET R3 R0 K59 + 0x58140042, // 0054 LDCONST R5 K66 + 0x7C0C0400, // 0055 CALL R3 2 + 0x780E0003, // 0056 JMPF R3 #005B + 0x8C0C0116, // 0057 GETMET R3 R0 K22 + 0x58140044, // 0058 LDCONST R5 K68 + 0x7C0C0400, // 0059 CALL R3 2 + 0x70020005, // 005A JMP #0061 + 0x8C0C0115, // 005B GETMET R3 R0 K21 + 0x54160012, // 005C LDINT R5 19 + 0x58180042, // 005D LDCONST R6 K66 + 0x581C0003, // 005E LDCONST R7 K3 + 0x7C0C0800, // 005F CALL R3 4 + 0x80040600, // 0060 RET 1 R3 + 0x700200C0, // 0061 JMP #0123 + 0x1C0C0345, // 0062 EQ R3 R1 K69 + 0x780E000E, // 0063 JMPF R3 #0073 + 0x8C0C013B, // 0064 GETMET R3 R0 K59 + 0x58140045, // 0065 LDCONST R5 K69 + 0x7C0C0400, // 0066 CALL R3 2 + 0x780E0006, // 0067 JMPF R3 #006F + 0x8C0C0115, // 0068 GETMET R3 R0 K21 + 0x54160014, // 0069 LDINT R5 21 + 0x58180046, // 006A LDCONST R6 K70 + 0x581C0022, // 006B LDCONST R7 K34 + 0x7C0C0800, // 006C CALL R3 4 + 0x80040600, // 006D RET 1 R3 + 0x70020002, // 006E JMP #0072 + 0x8C0C0116, // 006F GETMET R3 R0 K22 + 0x58140047, // 0070 LDCONST R5 K71 + 0x7C0C0400, // 0071 CALL R3 2 + 0x700200AF, // 0072 JMP #0123 + 0x1C0C0348, // 0073 EQ R3 R1 K72 + 0x780E000E, // 0074 JMPF R3 #0084 + 0x8C0C013B, // 0075 GETMET R3 R0 K59 + 0x58140048, // 0076 LDCONST R5 K72 + 0x7C0C0400, // 0077 CALL R3 2 + 0x780E0006, // 0078 JMPF R3 #0080 + 0x8C0C0115, // 0079 GETMET R3 R0 K21 + 0x54160015, // 007A LDINT R5 22 + 0x58180049, // 007B LDCONST R6 K73 + 0x581C0022, // 007C LDCONST R7 K34 + 0x7C0C0800, // 007D CALL R3 4 + 0x80040600, // 007E RET 1 R3 + 0x70020002, // 007F JMP #0083 + 0x8C0C0116, // 0080 GETMET R3 R0 K22 + 0x5814004A, // 0081 LDCONST R5 K74 + 0x7C0C0400, // 0082 CALL R3 2 + 0x7002009E, // 0083 JMP #0123 + 0x1C0C034B, // 0084 EQ R3 R1 K75 + 0x780E0011, // 0085 JMPF R3 #0098 + 0x8C0C013B, // 0086 GETMET R3 R0 K59 + 0x58140042, // 0087 LDCONST R5 K66 + 0x7C0C0400, // 0088 CALL R3 2 + 0x780E0006, // 0089 JMPF R3 #0091 + 0x8C0C0115, // 008A GETMET R3 R0 K21 + 0x54160021, // 008B LDINT R5 34 + 0x5818004C, // 008C LDCONST R6 K76 + 0x581C0022, // 008D LDCONST R7 K34 + 0x7C0C0800, // 008E CALL R3 4 + 0x80040600, // 008F RET 1 R3 + 0x70020005, // 0090 JMP #0097 + 0x8C0C0115, // 0091 GETMET R3 R0 K21 + 0x54160009, // 0092 LDINT R5 10 + 0x5818004B, // 0093 LDCONST R6 K75 + 0x581C0003, // 0094 LDCONST R7 K3 + 0x7C0C0800, // 0095 CALL R3 4 + 0x80040600, // 0096 RET 1 R3 + 0x7002008A, // 0097 JMP #0123 + 0x1C0C034D, // 0098 EQ R3 R1 K77 + 0x780E0006, // 0099 JMPF R3 #00A1 + 0x8C0C0115, // 009A GETMET R3 R0 K21 + 0x54160008, // 009B LDINT R5 9 + 0x5818004D, // 009C LDCONST R6 K77 + 0x581C0003, // 009D LDCONST R7 K3 + 0x7C0C0800, // 009E CALL R3 4 + 0x80040600, // 009F RET 1 R3 + 0x70020081, // 00A0 JMP #0123 + 0x1C0C034E, // 00A1 EQ R3 R1 K78 + 0x780E0006, // 00A2 JMPF R3 #00AA + 0x8C0C0115, // 00A3 GETMET R3 R0 K21 + 0x5416000A, // 00A4 LDINT R5 11 + 0x5818004E, // 00A5 LDCONST R6 K78 + 0x581C0003, // 00A6 LDCONST R7 K3 + 0x7C0C0800, // 00A7 CALL R3 4 + 0x80040600, // 00A8 RET 1 R3 + 0x70020078, // 00A9 JMP #0123 + 0x1C0C034F, // 00AA EQ R3 R1 K79 + 0x780E0006, // 00AB JMPF R3 #00B3 + 0x8C0C0115, // 00AC GETMET R3 R0 K21 + 0x5416000B, // 00AD LDINT R5 12 + 0x5818004F, // 00AE LDCONST R6 K79 + 0x581C0003, // 00AF LDCONST R7 K3 + 0x7C0C0800, // 00B0 CALL R3 4 + 0x80040600, // 00B1 RET 1 R3 + 0x7002006F, // 00B2 JMP #0123 + 0x1C0C0320, // 00B3 EQ R3 R1 K32 + 0x780E0006, // 00B4 JMPF R3 #00BC + 0x8C0C0115, // 00B5 GETMET R3 R0 K21 + 0x5416000C, // 00B6 LDINT R5 13 + 0x58180020, // 00B7 LDCONST R6 K32 + 0x581C0003, // 00B8 LDCONST R7 K3 + 0x7C0C0800, // 00B9 CALL R3 4 + 0x80040600, // 00BA RET 1 R3 + 0x70020066, // 00BB JMP #0123 + 0x1C0C0350, // 00BC EQ R3 R1 K80 + 0x780E0006, // 00BD JMPF R3 #00C5 + 0x8C0C0115, // 00BE GETMET R3 R0 K21 + 0x5416000D, // 00BF LDINT R5 14 + 0x58180050, // 00C0 LDCONST R6 K80 + 0x581C0003, // 00C1 LDCONST R7 K3 + 0x7C0C0800, // 00C2 CALL R3 4 + 0x80040600, // 00C3 RET 1 R3 + 0x7002005D, // 00C4 JMP #0123 + 0x1C0C0351, // 00C5 EQ R3 R1 K81 + 0x780E0006, // 00C6 JMPF R3 #00CE + 0x8C0C0115, // 00C7 GETMET R3 R0 K21 + 0x54160017, // 00C8 LDINT R5 24 + 0x58180051, // 00C9 LDCONST R6 K81 + 0x581C0003, // 00CA LDCONST R7 K3 + 0x7C0C0800, // 00CB CALL R3 4 + 0x80040600, // 00CC RET 1 R3 + 0x70020054, // 00CD JMP #0123 + 0x1C0C0352, // 00CE EQ R3 R1 K82 + 0x780E0006, // 00CF JMPF R3 #00D7 + 0x8C0C0115, // 00D0 GETMET R3 R0 K21 + 0x54160018, // 00D1 LDINT R5 25 + 0x58180052, // 00D2 LDCONST R6 K82 + 0x581C0003, // 00D3 LDCONST R7 K3 + 0x7C0C0800, // 00D4 CALL R3 4 + 0x80040600, // 00D5 RET 1 R3 + 0x7002004B, // 00D6 JMP #0123 + 0x1C0C0353, // 00D7 EQ R3 R1 K83 + 0x780E0006, // 00D8 JMPF R3 #00E0 + 0x8C0C0115, // 00D9 GETMET R3 R0 K21 + 0x54160019, // 00DA LDINT R5 26 + 0x58180053, // 00DB LDCONST R6 K83 + 0x581C0003, // 00DC LDCONST R7 K3 + 0x7C0C0800, // 00DD CALL R3 4 + 0x80040600, // 00DE RET 1 R3 + 0x70020042, // 00DF JMP #0123 + 0x1C0C0354, // 00E0 EQ R3 R1 K84 + 0x780E0006, // 00E1 JMPF R3 #00E9 + 0x8C0C0115, // 00E2 GETMET R3 R0 K21 + 0x5416001A, // 00E3 LDINT R5 27 + 0x58180054, // 00E4 LDCONST R6 K84 + 0x581C0003, // 00E5 LDCONST R7 K3 + 0x7C0C0800, // 00E6 CALL R3 4 + 0x80040600, // 00E7 RET 1 R3 + 0x70020039, // 00E8 JMP #0123 + 0x1C0C0355, // 00E9 EQ R3 R1 K85 + 0x780E0006, // 00EA JMPF R3 #00F2 + 0x8C0C0115, // 00EB GETMET R3 R0 K21 + 0x5416001B, // 00EC LDINT R5 28 + 0x58180055, // 00ED LDCONST R6 K85 + 0x581C0003, // 00EE LDCONST R7 K3 + 0x7C0C0800, // 00EF CALL R3 4 + 0x80040600, // 00F0 RET 1 R3 + 0x70020030, // 00F1 JMP #0123 + 0x1C0C0356, // 00F2 EQ R3 R1 K86 + 0x780E0006, // 00F3 JMPF R3 #00FB + 0x8C0C0115, // 00F4 GETMET R3 R0 K21 + 0x5416001C, // 00F5 LDINT R5 29 + 0x58180056, // 00F6 LDCONST R6 K86 + 0x581C0003, // 00F7 LDCONST R7 K3 + 0x7C0C0800, // 00F8 CALL R3 4 + 0x80040600, // 00F9 RET 1 R3 + 0x70020027, // 00FA JMP #0123 + 0x1C0C0357, // 00FB EQ R3 R1 K87 + 0x780E0006, // 00FC JMPF R3 #0104 + 0x8C0C0115, // 00FD GETMET R3 R0 K21 + 0x5416001D, // 00FE LDINT R5 30 + 0x58180057, // 00FF LDCONST R6 K87 + 0x581C0003, // 0100 LDCONST R7 K3 + 0x7C0C0800, // 0101 CALL R3 4 + 0x80040600, // 0102 RET 1 R3 + 0x7002001E, // 0103 JMP #0123 + 0x1C0C0358, // 0104 EQ R3 R1 K88 + 0x780E0006, // 0105 JMPF R3 #010D + 0x8C0C0115, // 0106 GETMET R3 R0 K21 + 0x5416001E, // 0107 LDINT R5 31 + 0x58180058, // 0108 LDCONST R6 K88 + 0x581C0003, // 0109 LDCONST R7 K3 + 0x7C0C0800, // 010A CALL R3 4 + 0x80040600, // 010B RET 1 R3 + 0x70020015, // 010C JMP #0123 + 0x1C0C030B, // 010D EQ R3 R1 K11 + 0x780E0006, // 010E JMPF R3 #0116 + 0x8C0C0115, // 010F GETMET R3 R0 K21 + 0x5416001F, // 0110 LDINT R5 32 + 0x5818000B, // 0111 LDCONST R6 K11 + 0x581C0003, // 0112 LDCONST R7 K3 + 0x7C0C0800, // 0113 CALL R3 4 + 0x80040600, // 0114 RET 1 R3 + 0x7002000C, // 0115 JMP #0123 + 0x1C0C031D, // 0116 EQ R3 R1 K29 + 0x780E0006, // 0117 JMPF R3 #011F + 0x8C0C0115, // 0118 GETMET R3 R0 K21 + 0x54160020, // 0119 LDINT R5 33 + 0x5818001D, // 011A LDCONST R6 K29 + 0x581C0003, // 011B LDCONST R7 K3 + 0x7C0C0800, // 011C CALL R3 4 + 0x80040600, // 011D RET 1 R3 + 0x70020003, // 011E JMP #0123 + 0x8C0C0116, // 011F GETMET R3 R0 K22 + 0x0016B201, // 0120 ADD R5 K89 R1 + 0x00140B31, // 0121 ADD R5 R5 K49 + 0x7C0C0400, // 0122 CALL R3 2 + 0x80000000, // 0123 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_time_suffix +********************************************************************/ +be_local_closure(class_Lexer_scan_time_suffix, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_time_suffix), + &be_const_str_solidified, + ( &(const binstruction[39]) { /* code */ + 0xA406B400, // 0000 IMPORT R1 K90 + 0x8C08035B, // 0001 GETMET R2 R1 K91 + 0x88100100, // 0002 GETMBR R4 R0 K0 + 0x4010095C, // 0003 CONNECT R4 R4 K92 + 0x88140114, // 0004 GETMBR R5 R0 K20 + 0x94100A04, // 0005 GETIDX R4 R5 R4 + 0x5814005D, // 0006 LDCONST R5 K93 + 0x7C080600, // 0007 CALL R2 3 + 0x780A0005, // 0008 JMPF R2 #000F + 0x8C080110, // 0009 GETMET R2 R0 K16 + 0x7C080200, // 000A CALL R2 1 + 0x8C080110, // 000B GETMET R2 R0 K16 + 0x7C080200, // 000C CALL R2 1 + 0x8006BA00, // 000D RET 1 K93 + 0x70020016, // 000E JMP #0026 + 0x8C080113, // 000F GETMET R2 R0 K19 + 0x7C080200, // 0010 CALL R2 1 + 0x1C08055E, // 0011 EQ R2 R2 K94 + 0x780A0003, // 0012 JMPF R2 #0017 + 0x8C080110, // 0013 GETMET R2 R0 K16 + 0x7C080200, // 0014 CALL R2 1 + 0x8006BC00, // 0015 RET 1 K94 + 0x7002000E, // 0016 JMP #0026 + 0x8C080113, // 0017 GETMET R2 R0 K19 + 0x7C080200, // 0018 CALL R2 1 + 0x1C08055F, // 0019 EQ R2 R2 K95 + 0x780A0003, // 001A JMPF R2 #001F + 0x8C080110, // 001B GETMET R2 R0 K16 + 0x7C080200, // 001C CALL R2 1 + 0x8006BE00, // 001D RET 1 K95 + 0x70020006, // 001E JMP #0026 + 0x8C080113, // 001F GETMET R2 R0 K19 + 0x7C080200, // 0020 CALL R2 1 + 0x1C080560, // 0021 EQ R2 R2 K96 + 0x780A0002, // 0022 JMPF R2 #0026 + 0x8C080110, // 0023 GETMET R2 R0 K16 + 0x7C080200, // 0024 CALL R2 1 + 0x8006C000, // 0025 RET 1 K96 + 0x80063200, // 0026 RET 1 K25 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_variable_reference +********************************************************************/ +be_local_closure(class_Lexer_scan_variable_reference, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_variable_reference), + &be_const_str_solidified, + ( &(const binstruction[50]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x04040303, // 0001 SUB R1 R1 K3 + 0x88080104, // 0002 GETMBR R2 R0 K4 + 0x04080503, // 0003 SUB R2 R2 K3 + 0x8C0C0111, // 0004 GETMET R3 R0 K17 + 0x7C0C0200, // 0005 CALL R3 1 + 0x740E000B, // 0006 JMPT R3 #0013 + 0x8C0C012C, // 0007 GETMET R3 R0 K44 + 0x8C140113, // 0008 GETMET R5 R0 K19 + 0x7C140200, // 0009 CALL R5 1 + 0x7C0C0400, // 000A CALL R3 2 + 0x740E0004, // 000B JMPT R3 #0011 + 0x8C0C0113, // 000C GETMET R3 R0 K19 + 0x7C0C0200, // 000D CALL R3 1 + 0x1C0C072D, // 000E EQ R3 R3 K45 + 0x740E0000, // 000F JMPT R3 #0011 + 0x500C0001, // 0010 LDBOOL R3 0 1 + 0x500C0200, // 0011 LDBOOL R3 1 0 + 0x740E0002, // 0012 JMPT R3 #0016 + 0x8C0C0116, // 0013 GETMET R3 R0 K22 + 0x58140061, // 0014 LDCONST R5 K97 + 0x7C0C0400, // 0015 CALL R3 2 + 0x8C0C0111, // 0016 GETMET R3 R0 K17 + 0x7C0C0200, // 0017 CALL R3 1 + 0x740E000B, // 0018 JMPT R3 #0025 + 0x8C0C0162, // 0019 GETMET R3 R0 K98 + 0x8C140113, // 001A GETMET R5 R0 K19 + 0x7C140200, // 001B CALL R5 1 + 0x7C0C0400, // 001C CALL R3 2 + 0x740E0003, // 001D JMPT R3 #0022 + 0x8C0C0113, // 001E GETMET R3 R0 K19 + 0x7C0C0200, // 001F CALL R3 1 + 0x1C0C072D, // 0020 EQ R3 R3 K45 + 0x780E0002, // 0021 JMPF R3 #0025 + 0x8C0C0110, // 0022 GETMET R3 R0 K16 + 0x7C0C0200, // 0023 CALL R3 1 + 0x7001FFF0, // 0024 JMP #0016 + 0x880C0100, // 0025 GETMBR R3 R0 K0 + 0x040C0703, // 0026 SUB R3 R3 K3 + 0x400C0203, // 0027 CONNECT R3 R1 R3 + 0x88100114, // 0028 GETMBR R4 R0 K20 + 0x940C0803, // 0029 GETIDX R3 R4 R3 + 0x8C100115, // 002A GETMET R4 R0 K21 + 0x541A0023, // 002B LDINT R6 36 + 0x5C1C0600, // 002C MOVE R7 R3 + 0x6020000C, // 002D GETGBL R8 G12 + 0x5C240600, // 002E MOVE R9 R3 + 0x7C200200, // 002F CALL R8 1 + 0x7C100800, // 0030 CALL R4 4 + 0x80040800, // 0031 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_comment +********************************************************************/ +be_local_closure(class_Lexer_scan_comment, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_comment), + &be_const_str_solidified, + ( &(const binstruction[50]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x04040303, // 0001 SUB R1 R1 K3 + 0x88080104, // 0002 GETMBR R2 R0 K4 + 0x04080503, // 0003 SUB R2 R2 K3 + 0x8C0C0111, // 0004 GETMET R3 R0 K17 + 0x7C0C0200, // 0005 CALL R3 1 + 0x740E0006, // 0006 JMPT R3 #000E + 0x8C0C0113, // 0007 GETMET R3 R0 K19 + 0x7C0C0200, // 0008 CALL R3 1 + 0x200C0728, // 0009 NE R3 R3 K40 + 0x780E0002, // 000A JMPF R3 #000E + 0x8C0C0110, // 000B GETMET R3 R0 K16 + 0x7C0C0200, // 000C CALL R3 1 + 0x7001FFF5, // 000D JMP #0004 + 0x880C0100, // 000E GETMBR R3 R0 K0 + 0x040C0703, // 000F SUB R3 R3 K3 + 0x400C0203, // 0010 CONNECT R3 R1 R3 + 0x88100114, // 0011 GETMBR R4 R0 K20 + 0x940C0803, // 0012 GETIDX R3 R4 R3 + 0x5C100600, // 0013 MOVE R4 R3 + 0x6014000C, // 0014 GETGBL R5 G12 + 0x5C180600, // 0015 MOVE R6 R3 + 0x7C140200, // 0016 CALL R5 1 + 0x04140B03, // 0017 SUB R5 R5 K3 + 0x28180B01, // 0018 GE R6 R5 K1 + 0x781A000A, // 0019 JMPF R6 #0025 + 0x94180605, // 001A GETIDX R6 R3 R5 + 0x1C180D25, // 001B EQ R6 R6 K37 + 0x741A0005, // 001C JMPT R6 #0023 + 0x94180605, // 001D GETIDX R6 R3 R5 + 0x1C180D26, // 001E EQ R6 R6 K38 + 0x741A0002, // 001F JMPT R6 #0023 + 0x94180605, // 0020 GETIDX R6 R3 R5 + 0x1C180D27, // 0021 EQ R6 R6 K39 + 0x781A0001, // 0022 JMPF R6 #0025 + 0x04140B03, // 0023 SUB R5 R5 K3 + 0x7001FFF2, // 0024 JMP #0018 + 0x28180B01, // 0025 GE R6 R5 K1 + 0x781A0002, // 0026 JMPF R6 #002A + 0x401A0205, // 0027 CONNECT R6 K1 R5 + 0x94100606, // 0028 GETIDX R4 R3 R6 + 0x70020000, // 0029 JMP #002B + 0x58100029, // 002A LDCONST R4 K41 + 0x8C180115, // 002B GETMET R6 R0 K21 + 0x54220024, // 002C LDINT R8 37 + 0x5C240800, // 002D MOVE R9 R4 + 0x88280100, // 002E GETMBR R10 R0 K0 + 0x04281401, // 002F SUB R10 R10 R1 + 0x7C180800, // 0030 CALL R6 4 + 0x80040C00, // 0031 RET 1 R6 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: set_position +********************************************************************/ +be_local_closure(class_Lexer_set_position, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(set_position), + &be_const_str_solidified, + ( &(const binstruction[28]) { /* code */ + 0x14080301, // 0000 LT R2 R1 K1 + 0x780A0000, // 0001 JMPF R2 #0003 + 0x80000400, // 0002 RET 0 + 0x88080100, // 0003 GETMBR R2 R0 K0 + 0x880C0102, // 0004 GETMBR R3 R0 K2 + 0x88100104, // 0005 GETMBR R4 R0 K4 + 0x88140105, // 0006 GETMBR R5 R0 K5 + 0x90020101, // 0007 SETMBR R0 K0 K1 + 0x90020503, // 0008 SETMBR R0 K2 K3 + 0x90020903, // 0009 SETMBR R0 K4 K3 + 0x90020B01, // 000A SETMBR R0 K5 K1 + 0x88180105, // 000B GETMBR R6 R0 K5 + 0x14180C01, // 000C LT R6 R6 R1 + 0x781A0005, // 000D JMPF R6 #0014 + 0x8C180111, // 000E GETMET R6 R0 K17 + 0x7C180200, // 000F CALL R6 1 + 0x741A0002, // 0010 JMPT R6 #0014 + 0x8C180123, // 0011 GETMET R6 R0 K35 + 0x7C180200, // 0012 CALL R6 1 + 0x7001FFF6, // 0013 JMP #000B + 0x88180105, // 0014 GETMBR R6 R0 K5 + 0x20180C01, // 0015 NE R6 R6 R1 + 0x781A0003, // 0016 JMPF R6 #001B + 0x90020002, // 0017 SETMBR R0 K0 R2 + 0x90020403, // 0018 SETMBR R0 K2 R3 + 0x90020804, // 0019 SETMBR R0 K4 R4 + 0x90020A05, // 001A SETMBR R0 K5 R5 + 0x80000000, // 001B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_hex_digit +********************************************************************/ +be_local_closure(class_Lexer_is_hex_digit, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(is_hex_digit), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x8C08011C, // 0000 GETMET R2 R0 K28 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x740A0008, // 0003 JMPT R2 #000D + 0x28080306, // 0004 GE R2 R1 K6 + 0x780A0001, // 0005 JMPF R2 #0008 + 0x18080363, // 0006 LE R2 R1 K99 + 0x740A0004, // 0007 JMPT R2 #000D + 0x28080308, // 0008 GE R2 R1 K8 + 0x780A0001, // 0009 JMPF R2 #000C + 0x18080364, // 000A LE R2 R1 K100 + 0x740A0000, // 000B JMPT R2 #000D + 0x50080001, // 000C LDBOOL R2 0 1 + 0x50080200, // 000D LDBOOL R2 1 0 + 0x80040400, // 000E RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: is_alnum +********************************************************************/ +be_local_closure(class_Lexer_is_alnum, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(is_alnum), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x8C08012C, // 0000 GETMET R2 R0 K44 + 0x5C100200, // 0001 MOVE R4 R1 + 0x7C080400, // 0002 CALL R2 2 + 0x740A0004, // 0003 JMPT R2 #0009 + 0x8C08011C, // 0004 GETMET R2 R0 K28 + 0x5C100200, // 0005 MOVE R4 R1 + 0x7C080400, // 0006 CALL R2 2 + 0x740A0000, // 0007 JMPT R2 #0009 + 0x50080001, // 0008 LDBOOL R2 0 1 + 0x50080200, // 0009 LDBOOL R2 1 0 + 0x80040400, // 000A RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: peek_ahead +********************************************************************/ +be_local_closure(class_Lexer_peek_ahead, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(peek_ahead), + &be_const_str_solidified, + ( &(const binstruction[33]) { /* code */ + 0x18080301, // 0000 LE R2 R1 K1 + 0x780A0001, // 0001 JMPF R2 #0004 + 0x4C080000, // 0002 LDNIL R2 + 0x80040400, // 0003 RET 1 R2 + 0x88080100, // 0004 GETMBR R2 R0 K0 + 0x880C0102, // 0005 GETMBR R3 R0 K2 + 0x88100104, // 0006 GETMBR R4 R0 K4 + 0x88140105, // 0007 GETMBR R5 R0 K5 + 0x4C180000, // 0008 LDNIL R6 + 0x601C0010, // 0009 GETGBL R7 G16 + 0x40220601, // 000A CONNECT R8 K3 R1 + 0x7C1C0200, // 000B CALL R7 1 + 0xA802000B, // 000C EXBLK 0 #0019 + 0x5C200E00, // 000D MOVE R8 R7 + 0x7C200000, // 000E CALL R8 0 + 0x8C240123, // 000F GETMET R9 R0 K35 + 0x7C240200, // 0010 CALL R9 1 + 0x5C181200, // 0011 MOVE R6 R9 + 0x4C240000, // 0012 LDNIL R9 + 0x1C240C09, // 0013 EQ R9 R6 R9 + 0x78260000, // 0014 JMPF R9 #0016 + 0x70020000, // 0015 JMP #0017 + 0x7001FFF5, // 0016 JMP #000D + 0xA8040001, // 0017 EXBLK 1 1 + 0x70020002, // 0018 JMP #001C + 0x581C0065, // 0019 LDCONST R7 K101 + 0xAC1C0200, // 001A CATCH R7 1 0 + 0xB0080000, // 001B RAISE 2 R0 R0 + 0x90020002, // 001C SETMBR R0 K0 R2 + 0x90020403, // 001D SETMBR R0 K2 R3 + 0x90020804, // 001E SETMBR R0 K4 R4 + 0x90020A05, // 001F SETMBR R0 K5 R5 + 0x80040C00, // 0020 RET 1 R6 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_time_suffix +********************************************************************/ +be_local_closure(class_Lexer_check_time_suffix, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(check_time_suffix), + &be_const_str_solidified, + ( &(const binstruction[33]) { /* code */ + 0xA406B400, // 0000 IMPORT R1 K90 + 0x8C080111, // 0001 GETMET R2 R0 K17 + 0x7C080200, // 0002 CALL R2 1 + 0x780A0001, // 0003 JMPF R2 #0006 + 0x50080000, // 0004 LDBOOL R2 0 0 + 0x80040400, // 0005 RET 1 R2 + 0x88080100, // 0006 GETMBR R2 R0 K0 + 0x4008055C, // 0007 CONNECT R2 R2 K92 + 0x880C0114, // 0008 GETMBR R3 R0 K20 + 0x94080602, // 0009 GETIDX R2 R3 R2 + 0x8C0C035B, // 000A GETMET R3 R1 K91 + 0x5C140400, // 000B MOVE R5 R2 + 0x5818005D, // 000C LDCONST R6 K93 + 0x7C0C0600, // 000D CALL R3 3 + 0x740E000F, // 000E JMPT R3 #001F + 0x8C0C035B, // 000F GETMET R3 R1 K91 + 0x5C140400, // 0010 MOVE R5 R2 + 0x5818005E, // 0011 LDCONST R6 K94 + 0x7C0C0600, // 0012 CALL R3 3 + 0x740E000A, // 0013 JMPT R3 #001F + 0x8C0C035B, // 0014 GETMET R3 R1 K91 + 0x5C140400, // 0015 MOVE R5 R2 + 0x5818005F, // 0016 LDCONST R6 K95 + 0x7C0C0600, // 0017 CALL R3 3 + 0x740E0005, // 0018 JMPT R3 #001F + 0x8C0C035B, // 0019 GETMET R3 R1 K91 + 0x5C140400, // 001A MOVE R5 R2 + 0x58180060, // 001B LDCONST R6 K96 + 0x7C0C0600, // 001C CALL R3 3 + 0x740E0000, // 001D JMPT R3 #001F + 0x500C0001, // 001E LDBOOL R3 0 1 + 0x500C0200, // 001F LDBOOL R3 1 0 + 0x80040600, // 0020 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_string +********************************************************************/ +be_local_closure(class_Lexer_scan_string, /* name */ + be_nested_proto( + 10, /* nstack */ + 2, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_string), + &be_const_str_solidified, + ( &(const binstruction[73]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x04080503, // 0001 SUB R2 R2 K3 + 0x880C0104, // 0002 GETMBR R3 R0 K4 + 0x040C0703, // 0003 SUB R3 R3 K3 + 0x58100019, // 0004 LDCONST R4 K25 + 0x8C140111, // 0005 GETMET R5 R0 K17 + 0x7C140200, // 0006 CALL R5 1 + 0x7416002F, // 0007 JMPT R5 #0038 + 0x8C140113, // 0008 GETMET R5 R0 K19 + 0x7C140200, // 0009 CALL R5 1 + 0x20140A01, // 000A NE R5 R5 R1 + 0x7816002B, // 000B JMPF R5 #0038 + 0x8C140110, // 000C GETMET R5 R0 K16 + 0x7C140200, // 000D CALL R5 1 + 0x1C180B66, // 000E EQ R6 R5 K102 + 0x781A001D, // 000F JMPF R6 #002E + 0x8C180111, // 0010 GETMET R6 R0 K17 + 0x7C180200, // 0011 CALL R6 1 + 0x741A0018, // 0012 JMPT R6 #002C + 0x8C180110, // 0013 GETMET R6 R0 K16 + 0x7C180200, // 0014 CALL R6 1 + 0x1C1C0D67, // 0015 EQ R7 R6 K103 + 0x781E0001, // 0016 JMPF R7 #0019 + 0x00100928, // 0017 ADD R4 R4 K40 + 0x70020011, // 0018 JMP #002B + 0x1C1C0D68, // 0019 EQ R7 R6 K104 + 0x781E0001, // 001A JMPF R7 #001D + 0x00100926, // 001B ADD R4 R4 K38 + 0x7002000D, // 001C JMP #002B + 0x1C1C0D69, // 001D EQ R7 R6 K105 + 0x781E0001, // 001E JMPF R7 #0021 + 0x00100927, // 001F ADD R4 R4 K39 + 0x70020009, // 0020 JMP #002B + 0x1C1C0D66, // 0021 EQ R7 R6 K102 + 0x781E0001, // 0022 JMPF R7 #0025 + 0x00100966, // 0023 ADD R4 R4 K102 + 0x70020005, // 0024 JMP #002B + 0x1C1C0C01, // 0025 EQ R7 R6 R1 + 0x781E0001, // 0026 JMPF R7 #0029 + 0x00100801, // 0027 ADD R4 R4 R1 + 0x70020001, // 0028 JMP #002B + 0x00100966, // 0029 ADD R4 R4 K102 + 0x00100806, // 002A ADD R4 R4 R6 + 0x70020000, // 002B JMP #002D + 0x00100966, // 002C ADD R4 R4 K102 + 0x70020008, // 002D JMP #0037 + 0x1C180B28, // 002E EQ R6 R5 K40 + 0x781A0005, // 002F JMPF R6 #0036 + 0x88180102, // 0030 GETMBR R6 R0 K2 + 0x00180D03, // 0031 ADD R6 R6 K3 + 0x90020406, // 0032 SETMBR R0 K2 R6 + 0x90020903, // 0033 SETMBR R0 K4 K3 + 0x00100805, // 0034 ADD R4 R4 R5 + 0x70020000, // 0035 JMP #0037 + 0x00100805, // 0036 ADD R4 R4 R5 + 0x7001FFCC, // 0037 JMP #0005 + 0x8C140111, // 0038 GETMET R5 R0 K17 + 0x7C140200, // 0039 CALL R5 1 + 0x78160003, // 003A JMPF R5 #003F + 0x8C140116, // 003B GETMET R5 R0 K22 + 0x581C006A, // 003C LDCONST R7 K106 + 0x7C140400, // 003D CALL R5 2 + 0x70020008, // 003E JMP #0048 + 0x8C140110, // 003F GETMET R5 R0 K16 + 0x7C140200, // 0040 CALL R5 1 + 0x8C140115, // 0041 GETMET R5 R0 K21 + 0x581C0038, // 0042 LDCONST R7 K56 + 0x5C200800, // 0043 MOVE R8 R4 + 0x88240100, // 0044 GETMBR R9 R0 K0 + 0x04241202, // 0045 SUB R9 R9 R2 + 0x7C140800, // 0046 CALL R5 4 + 0x80040A00, // 0047 RET 1 R5 + 0x80000000, // 0048 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: scan_identifier_or_keyword +********************************************************************/ +be_local_closure(class_Lexer_scan_identifier_or_keyword, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_Lexer, /* shared constants */ + be_str_weak(scan_identifier_or_keyword), + &be_const_str_solidified, + ( &(const binstruction[47]) { /* code */ + 0xA4063400, // 0000 IMPORT R1 K26 + 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x04080503, // 0002 SUB R2 R2 K3 + 0x880C0104, // 0003 GETMBR R3 R0 K4 + 0x040C0703, // 0004 SUB R3 R3 K3 + 0x8C100111, // 0005 GETMET R4 R0 K17 + 0x7C100200, // 0006 CALL R4 1 + 0x7412000B, // 0007 JMPT R4 #0014 + 0x8C100162, // 0008 GETMET R4 R0 K98 + 0x8C180113, // 0009 GETMET R6 R0 K19 + 0x7C180200, // 000A CALL R6 1 + 0x7C100400, // 000B CALL R4 2 + 0x74120003, // 000C JMPT R4 #0011 + 0x8C100113, // 000D GETMET R4 R0 K19 + 0x7C100200, // 000E CALL R4 1 + 0x1C10092D, // 000F EQ R4 R4 K45 + 0x78120002, // 0010 JMPF R4 #0014 + 0x8C100110, // 0011 GETMET R4 R0 K16 + 0x7C100200, // 0012 CALL R4 1 + 0x7001FFF0, // 0013 JMP #0005 + 0x88100100, // 0014 GETMBR R4 R0 K0 + 0x04100903, // 0015 SUB R4 R4 K3 + 0x40100404, // 0016 CONNECT R4 R2 R4 + 0x88140114, // 0017 GETMBR R5 R0 K20 + 0x94100A04, // 0018 GETIDX R4 R5 R4 + 0x4C140000, // 0019 LDNIL R5 + 0x8C18036B, // 001A GETMET R6 R1 K107 + 0x5C200800, // 001B MOVE R8 R4 + 0x7C180400, // 001C CALL R6 2 + 0x781A0001, // 001D JMPF R6 #0020 + 0x54160003, // 001E LDINT R5 4 + 0x70020006, // 001F JMP #0027 + 0x8C18036C, // 0020 GETMET R6 R1 K108 + 0x5C200800, // 0021 MOVE R8 R4 + 0x7C180400, // 0022 CALL R6 2 + 0x781A0001, // 0023 JMPF R6 #0026 + 0x58140001, // 0024 LDCONST R5 K1 + 0x70020000, // 0025 JMP #0027 + 0x58140003, // 0026 LDCONST R5 K3 + 0x8C180115, // 0027 GETMET R6 R0 K21 + 0x5C200A00, // 0028 MOVE R8 R5 + 0x5C240800, // 0029 MOVE R9 R4 + 0x6028000C, // 002A GETGBL R10 G12 + 0x5C2C0800, // 002B MOVE R11 R4 + 0x7C280200, // 002C CALL R10 1 + 0x7C180800, // 002D CALL R6 4 + 0x80040C00, // 002E RET 1 R6 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: Lexer +********************************************************************/ +be_local_class(Lexer, + 5, NULL, - be_nested_map(9, + be_nested_map(34, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(page_main, -1), be_const_closure(class_AnimationWebUI_page_main_closure) }, - { be_const_key_weak(handle_request, -1), be_const_closure(class_AnimationWebUI_handle_request_closure) }, - { be_const_key_weak(last_dsl_code, -1), be_const_var(0) }, - { be_const_key_weak(DEFAULT_DSL, -1), be_nested_str_long(_X23_X20Simple_X20Berry_X20Animation_X20Example_X20_X2D_X20Cylon_X20red_X20eye_X0A_X0Aset_X20strip_len_X20_X3D_X20strip_length_X28_X29_X0A_X0Aanimation_X20red_eye_X20_X3D_X20beacon_animation_X28_X0A_X20_X20color_X20_X3D_X20red_X0A_X20_X20pos_X20_X3D_X20smooth_X28min_value_X20_X3D_X200_X2C_X20max_value_X20_X3D_X20strip_len_X20_X2D_X202_X2C_X20duration_X20_X3D_X205s_X29_X0A_X20_X20beacon_size_X20_X3D_X203_X20_X20_X20_X20_X20_X20_X20_X23_X20small_X203_X20pixels_X20eye_X0A_X20_X20slew_size_X20_X3D_X202_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20with_X202_X20pixel_X20shading_X20around_X0A_X29_X0A_X0Arun_X20red_eye_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20run_X20the_X20animation_X0A) }, - { be_const_key_weak(deinit, 3), be_const_closure(class_AnimationWebUI_deinit_closure) }, - { be_const_key_weak(web_add_handler, 2), be_const_closure(class_AnimationWebUI_web_add_handler_closure) }, - { be_const_key_weak(last_berry_code, 7), be_const_var(1) }, - { be_const_key_weak(init, 8), be_const_closure(class_AnimationWebUI_init_closure) }, - { be_const_key_weak(web_add_button, -1), be_const_closure(class_AnimationWebUI_web_add_button_closure) }, + { be_const_key_weak(reset, -1), be_const_closure(class_Lexer_reset_closure) }, + { be_const_key_weak(get_position, 27), be_const_closure(class_Lexer_get_position_closure) }, + { be_const_key_weak(is_alpha, 4), be_const_closure(class_Lexer_is_alpha_closure) }, + { be_const_key_weak(error, -1), be_const_closure(class_Lexer_error_closure) }, + { be_const_key_weak(scan_identifier_or_keyword, -1), be_const_closure(class_Lexer_scan_identifier_or_keyword_closure) }, + { be_const_key_weak(scan_hex_color_0x, -1), be_const_closure(class_Lexer_scan_hex_color_0x_closure) }, + { be_const_key_weak(peek, -1), be_const_closure(class_Lexer_peek_closure) }, + { be_const_key_weak(is_digit, 33), be_const_closure(class_Lexer_is_digit_closure) }, + { be_const_key_weak(position, -1), be_const_var(1) }, + { be_const_key_weak(create_token, -1), be_const_closure(class_Lexer_create_token_closure) }, + { be_const_key_weak(at_end, -1), be_const_closure(class_Lexer_at_end_closure) }, + { be_const_key_weak(column, 26), be_const_var(3) }, + { be_const_key_weak(token_position, 24), be_const_var(4) }, + { be_const_key_weak(source, 18), be_const_var(0) }, + { be_const_key_weak(scan_number, -1), be_const_closure(class_Lexer_scan_number_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_Lexer_init_closure) }, + { be_const_key_weak(peek_token, -1), be_const_closure(class_Lexer_peek_token_closure) }, + { be_const_key_weak(create_sub_lexer, -1), be_const_closure(class_Lexer_create_sub_lexer_closure) }, + { be_const_key_weak(next_token, -1), be_const_closure(class_Lexer_next_token_closure) }, + { be_const_key_weak(scan_operator_or_delimiter, -1), be_const_closure(class_Lexer_scan_operator_or_delimiter_closure) }, + { be_const_key_weak(scan_triple_quoted_string, -1), be_const_closure(class_Lexer_scan_triple_quoted_string_closure) }, + { be_const_key_weak(scan_variable_reference, -1), be_const_closure(class_Lexer_scan_variable_reference_closure) }, + { be_const_key_weak(scan_time_suffix, -1), be_const_closure(class_Lexer_scan_time_suffix_closure) }, + { be_const_key_weak(peek_char_ahead, 21), be_const_closure(class_Lexer_peek_char_ahead_closure) }, + { be_const_key_weak(scan_comment, -1), be_const_closure(class_Lexer_scan_comment_closure) }, + { be_const_key_weak(set_position, -1), be_const_closure(class_Lexer_set_position_closure) }, + { be_const_key_weak(is_alnum, 19), be_const_closure(class_Lexer_is_alnum_closure) }, + { be_const_key_weak(is_hex_digit, -1), be_const_closure(class_Lexer_is_hex_digit_closure) }, + { be_const_key_weak(peek_ahead, -1), be_const_closure(class_Lexer_peek_ahead_closure) }, + { be_const_key_weak(check_time_suffix, -1), be_const_closure(class_Lexer_check_time_suffix_closure) }, + { be_const_key_weak(scan_string, -1), be_const_closure(class_Lexer_scan_string_closure) }, + { be_const_key_weak(line, -1), be_const_var(2) }, + { be_const_key_weak(match, 13), be_const_closure(class_Lexer_match_closure) }, + { be_const_key_weak(advance, -1), be_const_closure(class_Lexer_advance_closure) }, })), - be_str_weak(AnimationWebUI) + be_str_weak(Lexer) ); /******************************************************************** -** Solidified function: is_right_associative +** Solidified function: is_color_name ********************************************************************/ -be_local_closure(is_right_associative, /* name */ +be_local_closure(is_color_name, /* name */ be_nested_proto( - 3, /* nstack */ + 5, /* nstack */ 1, /* argc */ 0, /* varg */ 0, /* has upvals */ @@ -3896,46 +5692,72 @@ be_local_closure(is_right_associative, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(type), + ( &(const bvalue[ 4]) { /* 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(stop_iteration), }), - be_str_weak(is_right_associative), + be_str_weak(is_color_name), &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x540A000D, // 0001 LDINT R2 14 - 0x1C040202, // 0002 EQ R1 R1 R2 - 0x80040200, // 0003 RET 1 R1 + ( &(const binstruction[19]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x60080010, // 0001 GETGBL R2 G16 + 0x880C0301, // 0002 GETMBR R3 R1 K1 + 0x880C0702, // 0003 GETMBR R3 R3 K2 + 0x7C080200, // 0004 CALL R2 1 + 0xA8020007, // 0005 EXBLK 0 #000E + 0x5C0C0400, // 0006 MOVE R3 R2 + 0x7C0C0000, // 0007 CALL R3 0 + 0x1C100003, // 0008 EQ R4 R0 R3 + 0x78120002, // 0009 JMPF R4 #000D + 0x50100200, // 000A LDBOOL R4 1 0 + 0xA8040001, // 000B EXBLK 1 1 + 0x80040800, // 000C RET 1 R4 + 0x7001FFF7, // 000D JMP #0006 + 0x58080003, // 000E LDCONST R2 K3 + 0xAC080200, // 000F CATCH R2 1 0 + 0xB0080000, // 0010 RAISE 2 R0 R0 + 0x50080000, // 0011 LDBOOL R2 0 0 + 0x80040400, // 0012 RET 1 R2 }) ) ); /*******************************************************************/ -extern const bclass be_class_MockEngine; - /******************************************************************** -** Solidified function: init +** Solidified function: compile_dsl ********************************************************************/ -be_local_closure(class_MockEngine_init, /* name */ +be_local_closure(compile_dsl, /* name */ be_nested_proto( - 1, /* nstack */ + 6, /* nstack */ 1, /* argc */ - 2, /* varg */ + 0, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(time_ms), - /* K1 */ be_const_int(0), + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(create_lexer), + /* K2 */ be_nested_str_weak(SimpleDSLTranspiler), + /* K3 */ be_nested_str_weak(transpile), }), - be_str_weak(init), + be_str_weak(compile_dsl), &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x90020101, // 0000 SETMBR R0 K0 K1 - 0x80000000, // 0001 RET 0 + ( &(const binstruction[10]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080301, // 0001 GETMET R2 R1 K1 + 0x5C100000, // 0002 MOVE R4 R0 + 0x7C080400, // 0003 CALL R2 2 + 0x8C0C0302, // 0004 GETMET R3 R1 K2 + 0x5C140400, // 0005 MOVE R5 R2 + 0x7C0C0400, // 0006 CALL R3 2 + 0x8C100703, // 0007 GETMET R4 R3 K3 + 0x7C100200, // 0008 CALL R4 1 + 0x80040800, // 0009 RET 1 R4 }) ) ); @@ -3943,24 +5765,32 @@ be_local_closure(class_MockEngine_init, /* name */ /******************************************************************** -** Solidified function: get_strip_length +** Solidified function: animation_dsl_init ********************************************************************/ -be_local_closure(class_MockEngine_get_strip_length, /* name */ +be_local_closure(animation_dsl_init, /* name */ be_nested_proto( - 2, /* nstack */ + 4, /* nstack */ 1, /* argc */ - 2, /* varg */ + 0, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ - 0, /* has constants */ - NULL, /* no const */ - be_str_weak(get_strip_length), + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(animation), + /* K1 */ be_nested_str_weak(animation_web_ui), + /* K2 */ be_nested_str_weak(web_ui), + }), + be_str_weak(animation_dsl_init), &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x5406001D, // 0000 LDINT R1 30 - 0x80040200, // 0001 RET 1 R1 + ( &(const binstruction[ 6]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x88080101, // 0001 GETMBR R2 R0 K1 + 0x5C0C0400, // 0002 MOVE R3 R2 + 0x7C0C0000, // 0003 CALL R3 0 + 0x90060403, // 0004 SETMBR R1 K2 R3 + 0x80040000, // 0005 RET 1 R0 }) ) ); @@ -3968,19 +5798,56 @@ be_local_closure(class_MockEngine_get_strip_length, /* name */ /******************************************************************** -** Solidified class: MockEngine +** Solidified function: load_file ********************************************************************/ -be_local_class(MockEngine, - 1, - NULL, - be_nested_map(3, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(time_ms, 1), be_const_var(0) }, - { be_const_key_weak(init, -1), be_const_closure(class_MockEngine_init_closure) }, - { be_const_key_weak(get_strip_length, -1), be_const_closure(class_MockEngine_get_strip_length_closure) }, - })), - be_str_weak(MockEngine) +be_local_closure(load_file, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 0, /* 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(r), + /* K2 */ be_nested_str_weak(Cannot_X20open_X20DSL_X20file_X3A_X20_X25s), + /* K3 */ be_nested_str_weak(io_error), + /* K4 */ be_nested_str_weak(read), + /* K5 */ be_nested_str_weak(close), + /* K6 */ be_nested_str_weak(execute), + }), + be_str_weak(load_file), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x60080011, // 0001 GETGBL R2 G17 + 0x5C0C0000, // 0002 MOVE R3 R0 + 0x58100001, // 0003 LDCONST R4 K1 + 0x7C080400, // 0004 CALL R2 2 + 0x4C0C0000, // 0005 LDNIL R3 + 0x1C0C0403, // 0006 EQ R3 R2 R3 + 0x780E0004, // 0007 JMPF R3 #000D + 0x600C0018, // 0008 GETGBL R3 G24 + 0x58100002, // 0009 LDCONST R4 K2 + 0x5C140000, // 000A MOVE R5 R0 + 0x7C0C0400, // 000B CALL R3 2 + 0xB0060603, // 000C RAISE 1 K3 R3 + 0x8C0C0504, // 000D GETMET R3 R2 K4 + 0x7C0C0200, // 000E CALL R3 1 + 0x8C100505, // 000F GETMET R4 R2 K5 + 0x7C100200, // 0010 CALL R4 1 + 0x8C100306, // 0011 GETMET R4 R1 K6 + 0x5C180600, // 0012 MOVE R6 R3 + 0x7C100400, // 0013 CALL R4 2 + 0x80040800, // 0014 RET 1 R4 + }) + ) ); +/*******************************************************************/ + /******************************************************************** ** Solidified function: compile_file @@ -4101,2350 +5968,761 @@ be_local_closure(compile_file, /* name */ ); /*******************************************************************/ -// compact class 'DSLRuntime' ktab size: 26, total: 45 (saved 152 bytes) -static const bvalue be_ktab_class_DSLRuntime[26] = { - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(debug_mode), - /* K3 */ be_nested_str_weak(DSL_X3A_X20Empty_X20source_X20code), - /* K4 */ be_nested_str_weak(DSL_X3A_X20Compiling_X20source_X2E_X2E_X2E), - /* K5 */ be_nested_str_weak(compile), - /* K6 */ be_nested_str_weak(execute_berry_code), - /* K7 */ be_nested_str_weak(dsl_compilation_error), - /* K8 */ be_nested_str_weak(DSL_X3A_X20Compilation_X20failed_X20_X2D_X20), - /* K9 */ be_nested_str_weak(active_source), - /* K10 */ be_nested_str_weak(engine), - /* K11 */ be_nested_str_weak(r), - /* K12 */ be_nested_str_weak(DSL_X3A_X20Cannot_X20open_X20file_X20_X25s), - /* K13 */ be_nested_str_weak(read), - /* K14 */ be_nested_str_weak(close), - /* K15 */ be_nested_str_weak(DSL_X3A_X20Loaded_X20_X25s_X20characters_X20from_X20_X25s), - /* K16 */ be_nested_str_weak(load_dsl), - /* K17 */ be_nested_str_weak(DSL_X3A_X20File_X20loading_X20error_X3A_X20_X25s), - /* K18 */ be_nested_str_weak(DSL_X3A_X20Code_X20generation_X20failed_X20_X2D_X20), - /* K19 */ be_nested_str_weak(DSL_X3A_X20No_X20active_X20DSL_X20to_X20reload), - /* K20 */ be_nested_str_weak(DSL_X3A_X20Reloading_X20current_X20DSL_X2E_X2E_X2E), - /* K21 */ be_nested_str_weak(stop), - /* K22 */ be_nested_str_weak(clear), - /* K23 */ be_nested_str_weak(DSL_X3A_X20Berry_X20compilation_X20failed), - /* K24 */ be_nested_str_weak(DSL_X3A_X20Execution_X20successful), - /* K25 */ be_nested_str_weak(DSL_X3A_X20Execution_X20error_X3A_X20_X25s), -}; - - -extern const bclass be_class_DSLRuntime; - -/******************************************************************** -** Solidified function: load_dsl -********************************************************************/ -be_local_closure(class_DSLRuntime_load_dsl, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(load_dsl), - &be_const_str_solidified, - ( &(const binstruction[46]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x4C0C0000, // 0001 LDNIL R3 - 0x1C0C0203, // 0002 EQ R3 R1 R3 - 0x740E0004, // 0003 JMPT R3 #0009 - 0x600C000C, // 0004 GETGBL R3 G12 - 0x5C100200, // 0005 MOVE R4 R1 - 0x7C0C0200, // 0006 CALL R3 1 - 0x1C0C0701, // 0007 EQ R3 R3 K1 - 0x780E0006, // 0008 JMPF R3 #0010 - 0x880C0102, // 0009 GETMBR R3 R0 K2 - 0x780E0002, // 000A JMPF R3 #000E - 0x600C0001, // 000B GETGBL R3 G1 - 0x58100003, // 000C LDCONST R4 K3 - 0x7C0C0200, // 000D CALL R3 1 - 0x500C0000, // 000E LDBOOL R3 0 0 - 0x80040600, // 000F RET 1 R3 - 0x880C0102, // 0010 GETMBR R3 R0 K2 - 0x780E0002, // 0011 JMPF R3 #0015 - 0x600C0001, // 0012 GETGBL R3 G1 - 0x58100004, // 0013 LDCONST R4 K4 - 0x7C0C0200, // 0014 CALL R3 1 - 0xA802000A, // 0015 EXBLK 0 #0021 - 0x8C0C0505, // 0016 GETMET R3 R2 K5 - 0x5C140200, // 0017 MOVE R5 R1 - 0x7C0C0400, // 0018 CALL R3 2 - 0x8C100106, // 0019 GETMET R4 R0 K6 - 0x5C180600, // 001A MOVE R6 R3 - 0x5C1C0200, // 001B MOVE R7 R1 - 0x7C100600, // 001C CALL R4 3 - 0xA8040001, // 001D EXBLK 1 1 - 0x80040800, // 001E RET 1 R4 - 0xA8040001, // 001F EXBLK 1 1 - 0x7002000B, // 0020 JMP #002D - 0x580C0007, // 0021 LDCONST R3 K7 - 0xAC0C0202, // 0022 CATCH R3 1 2 - 0x70020007, // 0023 JMP #002C - 0x88140102, // 0024 GETMBR R5 R0 K2 - 0x78160002, // 0025 JMPF R5 #0029 - 0x60140001, // 0026 GETGBL R5 G1 - 0x001A1004, // 0027 ADD R6 K8 R4 - 0x7C140200, // 0028 CALL R5 1 - 0x50140000, // 0029 LDBOOL R5 0 0 - 0x80040A00, // 002A RET 1 R5 - 0x70020000, // 002B JMP #002D - 0xB0080000, // 002C RAISE 2 R0 R0 - 0x80000000, // 002D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_active_source -********************************************************************/ -be_local_closure(class_DSLRuntime_get_active_source, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(get_active_source), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_DSLRuntime_init, /* name */ - be_nested_proto( - 4, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x90021401, // 0000 SETMBR R0 K10 R1 - 0x4C0C0000, // 0001 LDNIL R3 - 0x90021203, // 0002 SETMBR R0 K9 R3 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0403, // 0004 NE R3 R2 R3 - 0x780E0001, // 0005 JMPF R3 #0008 - 0x5C0C0400, // 0006 MOVE R3 R2 - 0x70020000, // 0007 JMP #0009 - 0x500C0000, // 0008 LDBOOL R3 0 0 - 0x90020403, // 0009 SETMBR R0 K2 R3 - 0x80000000, // 000A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: load_dsl_file -********************************************************************/ -be_local_closure(class_DSLRuntime_load_dsl_file, /* name */ - be_nested_proto( - 9, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(load_dsl_file), - &be_const_str_solidified, - ( &(const binstruction[56]) { /* code */ - 0xA8020027, // 0000 EXBLK 0 #0029 - 0x60080011, // 0001 GETGBL R2 G17 - 0x5C0C0200, // 0002 MOVE R3 R1 - 0x5810000B, // 0003 LDCONST R4 K11 - 0x7C080400, // 0004 CALL R2 2 - 0x4C0C0000, // 0005 LDNIL R3 - 0x1C0C0403, // 0006 EQ R3 R2 R3 - 0x780E000A, // 0007 JMPF R3 #0013 - 0x880C0102, // 0008 GETMBR R3 R0 K2 - 0x780E0005, // 0009 JMPF R3 #0010 - 0x600C0001, // 000A GETGBL R3 G1 - 0x60100018, // 000B GETGBL R4 G24 - 0x5814000C, // 000C LDCONST R5 K12 - 0x5C180200, // 000D MOVE R6 R1 - 0x7C100400, // 000E CALL R4 2 - 0x7C0C0200, // 000F CALL R3 1 - 0x500C0000, // 0010 LDBOOL R3 0 0 - 0xA8040001, // 0011 EXBLK 1 1 - 0x80040600, // 0012 RET 1 R3 - 0x8C0C050D, // 0013 GETMET R3 R2 K13 - 0x7C0C0200, // 0014 CALL R3 1 - 0x8C10050E, // 0015 GETMET R4 R2 K14 - 0x7C100200, // 0016 CALL R4 1 - 0x88100102, // 0017 GETMBR R4 R0 K2 - 0x78120008, // 0018 JMPF R4 #0022 - 0x60100001, // 0019 GETGBL R4 G1 - 0x60140018, // 001A GETGBL R5 G24 - 0x5818000F, // 001B LDCONST R6 K15 - 0x601C000C, // 001C GETGBL R7 G12 - 0x5C200600, // 001D MOVE R8 R3 - 0x7C1C0200, // 001E CALL R7 1 - 0x5C200200, // 001F MOVE R8 R1 - 0x7C140600, // 0020 CALL R5 3 - 0x7C100200, // 0021 CALL R4 1 - 0x8C100110, // 0022 GETMET R4 R0 K16 - 0x5C180600, // 0023 MOVE R6 R3 - 0x7C100400, // 0024 CALL R4 2 - 0xA8040001, // 0025 EXBLK 1 1 - 0x80040800, // 0026 RET 1 R4 - 0xA8040001, // 0027 EXBLK 1 1 - 0x7002000D, // 0028 JMP #0037 - 0xAC080002, // 0029 CATCH R2 0 2 - 0x7002000A, // 002A JMP #0036 - 0x88100102, // 002B GETMBR R4 R0 K2 - 0x78120005, // 002C JMPF R4 #0033 - 0x60100001, // 002D GETGBL R4 G1 - 0x60140018, // 002E GETGBL R5 G24 - 0x58180011, // 002F LDCONST R6 K17 - 0x5C1C0600, // 0030 MOVE R7 R3 - 0x7C140400, // 0031 CALL R5 2 - 0x7C100200, // 0032 CALL R4 1 - 0x50100000, // 0033 LDBOOL R4 0 0 - 0x80040800, // 0034 RET 1 R4 - 0x70020000, // 0035 JMP #0037 - 0xB0080000, // 0036 RAISE 2 R0 R0 - 0x80000000, // 0037 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_engine -********************************************************************/ -be_local_closure(class_DSLRuntime_get_engine, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(get_engine), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x8804010A, // 0000 GETMBR R1 R0 K10 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_generated_code -********************************************************************/ -be_local_closure(class_DSLRuntime_get_generated_code, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(get_generated_code), - &be_const_str_solidified, - ( &(const binstruction[31]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x4C0C0000, // 0001 LDNIL R3 - 0x1C0C0203, // 0002 EQ R3 R1 R3 - 0x780E0000, // 0003 JMPF R3 #0005 - 0x88040109, // 0004 GETMBR R1 R0 K9 - 0x4C0C0000, // 0005 LDNIL R3 - 0x1C0C0203, // 0006 EQ R3 R1 R3 - 0x780E0001, // 0007 JMPF R3 #000A - 0x4C0C0000, // 0008 LDNIL R3 - 0x80040600, // 0009 RET 1 R3 - 0xA8020006, // 000A EXBLK 0 #0012 - 0x8C0C0505, // 000B GETMET R3 R2 K5 - 0x5C140200, // 000C MOVE R5 R1 - 0x7C0C0400, // 000D CALL R3 2 - 0xA8040001, // 000E EXBLK 1 1 - 0x80040600, // 000F RET 1 R3 - 0xA8040001, // 0010 EXBLK 1 1 - 0x7002000B, // 0011 JMP #001E - 0x580C0007, // 0012 LDCONST R3 K7 - 0xAC0C0202, // 0013 CATCH R3 1 2 - 0x70020007, // 0014 JMP #001D - 0x88140102, // 0015 GETMBR R5 R0 K2 - 0x78160002, // 0016 JMPF R5 #001A - 0x60140001, // 0017 GETGBL R5 G1 - 0x001A2404, // 0018 ADD R6 K18 R4 - 0x7C140200, // 0019 CALL R5 1 - 0x4C140000, // 001A LDNIL R5 - 0x80040A00, // 001B RET 1 R5 - 0x70020000, // 001C JMP #001E - 0xB0080000, // 001D RAISE 2 R0 R0 - 0x80000000, // 001E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: reload_dsl -********************************************************************/ -be_local_closure(class_DSLRuntime_reload_dsl, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(reload_dsl), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x4C080000, // 0001 LDNIL R2 - 0x1C040202, // 0002 EQ R1 R1 R2 - 0x78060006, // 0003 JMPF R1 #000B - 0x88040102, // 0004 GETMBR R1 R0 K2 - 0x78060002, // 0005 JMPF R1 #0009 - 0x60040001, // 0006 GETGBL R1 G1 - 0x58080013, // 0007 LDCONST R2 K19 - 0x7C040200, // 0008 CALL R1 1 - 0x50040000, // 0009 LDBOOL R1 0 0 - 0x80040200, // 000A RET 1 R1 - 0x88040102, // 000B GETMBR R1 R0 K2 - 0x78060002, // 000C JMPF R1 #0010 - 0x60040001, // 000D GETGBL R1 G1 - 0x58080014, // 000E LDCONST R2 K20 - 0x7C040200, // 000F CALL R1 1 - 0x8804010A, // 0010 GETMBR R1 R0 K10 - 0x8C040315, // 0011 GETMET R1 R1 K21 - 0x7C040200, // 0012 CALL R1 1 - 0x8804010A, // 0013 GETMBR R1 R0 K10 - 0x8C040316, // 0014 GETMET R1 R1 K22 - 0x7C040200, // 0015 CALL R1 1 - 0x8C040110, // 0016 GETMET R1 R0 K16 - 0x880C0109, // 0017 GETMBR R3 R0 K9 - 0x7C040400, // 0018 CALL R1 2 - 0x80040200, // 0019 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: execute_berry_code -********************************************************************/ -be_local_closure(class_DSLRuntime_execute_berry_code, /* name */ - be_nested_proto( - 9, /* nstack */ - 3, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(execute_berry_code), - &be_const_str_solidified, - ( &(const binstruction[49]) { /* code */ - 0xA8020020, // 0000 EXBLK 0 #0022 - 0x880C010A, // 0001 GETMBR R3 R0 K10 - 0x8C0C0715, // 0002 GETMET R3 R3 K21 - 0x7C0C0200, // 0003 CALL R3 1 - 0x880C010A, // 0004 GETMBR R3 R0 K10 - 0x8C0C0716, // 0005 GETMET R3 R3 K22 - 0x7C0C0200, // 0006 CALL R3 1 - 0x600C000D, // 0007 GETGBL R3 G13 - 0x5C100200, // 0008 MOVE R4 R1 - 0x7C0C0200, // 0009 CALL R3 1 - 0x4C100000, // 000A LDNIL R4 - 0x1C100604, // 000B EQ R4 R3 R4 - 0x78120007, // 000C JMPF R4 #0015 - 0x88100102, // 000D GETMBR R4 R0 K2 - 0x78120002, // 000E JMPF R4 #0012 - 0x60100001, // 000F GETGBL R4 G1 - 0x58140017, // 0010 LDCONST R5 K23 - 0x7C100200, // 0011 CALL R4 1 - 0x50100000, // 0012 LDBOOL R4 0 0 - 0xA8040001, // 0013 EXBLK 1 1 - 0x80040800, // 0014 RET 1 R4 - 0x5C100600, // 0015 MOVE R4 R3 - 0x7C100000, // 0016 CALL R4 0 - 0x90021202, // 0017 SETMBR R0 K9 R2 - 0x88100102, // 0018 GETMBR R4 R0 K2 - 0x78120002, // 0019 JMPF R4 #001D - 0x60100001, // 001A GETGBL R4 G1 - 0x58140018, // 001B LDCONST R5 K24 - 0x7C100200, // 001C CALL R4 1 - 0x50100200, // 001D LDBOOL R4 1 0 - 0xA8040001, // 001E EXBLK 1 1 - 0x80040800, // 001F RET 1 R4 - 0xA8040001, // 0020 EXBLK 1 1 - 0x7002000D, // 0021 JMP #0030 - 0xAC0C0002, // 0022 CATCH R3 0 2 - 0x7002000A, // 0023 JMP #002F - 0x88140102, // 0024 GETMBR R5 R0 K2 - 0x78160005, // 0025 JMPF R5 #002C - 0x60140001, // 0026 GETGBL R5 G1 - 0x60180018, // 0027 GETGBL R6 G24 - 0x581C0019, // 0028 LDCONST R7 K25 - 0x5C200800, // 0029 MOVE R8 R4 - 0x7C180400, // 002A CALL R6 2 - 0x7C140200, // 002B CALL R5 1 - 0x50140000, // 002C LDBOOL R5 0 0 - 0x80040A00, // 002D RET 1 R5 - 0x70020000, // 002E JMP #0030 - 0xB0080000, // 002F RAISE 2 R0 R0 - 0x80000000, // 0030 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_loaded -********************************************************************/ -be_local_closure(class_DSLRuntime_is_loaded, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLRuntime, /* shared constants */ - be_str_weak(is_loaded), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040109, // 0000 GETMBR R1 R0 K9 - 0x4C080000, // 0001 LDNIL R2 - 0x20040202, // 0002 NE R1 R1 R2 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: DSLRuntime -********************************************************************/ -be_local_class(DSLRuntime, - 3, - NULL, - be_nested_map(12, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(is_loaded, -1), be_const_closure(class_DSLRuntime_is_loaded_closure) }, - { be_const_key_weak(load_dsl, -1), be_const_closure(class_DSLRuntime_load_dsl_closure) }, - { be_const_key_weak(get_active_source, -1), be_const_closure(class_DSLRuntime_get_active_source_closure) }, - { be_const_key_weak(init, -1), be_const_closure(class_DSLRuntime_init_closure) }, - { be_const_key_weak(load_dsl_file, -1), be_const_closure(class_DSLRuntime_load_dsl_file_closure) }, - { be_const_key_weak(active_source, -1), be_const_var(1) }, - { be_const_key_weak(get_engine, -1), be_const_closure(class_DSLRuntime_get_engine_closure) }, - { be_const_key_weak(get_generated_code, -1), be_const_closure(class_DSLRuntime_get_generated_code_closure) }, - { be_const_key_weak(reload_dsl, -1), be_const_closure(class_DSLRuntime_reload_dsl_closure) }, - { be_const_key_weak(execute_berry_code, -1), be_const_closure(class_DSLRuntime_execute_berry_code_closure) }, - { be_const_key_weak(debug_mode, -1), be_const_var(2) }, - { be_const_key_weak(engine, 0), be_const_var(0) }, - })), - be_str_weak(DSLRuntime) -); -// compact class 'DSLLexer' ktab size: 108, total: 269 (saved 1288 bytes) -static const bvalue be_ktab_class_DSLLexer[108] = { - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(startswith), - /* K2 */ be_nested_str_weak(source), - /* K3 */ be_nested_str_weak(position), - /* K4 */ be_const_int(2147483647), - /* K5 */ be_nested_str_weak(ms), - /* K6 */ be_nested_str_weak(advance), - /* K7 */ be_nested_str_weak(peek), - /* K8 */ be_nested_str_weak(s), - /* K9 */ be_nested_str_weak(m), - /* K10 */ be_nested_str_weak(h), - /* K11 */ be_nested_str_weak(), - /* K12 */ be_nested_str_weak(is_alpha), - /* K13 */ be_nested_str_weak(is_digit), - /* K14 */ be_nested_str_weak(column), - /* K15 */ be_nested_str_weak(_X20), - /* K16 */ be_nested_str_weak(_X09), - /* K17 */ be_nested_str_weak(_X0D), - /* K18 */ be_nested_str_weak(_X0A), - /* K19 */ be_nested_str_weak(add_token), - /* K20 */ be_const_int(1), - /* K21 */ be_nested_str_weak(line), - /* K22 */ be_nested_str_weak(_X23), - /* K23 */ be_nested_str_weak(scan_comment), - /* K24 */ be_nested_str_weak(0), - /* K25 */ be_nested_str_weak(x), - /* K26 */ be_nested_str_weak(scan_hex_color_0x), - /* K27 */ be_nested_str_weak(_), - /* K28 */ be_nested_str_weak(scan_identifier_or_keyword), - /* K29 */ be_nested_str_weak(scan_number), - /* K30 */ be_nested_str_weak(_X22), - /* K31 */ be_nested_str_weak(_X27), - /* K32 */ be_nested_str_weak(peek_ahead), - /* K33 */ be_nested_str_weak(scan_triple_quoted_string), - /* K34 */ be_nested_str_weak(scan_string), - /* K35 */ be_nested_str_weak(_X24), - /* K36 */ be_nested_str_weak(scan_variable_reference), - /* K37 */ be_nested_str_weak(scan_operator_or_delimiter), - /* K38 */ be_const_int(0), - /* K39 */ be_nested_str_weak(at_end), - /* K40 */ be_nested_str_weak(is_hex_digit), - /* K41 */ be_nested_str_weak(error), - /* K42 */ be_nested_str_weak(Invalid_X20hex_X20color_X20format_X3A_X20), - /* K43 */ be_nested_str_weak(_X20_X28expected_X200xRRGGBB_X20or_X200xAARRGGBB_X29), - /* K44 */ be_nested_str_weak(Invalid_X20variable_X20reference_X3A_X20_X24_X20must_X20be_X20followed_X20by_X20identifier), - /* K45 */ be_nested_str_weak(is_alnum), - /* K46 */ be_nested_str_weak(_X3D), - /* K47 */ be_nested_str_weak(match), - /* K48 */ be_nested_str_weak(_X3D_X3D), - /* K49 */ be_const_int(2), - /* K50 */ be_nested_str_weak(_X21), - /* K51 */ be_nested_str_weak(_X21_X3D), - /* K52 */ be_nested_str_weak(_X3C), - /* K53 */ be_nested_str_weak(_X3C_X3D), - /* K54 */ be_nested_str_weak(Left_X20shift_X20operator_X20_X27_X3C_X3C_X27_X20not_X20supported_X20in_X20DSL), - /* K55 */ be_nested_str_weak(_X3E), - /* K56 */ be_nested_str_weak(_X3E_X3D), - /* K57 */ be_nested_str_weak(Right_X20shift_X20operator_X20_X27_X3E_X3E_X27_X20not_X20supported_X20in_X20DSL), - /* K58 */ be_nested_str_weak(_X26), - /* K59 */ be_nested_str_weak(_X26_X26), - /* K60 */ be_nested_str_weak(Single_X20_X27_X26_X27_X20not_X20supported_X20in_X20DSL), - /* K61 */ be_nested_str_weak(_X7C), - /* K62 */ be_nested_str_weak(_X7C_X7C), - /* K63 */ be_nested_str_weak(Single_X20_X27_X7C_X27_X20not_X20supported_X20in_X20DSL), - /* K64 */ be_nested_str_weak(_X2D), - /* K65 */ be_nested_str_weak(_X2D_X3E), - /* K66 */ be_nested_str_weak(_X2B), - /* K67 */ be_nested_str_weak(_X2A), - /* K68 */ be_nested_str_weak(_X2F), - /* K69 */ be_nested_str_weak(_X25), - /* K70 */ be_nested_str_weak(_X5E), - /* K71 */ be_nested_str_weak(_X28), - /* K72 */ be_nested_str_weak(_X29), - /* K73 */ be_nested_str_weak(_X7B), - /* K74 */ be_nested_str_weak(_X7D), - /* K75 */ be_nested_str_weak(_X5B), - /* K76 */ be_nested_str_weak(_X5D), - /* K77 */ be_nested_str_weak(_X2C), - /* K78 */ be_nested_str_weak(_X3B), - /* K79 */ be_nested_str_weak(_X3A), - /* K80 */ be_nested_str_weak(_X2E), - /* K81 */ be_nested_str_weak(Unexpected_X20character_X3A_X20_X27), - /* K82 */ be_nested_str_weak(a), - /* K83 */ be_nested_str_weak(z), - /* K84 */ be_nested_str_weak(A), - /* K85 */ be_nested_str_weak(Z), - /* K86 */ be_nested_str_weak(_X5C), - /* K87 */ be_nested_str_weak(n), - /* K88 */ be_nested_str_weak(t), - /* K89 */ be_nested_str_weak(r), - /* K90 */ be_nested_str_weak(Unterminated_X20string_X20literal), - /* K91 */ be_const_int(3), - /* K92 */ be_nested_str_weak(tokens), - /* K93 */ be_nested_str_weak(9), - /* K94 */ be_nested_str_weak(scan_token), - /* K95 */ be_nested_str_weak(f), - /* K96 */ be_nested_str_weak(F), - /* K97 */ be_nested_str_weak(check_time_suffix), - /* K98 */ be_nested_str_weak(scan_time_suffix), - /* K99 */ be_nested_str_weak(Line_X20), - /* K100 */ be_nested_str_weak(_X3A_X20), - /* K101 */ be_nested_str_weak(lexical_error), - /* K102 */ be_nested_str_weak(Unterminated_X20triple_X2Dquoted_X20string_X20literal), - /* K103 */ be_nested_str_weak(animation_dsl), - /* K104 */ be_nested_str_weak(is_color_name), - /* K105 */ be_nested_str_weak(is_keyword), - /* K106 */ be_nested_str_weak(Token), - /* K107 */ be_nested_str_weak(push), -}; - - -extern const bclass be_class_DSLLexer; - -/******************************************************************** -** Solidified function: scan_time_suffix -********************************************************************/ -be_local_closure(class_DSLLexer_scan_time_suffix, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_time_suffix), - &be_const_str_solidified, - ( &(const binstruction[39]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080301, // 0001 GETMET R2 R1 K1 - 0x88100103, // 0002 GETMBR R4 R0 K3 - 0x40100904, // 0003 CONNECT R4 R4 K4 - 0x88140102, // 0004 GETMBR R5 R0 K2 - 0x94100A04, // 0005 GETIDX R4 R5 R4 - 0x58140005, // 0006 LDCONST R5 K5 - 0x7C080600, // 0007 CALL R2 3 - 0x780A0005, // 0008 JMPF R2 #000F - 0x8C080106, // 0009 GETMET R2 R0 K6 - 0x7C080200, // 000A CALL R2 1 - 0x8C080106, // 000B GETMET R2 R0 K6 - 0x7C080200, // 000C CALL R2 1 - 0x80060A00, // 000D RET 1 K5 - 0x70020016, // 000E JMP #0026 - 0x8C080107, // 000F GETMET R2 R0 K7 - 0x7C080200, // 0010 CALL R2 1 - 0x1C080508, // 0011 EQ R2 R2 K8 - 0x780A0003, // 0012 JMPF R2 #0017 - 0x8C080106, // 0013 GETMET R2 R0 K6 - 0x7C080200, // 0014 CALL R2 1 - 0x80061000, // 0015 RET 1 K8 - 0x7002000E, // 0016 JMP #0026 - 0x8C080107, // 0017 GETMET R2 R0 K7 - 0x7C080200, // 0018 CALL R2 1 - 0x1C080509, // 0019 EQ R2 R2 K9 - 0x780A0003, // 001A JMPF R2 #001F - 0x8C080106, // 001B GETMET R2 R0 K6 - 0x7C080200, // 001C CALL R2 1 - 0x80061200, // 001D RET 1 K9 - 0x70020006, // 001E JMP #0026 - 0x8C080107, // 001F GETMET R2 R0 K7 - 0x7C080200, // 0020 CALL R2 1 - 0x1C08050A, // 0021 EQ R2 R2 K10 - 0x780A0002, // 0022 JMPF R2 #0026 - 0x8C080106, // 0023 GETMET R2 R0 K6 - 0x7C080200, // 0024 CALL R2 1 - 0x80061400, // 0025 RET 1 K10 - 0x80061600, // 0026 RET 1 K11 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_alnum -********************************************************************/ -be_local_closure(class_DSLLexer_is_alnum, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(is_alnum), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x8C08010C, // 0000 GETMET R2 R0 K12 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x740A0004, // 0003 JMPT R2 #0009 - 0x8C08010D, // 0004 GETMET R2 R0 K13 - 0x5C100200, // 0005 MOVE R4 R1 - 0x7C080400, // 0006 CALL R2 2 - 0x740A0000, // 0007 JMPT R2 #0009 - 0x50080001, // 0008 LDBOOL R2 0 1 - 0x50080200, // 0009 LDBOOL R2 1 0 - 0x80040400, // 000A RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_token -********************************************************************/ -be_local_closure(class_DSLLexer_scan_token, /* name */ - be_nested_proto( - 8, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_token), - &be_const_str_solidified, - ( &(const binstruction[97]) { /* code */ - 0x8804010E, // 0000 GETMBR R1 R0 K14 - 0x8C080106, // 0001 GETMET R2 R0 K6 - 0x7C080200, // 0002 CALL R2 1 - 0x1C0C050F, // 0003 EQ R3 R2 K15 - 0x740E0003, // 0004 JMPT R3 #0009 - 0x1C0C0510, // 0005 EQ R3 R2 K16 - 0x740E0001, // 0006 JMPT R3 #0009 - 0x1C0C0511, // 0007 EQ R3 R2 K17 - 0x780E0001, // 0008 JMPF R3 #000B - 0x80000600, // 0009 RET 0 - 0x70020054, // 000A JMP #0060 - 0x1C0C0512, // 000B EQ R3 R2 K18 - 0x780E000A, // 000C JMPF R3 #0018 - 0x8C0C0113, // 000D GETMET R3 R0 K19 - 0x54160022, // 000E LDINT R5 35 - 0x58180012, // 000F LDCONST R6 K18 - 0x581C0014, // 0010 LDCONST R7 K20 - 0x7C0C0800, // 0011 CALL R3 4 - 0x880C0115, // 0012 GETMBR R3 R0 K21 - 0x000C0714, // 0013 ADD R3 R3 K20 - 0x90022A03, // 0014 SETMBR R0 K21 R3 - 0x90021D14, // 0015 SETMBR R0 K14 K20 - 0x80000600, // 0016 RET 0 - 0x70020047, // 0017 JMP #0060 - 0x1C0C0516, // 0018 EQ R3 R2 K22 - 0x780E0002, // 0019 JMPF R3 #001D - 0x8C0C0117, // 001A GETMET R3 R0 K23 - 0x7C0C0200, // 001B CALL R3 1 - 0x70020042, // 001C JMP #0060 - 0x1C0C0518, // 001D EQ R3 R2 K24 - 0x780E0006, // 001E JMPF R3 #0026 - 0x8C0C0107, // 001F GETMET R3 R0 K7 - 0x7C0C0200, // 0020 CALL R3 1 - 0x1C0C0719, // 0021 EQ R3 R3 K25 - 0x780E0002, // 0022 JMPF R3 #0026 - 0x8C0C011A, // 0023 GETMET R3 R0 K26 - 0x7C0C0200, // 0024 CALL R3 1 - 0x70020039, // 0025 JMP #0060 - 0x8C0C010C, // 0026 GETMET R3 R0 K12 - 0x5C140400, // 0027 MOVE R5 R2 - 0x7C0C0400, // 0028 CALL R3 2 - 0x740E0001, // 0029 JMPT R3 #002C - 0x1C0C051B, // 002A EQ R3 R2 K27 - 0x780E0002, // 002B JMPF R3 #002F - 0x8C0C011C, // 002C GETMET R3 R0 K28 - 0x7C0C0200, // 002D CALL R3 1 - 0x70020030, // 002E JMP #0060 - 0x8C0C010D, // 002F GETMET R3 R0 K13 - 0x5C140400, // 0030 MOVE R5 R2 - 0x7C0C0400, // 0031 CALL R3 2 - 0x780E0002, // 0032 JMPF R3 #0036 - 0x8C0C011D, // 0033 GETMET R3 R0 K29 - 0x7C0C0200, // 0034 CALL R3 1 - 0x70020029, // 0035 JMP #0060 - 0x1C0C051E, // 0036 EQ R3 R2 K30 - 0x740E0001, // 0037 JMPT R3 #003A - 0x1C0C051F, // 0038 EQ R3 R2 K31 - 0x780E001D, // 0039 JMPF R3 #0058 - 0x1C0C051E, // 003A EQ R3 R2 K30 - 0x780E0008, // 003B JMPF R3 #0045 - 0x8C0C0107, // 003C GETMET R3 R0 K7 - 0x7C0C0200, // 003D CALL R3 1 - 0x1C0C071E, // 003E EQ R3 R3 K30 - 0x780E0004, // 003F JMPF R3 #0045 - 0x8C0C0120, // 0040 GETMET R3 R0 K32 - 0x58140014, // 0041 LDCONST R5 K20 - 0x7C0C0400, // 0042 CALL R3 2 - 0x1C0C071E, // 0043 EQ R3 R3 K30 - 0x740E000A, // 0044 JMPT R3 #0050 - 0x1C0C051F, // 0045 EQ R3 R2 K31 - 0x780E000C, // 0046 JMPF R3 #0054 - 0x8C0C0107, // 0047 GETMET R3 R0 K7 - 0x7C0C0200, // 0048 CALL R3 1 - 0x1C0C071F, // 0049 EQ R3 R3 K31 - 0x780E0008, // 004A JMPF R3 #0054 - 0x8C0C0120, // 004B GETMET R3 R0 K32 - 0x58140014, // 004C LDCONST R5 K20 - 0x7C0C0400, // 004D CALL R3 2 - 0x1C0C071F, // 004E EQ R3 R3 K31 - 0x780E0003, // 004F JMPF R3 #0054 - 0x8C0C0121, // 0050 GETMET R3 R0 K33 - 0x5C140400, // 0051 MOVE R5 R2 - 0x7C0C0400, // 0052 CALL R3 2 - 0x70020002, // 0053 JMP #0057 - 0x8C0C0122, // 0054 GETMET R3 R0 K34 - 0x5C140400, // 0055 MOVE R5 R2 - 0x7C0C0400, // 0056 CALL R3 2 - 0x70020007, // 0057 JMP #0060 - 0x1C0C0523, // 0058 EQ R3 R2 K35 - 0x780E0002, // 0059 JMPF R3 #005D - 0x8C0C0124, // 005A GETMET R3 R0 K36 - 0x7C0C0200, // 005B CALL R3 1 - 0x70020002, // 005C JMP #0060 - 0x8C0C0125, // 005D GETMET R3 R0 K37 - 0x5C140400, // 005E MOVE R5 R2 - 0x7C0C0400, // 005F CALL R3 2 - 0x80000000, // 0060 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_hex_color_0x -********************************************************************/ -be_local_closure(class_DSLLexer_scan_hex_color_0x, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_hex_color_0x), - &be_const_str_solidified, - ( &(const binstruction[43]) { /* code */ - 0x88040103, // 0000 GETMBR R1 R0 K3 - 0x04040314, // 0001 SUB R1 R1 K20 - 0x8808010E, // 0002 GETMBR R2 R0 K14 - 0x04080514, // 0003 SUB R2 R2 K20 - 0x8C0C0106, // 0004 GETMET R3 R0 K6 - 0x7C0C0200, // 0005 CALL R3 1 - 0x580C0026, // 0006 LDCONST R3 K38 - 0x8C100127, // 0007 GETMET R4 R0 K39 - 0x7C100200, // 0008 CALL R4 1 - 0x74120008, // 0009 JMPT R4 #0013 - 0x8C100128, // 000A GETMET R4 R0 K40 - 0x8C180107, // 000B GETMET R6 R0 K7 - 0x7C180200, // 000C CALL R6 1 - 0x7C100400, // 000D CALL R4 2 - 0x78120003, // 000E JMPF R4 #0013 - 0x8C100106, // 000F GETMET R4 R0 K6 - 0x7C100200, // 0010 CALL R4 1 - 0x000C0714, // 0011 ADD R3 R3 K20 - 0x7001FFF3, // 0012 JMP #0007 - 0x88100103, // 0013 GETMBR R4 R0 K3 - 0x04100914, // 0014 SUB R4 R4 K20 - 0x40100204, // 0015 CONNECT R4 R1 R4 - 0x88140102, // 0016 GETMBR R5 R0 K2 - 0x94100A04, // 0017 GETIDX R4 R5 R4 - 0x54160005, // 0018 LDINT R5 6 - 0x1C140605, // 0019 EQ R5 R3 R5 - 0x74160002, // 001A JMPT R5 #001E - 0x54160007, // 001B LDINT R5 8 - 0x1C140605, // 001C EQ R5 R3 R5 - 0x78160007, // 001D JMPF R5 #0026 - 0x8C140113, // 001E GETMET R5 R0 K19 - 0x541E0003, // 001F LDINT R7 4 - 0x5C200800, // 0020 MOVE R8 R4 - 0x6024000C, // 0021 GETGBL R9 G12 - 0x5C280800, // 0022 MOVE R10 R4 - 0x7C240200, // 0023 CALL R9 1 - 0x7C140800, // 0024 CALL R5 4 - 0x70020003, // 0025 JMP #002A - 0x8C140129, // 0026 GETMET R5 R0 K41 - 0x001E5404, // 0027 ADD R7 K42 R4 - 0x001C0F2B, // 0028 ADD R7 R7 K43 - 0x7C140400, // 0029 CALL R5 2 - 0x80000000, // 002A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_variable_reference -********************************************************************/ -be_local_closure(class_DSLLexer_scan_variable_reference, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_variable_reference), - &be_const_str_solidified, - ( &(const binstruction[50]) { /* code */ - 0x88040103, // 0000 GETMBR R1 R0 K3 - 0x04040314, // 0001 SUB R1 R1 K20 - 0x8808010E, // 0002 GETMBR R2 R0 K14 - 0x04080514, // 0003 SUB R2 R2 K20 - 0x8C0C0127, // 0004 GETMET R3 R0 K39 - 0x7C0C0200, // 0005 CALL R3 1 - 0x740E000B, // 0006 JMPT R3 #0013 - 0x8C0C010C, // 0007 GETMET R3 R0 K12 - 0x8C140107, // 0008 GETMET R5 R0 K7 - 0x7C140200, // 0009 CALL R5 1 - 0x7C0C0400, // 000A CALL R3 2 - 0x740E0004, // 000B JMPT R3 #0011 - 0x8C0C0107, // 000C GETMET R3 R0 K7 - 0x7C0C0200, // 000D CALL R3 1 - 0x1C0C071B, // 000E EQ R3 R3 K27 - 0x740E0000, // 000F JMPT R3 #0011 - 0x500C0001, // 0010 LDBOOL R3 0 1 - 0x500C0200, // 0011 LDBOOL R3 1 0 - 0x740E0002, // 0012 JMPT R3 #0016 - 0x8C0C0129, // 0013 GETMET R3 R0 K41 - 0x5814002C, // 0014 LDCONST R5 K44 - 0x7C0C0400, // 0015 CALL R3 2 - 0x8C0C0127, // 0016 GETMET R3 R0 K39 - 0x7C0C0200, // 0017 CALL R3 1 - 0x740E000B, // 0018 JMPT R3 #0025 - 0x8C0C012D, // 0019 GETMET R3 R0 K45 - 0x8C140107, // 001A GETMET R5 R0 K7 - 0x7C140200, // 001B CALL R5 1 - 0x7C0C0400, // 001C CALL R3 2 - 0x740E0003, // 001D JMPT R3 #0022 - 0x8C0C0107, // 001E GETMET R3 R0 K7 - 0x7C0C0200, // 001F CALL R3 1 - 0x1C0C071B, // 0020 EQ R3 R3 K27 - 0x780E0002, // 0021 JMPF R3 #0025 - 0x8C0C0106, // 0022 GETMET R3 R0 K6 - 0x7C0C0200, // 0023 CALL R3 1 - 0x7001FFF0, // 0024 JMP #0016 - 0x880C0103, // 0025 GETMBR R3 R0 K3 - 0x040C0714, // 0026 SUB R3 R3 K20 - 0x400C0203, // 0027 CONNECT R3 R1 R3 - 0x88100102, // 0028 GETMBR R4 R0 K2 - 0x940C0803, // 0029 GETIDX R3 R4 R3 - 0x8C100113, // 002A GETMET R4 R0 K19 - 0x541A0023, // 002B LDINT R6 36 - 0x5C1C0600, // 002C MOVE R7 R3 - 0x6020000C, // 002D GETGBL R8 G12 - 0x5C240600, // 002E MOVE R9 R3 - 0x7C200200, // 002F CALL R8 1 - 0x7C100800, // 0030 CALL R4 4 - 0x80000000, // 0031 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_operator_or_delimiter -********************************************************************/ -be_local_closure(class_DSLLexer_scan_operator_or_delimiter, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_operator_or_delimiter), - &be_const_str_solidified, - ( &(const binstruction[280]) { /* code */ - 0x8808010E, // 0000 GETMBR R2 R0 K14 - 0x04080514, // 0001 SUB R2 R2 K20 - 0x1C0C032E, // 0002 EQ R3 R1 K46 - 0x780E000F, // 0003 JMPF R3 #0014 - 0x8C0C012F, // 0004 GETMET R3 R0 K47 - 0x5814002E, // 0005 LDCONST R5 K46 - 0x7C0C0400, // 0006 CALL R3 2 - 0x780E0005, // 0007 JMPF R3 #000E - 0x8C0C0113, // 0008 GETMET R3 R0 K19 - 0x5416000E, // 0009 LDINT R5 15 - 0x58180030, // 000A LDCONST R6 K48 - 0x581C0031, // 000B LDCONST R7 K49 - 0x7C0C0800, // 000C CALL R3 4 - 0x70020004, // 000D JMP #0013 - 0x8C0C0113, // 000E GETMET R3 R0 K19 - 0x54160007, // 000F LDINT R5 8 - 0x5818002E, // 0010 LDCONST R6 K46 - 0x581C0014, // 0011 LDCONST R7 K20 - 0x7C0C0800, // 0012 CALL R3 4 - 0x70020102, // 0013 JMP #0117 - 0x1C0C0332, // 0014 EQ R3 R1 K50 - 0x780E000F, // 0015 JMPF R3 #0026 - 0x8C0C012F, // 0016 GETMET R3 R0 K47 - 0x5814002E, // 0017 LDCONST R5 K46 - 0x7C0C0400, // 0018 CALL R3 2 - 0x780E0005, // 0019 JMPF R3 #0020 - 0x8C0C0113, // 001A GETMET R3 R0 K19 - 0x5416000F, // 001B LDINT R5 16 - 0x58180033, // 001C LDCONST R6 K51 - 0x581C0031, // 001D LDCONST R7 K49 - 0x7C0C0800, // 001E CALL R3 4 - 0x70020004, // 001F JMP #0025 - 0x8C0C0113, // 0020 GETMET R3 R0 K19 - 0x54160016, // 0021 LDINT R5 23 - 0x58180032, // 0022 LDCONST R6 K50 - 0x581C0014, // 0023 LDCONST R7 K20 - 0x7C0C0800, // 0024 CALL R3 4 - 0x700200F0, // 0025 JMP #0117 - 0x1C0C0334, // 0026 EQ R3 R1 K52 - 0x780E0017, // 0027 JMPF R3 #0040 - 0x8C0C012F, // 0028 GETMET R3 R0 K47 - 0x5814002E, // 0029 LDCONST R5 K46 - 0x7C0C0400, // 002A CALL R3 2 - 0x780E0005, // 002B JMPF R3 #0032 - 0x8C0C0113, // 002C GETMET R3 R0 K19 - 0x54160011, // 002D LDINT R5 18 - 0x58180035, // 002E LDCONST R6 K53 - 0x581C0031, // 002F LDCONST R7 K49 - 0x7C0C0800, // 0030 CALL R3 4 - 0x7002000C, // 0031 JMP #003F - 0x8C0C012F, // 0032 GETMET R3 R0 K47 - 0x58140034, // 0033 LDCONST R5 K52 - 0x7C0C0400, // 0034 CALL R3 2 - 0x780E0003, // 0035 JMPF R3 #003A - 0x8C0C0129, // 0036 GETMET R3 R0 K41 - 0x58140036, // 0037 LDCONST R5 K54 - 0x7C0C0400, // 0038 CALL R3 2 - 0x70020004, // 0039 JMP #003F - 0x8C0C0113, // 003A GETMET R3 R0 K19 - 0x54160010, // 003B LDINT R5 17 - 0x58180034, // 003C LDCONST R6 K52 - 0x581C0014, // 003D LDCONST R7 K20 - 0x7C0C0800, // 003E CALL R3 4 - 0x700200D6, // 003F JMP #0117 - 0x1C0C0337, // 0040 EQ R3 R1 K55 - 0x780E0017, // 0041 JMPF R3 #005A - 0x8C0C012F, // 0042 GETMET R3 R0 K47 - 0x5814002E, // 0043 LDCONST R5 K46 - 0x7C0C0400, // 0044 CALL R3 2 - 0x780E0005, // 0045 JMPF R3 #004C - 0x8C0C0113, // 0046 GETMET R3 R0 K19 - 0x54160013, // 0047 LDINT R5 20 - 0x58180038, // 0048 LDCONST R6 K56 - 0x581C0031, // 0049 LDCONST R7 K49 - 0x7C0C0800, // 004A CALL R3 4 - 0x7002000C, // 004B JMP #0059 - 0x8C0C012F, // 004C GETMET R3 R0 K47 - 0x58140037, // 004D LDCONST R5 K55 - 0x7C0C0400, // 004E CALL R3 2 - 0x780E0003, // 004F JMPF R3 #0054 - 0x8C0C0129, // 0050 GETMET R3 R0 K41 - 0x58140039, // 0051 LDCONST R5 K57 - 0x7C0C0400, // 0052 CALL R3 2 - 0x70020004, // 0053 JMP #0059 - 0x8C0C0113, // 0054 GETMET R3 R0 K19 - 0x54160012, // 0055 LDINT R5 19 - 0x58180037, // 0056 LDCONST R6 K55 - 0x581C0014, // 0057 LDCONST R7 K20 - 0x7C0C0800, // 0058 CALL R3 4 - 0x700200BC, // 0059 JMP #0117 - 0x1C0C033A, // 005A EQ R3 R1 K58 - 0x780E000D, // 005B JMPF R3 #006A - 0x8C0C012F, // 005C GETMET R3 R0 K47 - 0x5814003A, // 005D LDCONST R5 K58 - 0x7C0C0400, // 005E CALL R3 2 - 0x780E0005, // 005F JMPF R3 #0066 - 0x8C0C0113, // 0060 GETMET R3 R0 K19 - 0x54160014, // 0061 LDINT R5 21 - 0x5818003B, // 0062 LDCONST R6 K59 - 0x581C0031, // 0063 LDCONST R7 K49 - 0x7C0C0800, // 0064 CALL R3 4 - 0x70020002, // 0065 JMP #0069 - 0x8C0C0129, // 0066 GETMET R3 R0 K41 - 0x5814003C, // 0067 LDCONST R5 K60 - 0x7C0C0400, // 0068 CALL R3 2 - 0x700200AC, // 0069 JMP #0117 - 0x1C0C033D, // 006A EQ R3 R1 K61 - 0x780E000D, // 006B JMPF R3 #007A - 0x8C0C012F, // 006C GETMET R3 R0 K47 - 0x5814003D, // 006D LDCONST R5 K61 - 0x7C0C0400, // 006E CALL R3 2 - 0x780E0005, // 006F JMPF R3 #0076 - 0x8C0C0113, // 0070 GETMET R3 R0 K19 - 0x54160015, // 0071 LDINT R5 22 - 0x5818003E, // 0072 LDCONST R6 K62 - 0x581C0031, // 0073 LDCONST R7 K49 - 0x7C0C0800, // 0074 CALL R3 4 - 0x70020002, // 0075 JMP #0079 - 0x8C0C0129, // 0076 GETMET R3 R0 K41 - 0x5814003F, // 0077 LDCONST R5 K63 - 0x7C0C0400, // 0078 CALL R3 2 - 0x7002009C, // 0079 JMP #0117 - 0x1C0C0340, // 007A EQ R3 R1 K64 - 0x780E000F, // 007B JMPF R3 #008C - 0x8C0C012F, // 007C GETMET R3 R0 K47 - 0x58140037, // 007D LDCONST R5 K55 - 0x7C0C0400, // 007E CALL R3 2 - 0x780E0005, // 007F JMPF R3 #0086 - 0x8C0C0113, // 0080 GETMET R3 R0 K19 - 0x54160021, // 0081 LDINT R5 34 - 0x58180041, // 0082 LDCONST R6 K65 - 0x581C0031, // 0083 LDCONST R7 K49 - 0x7C0C0800, // 0084 CALL R3 4 - 0x70020004, // 0085 JMP #008B - 0x8C0C0113, // 0086 GETMET R3 R0 K19 - 0x54160009, // 0087 LDINT R5 10 - 0x58180040, // 0088 LDCONST R6 K64 - 0x581C0014, // 0089 LDCONST R7 K20 - 0x7C0C0800, // 008A CALL R3 4 - 0x7002008A, // 008B JMP #0117 - 0x1C0C0342, // 008C EQ R3 R1 K66 - 0x780E0005, // 008D JMPF R3 #0094 - 0x8C0C0113, // 008E GETMET R3 R0 K19 - 0x54160008, // 008F LDINT R5 9 - 0x58180042, // 0090 LDCONST R6 K66 - 0x581C0014, // 0091 LDCONST R7 K20 - 0x7C0C0800, // 0092 CALL R3 4 - 0x70020082, // 0093 JMP #0117 - 0x1C0C0343, // 0094 EQ R3 R1 K67 - 0x780E0005, // 0095 JMPF R3 #009C - 0x8C0C0113, // 0096 GETMET R3 R0 K19 - 0x5416000A, // 0097 LDINT R5 11 - 0x58180043, // 0098 LDCONST R6 K67 - 0x581C0014, // 0099 LDCONST R7 K20 - 0x7C0C0800, // 009A CALL R3 4 - 0x7002007A, // 009B JMP #0117 - 0x1C0C0344, // 009C EQ R3 R1 K68 - 0x780E0005, // 009D JMPF R3 #00A4 - 0x8C0C0113, // 009E GETMET R3 R0 K19 - 0x5416000B, // 009F LDINT R5 12 - 0x58180044, // 00A0 LDCONST R6 K68 - 0x581C0014, // 00A1 LDCONST R7 K20 - 0x7C0C0800, // 00A2 CALL R3 4 - 0x70020072, // 00A3 JMP #0117 - 0x1C0C0345, // 00A4 EQ R3 R1 K69 - 0x780E0005, // 00A5 JMPF R3 #00AC - 0x8C0C0113, // 00A6 GETMET R3 R0 K19 - 0x5416000C, // 00A7 LDINT R5 13 - 0x58180045, // 00A8 LDCONST R6 K69 - 0x581C0014, // 00A9 LDCONST R7 K20 - 0x7C0C0800, // 00AA CALL R3 4 - 0x7002006A, // 00AB JMP #0117 - 0x1C0C0346, // 00AC EQ R3 R1 K70 - 0x780E0005, // 00AD JMPF R3 #00B4 - 0x8C0C0113, // 00AE GETMET R3 R0 K19 - 0x5416000D, // 00AF LDINT R5 14 - 0x58180046, // 00B0 LDCONST R6 K70 - 0x581C0014, // 00B1 LDCONST R7 K20 - 0x7C0C0800, // 00B2 CALL R3 4 - 0x70020062, // 00B3 JMP #0117 - 0x1C0C0347, // 00B4 EQ R3 R1 K71 - 0x780E0005, // 00B5 JMPF R3 #00BC - 0x8C0C0113, // 00B6 GETMET R3 R0 K19 - 0x54160017, // 00B7 LDINT R5 24 - 0x58180047, // 00B8 LDCONST R6 K71 - 0x581C0014, // 00B9 LDCONST R7 K20 - 0x7C0C0800, // 00BA CALL R3 4 - 0x7002005A, // 00BB JMP #0117 - 0x1C0C0348, // 00BC EQ R3 R1 K72 - 0x780E0005, // 00BD JMPF R3 #00C4 - 0x8C0C0113, // 00BE GETMET R3 R0 K19 - 0x54160018, // 00BF LDINT R5 25 - 0x58180048, // 00C0 LDCONST R6 K72 - 0x581C0014, // 00C1 LDCONST R7 K20 - 0x7C0C0800, // 00C2 CALL R3 4 - 0x70020052, // 00C3 JMP #0117 - 0x1C0C0349, // 00C4 EQ R3 R1 K73 - 0x780E0005, // 00C5 JMPF R3 #00CC - 0x8C0C0113, // 00C6 GETMET R3 R0 K19 - 0x54160019, // 00C7 LDINT R5 26 - 0x58180049, // 00C8 LDCONST R6 K73 - 0x581C0014, // 00C9 LDCONST R7 K20 - 0x7C0C0800, // 00CA CALL R3 4 - 0x7002004A, // 00CB JMP #0117 - 0x1C0C034A, // 00CC EQ R3 R1 K74 - 0x780E0005, // 00CD JMPF R3 #00D4 - 0x8C0C0113, // 00CE GETMET R3 R0 K19 - 0x5416001A, // 00CF LDINT R5 27 - 0x5818004A, // 00D0 LDCONST R6 K74 - 0x581C0014, // 00D1 LDCONST R7 K20 - 0x7C0C0800, // 00D2 CALL R3 4 - 0x70020042, // 00D3 JMP #0117 - 0x1C0C034B, // 00D4 EQ R3 R1 K75 - 0x780E0005, // 00D5 JMPF R3 #00DC - 0x8C0C0113, // 00D6 GETMET R3 R0 K19 - 0x5416001B, // 00D7 LDINT R5 28 - 0x5818004B, // 00D8 LDCONST R6 K75 - 0x581C0014, // 00D9 LDCONST R7 K20 - 0x7C0C0800, // 00DA CALL R3 4 - 0x7002003A, // 00DB JMP #0117 - 0x1C0C034C, // 00DC EQ R3 R1 K76 - 0x780E0005, // 00DD JMPF R3 #00E4 - 0x8C0C0113, // 00DE GETMET R3 R0 K19 - 0x5416001C, // 00DF LDINT R5 29 - 0x5818004C, // 00E0 LDCONST R6 K76 - 0x581C0014, // 00E1 LDCONST R7 K20 - 0x7C0C0800, // 00E2 CALL R3 4 - 0x70020032, // 00E3 JMP #0117 - 0x1C0C034D, // 00E4 EQ R3 R1 K77 - 0x780E0005, // 00E5 JMPF R3 #00EC - 0x8C0C0113, // 00E6 GETMET R3 R0 K19 - 0x5416001D, // 00E7 LDINT R5 30 - 0x5818004D, // 00E8 LDCONST R6 K77 - 0x581C0014, // 00E9 LDCONST R7 K20 - 0x7C0C0800, // 00EA CALL R3 4 - 0x7002002A, // 00EB JMP #0117 - 0x1C0C034E, // 00EC EQ R3 R1 K78 - 0x780E0005, // 00ED JMPF R3 #00F4 - 0x8C0C0113, // 00EE GETMET R3 R0 K19 - 0x5416001E, // 00EF LDINT R5 31 - 0x5818004E, // 00F0 LDCONST R6 K78 - 0x581C0014, // 00F1 LDCONST R7 K20 - 0x7C0C0800, // 00F2 CALL R3 4 - 0x70020022, // 00F3 JMP #0117 - 0x1C0C034F, // 00F4 EQ R3 R1 K79 - 0x780E0005, // 00F5 JMPF R3 #00FC - 0x8C0C0113, // 00F6 GETMET R3 R0 K19 - 0x5416001F, // 00F7 LDINT R5 32 - 0x5818004F, // 00F8 LDCONST R6 K79 - 0x581C0014, // 00F9 LDCONST R7 K20 - 0x7C0C0800, // 00FA CALL R3 4 - 0x7002001A, // 00FB JMP #0117 - 0x1C0C0350, // 00FC EQ R3 R1 K80 - 0x780E0014, // 00FD JMPF R3 #0113 - 0x8C0C012F, // 00FE GETMET R3 R0 K47 - 0x58140050, // 00FF LDCONST R5 K80 - 0x7C0C0400, // 0100 CALL R3 2 - 0x780E000A, // 0101 JMPF R3 #010D - 0x8C0C0113, // 0102 GETMET R3 R0 K19 - 0x54160020, // 0103 LDINT R5 33 - 0x58180050, // 0104 LDCONST R6 K80 - 0x581C0014, // 0105 LDCONST R7 K20 - 0x7C0C0800, // 0106 CALL R3 4 - 0x8C0C0113, // 0107 GETMET R3 R0 K19 - 0x54160020, // 0108 LDINT R5 33 - 0x58180050, // 0109 LDCONST R6 K80 - 0x581C0014, // 010A LDCONST R7 K20 - 0x7C0C0800, // 010B CALL R3 4 - 0x70020004, // 010C JMP #0112 - 0x8C0C0113, // 010D GETMET R3 R0 K19 - 0x54160020, // 010E LDINT R5 33 - 0x58180050, // 010F LDCONST R6 K80 - 0x581C0014, // 0110 LDCONST R7 K20 - 0x7C0C0800, // 0111 CALL R3 4 - 0x70020003, // 0112 JMP #0117 - 0x8C0C0129, // 0113 GETMET R3 R0 K41 - 0x0016A201, // 0114 ADD R5 K81 R1 - 0x00140B1F, // 0115 ADD R5 R5 K31 - 0x7C0C0400, // 0116 CALL R3 2 - 0x80000000, // 0117 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_alpha -********************************************************************/ -be_local_closure(class_DSLLexer_is_alpha, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(is_alpha), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x28080352, // 0000 GE R2 R1 K82 - 0x780A0001, // 0001 JMPF R2 #0004 - 0x18080353, // 0002 LE R2 R1 K83 - 0x740A0004, // 0003 JMPT R2 #0009 - 0x28080354, // 0004 GE R2 R1 K84 - 0x780A0001, // 0005 JMPF R2 #0008 - 0x18080355, // 0006 LE R2 R1 K85 - 0x740A0000, // 0007 JMPT R2 #0009 - 0x50080001, // 0008 LDBOOL R2 0 1 - 0x50080200, // 0009 LDBOOL R2 1 0 - 0x80040400, // 000A RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_string -********************************************************************/ -be_local_closure(class_DSLLexer_scan_string, /* name */ - be_nested_proto( - 10, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_string), - &be_const_str_solidified, - ( &(const binstruction[72]) { /* code */ - 0x88080103, // 0000 GETMBR R2 R0 K3 - 0x04080514, // 0001 SUB R2 R2 K20 - 0x880C010E, // 0002 GETMBR R3 R0 K14 - 0x040C0714, // 0003 SUB R3 R3 K20 - 0x5810000B, // 0004 LDCONST R4 K11 - 0x8C140127, // 0005 GETMET R5 R0 K39 - 0x7C140200, // 0006 CALL R5 1 - 0x7416002F, // 0007 JMPT R5 #0038 - 0x8C140107, // 0008 GETMET R5 R0 K7 - 0x7C140200, // 0009 CALL R5 1 - 0x20140A01, // 000A NE R5 R5 R1 - 0x7816002B, // 000B JMPF R5 #0038 - 0x8C140106, // 000C GETMET R5 R0 K6 - 0x7C140200, // 000D CALL R5 1 - 0x1C180B56, // 000E EQ R6 R5 K86 - 0x781A001D, // 000F JMPF R6 #002E - 0x8C180127, // 0010 GETMET R6 R0 K39 - 0x7C180200, // 0011 CALL R6 1 - 0x741A0018, // 0012 JMPT R6 #002C - 0x8C180106, // 0013 GETMET R6 R0 K6 - 0x7C180200, // 0014 CALL R6 1 - 0x1C1C0D57, // 0015 EQ R7 R6 K87 - 0x781E0001, // 0016 JMPF R7 #0019 - 0x00100912, // 0017 ADD R4 R4 K18 - 0x70020011, // 0018 JMP #002B - 0x1C1C0D58, // 0019 EQ R7 R6 K88 - 0x781E0001, // 001A JMPF R7 #001D - 0x00100910, // 001B ADD R4 R4 K16 - 0x7002000D, // 001C JMP #002B - 0x1C1C0D59, // 001D EQ R7 R6 K89 - 0x781E0001, // 001E JMPF R7 #0021 - 0x00100911, // 001F ADD R4 R4 K17 - 0x70020009, // 0020 JMP #002B - 0x1C1C0D56, // 0021 EQ R7 R6 K86 - 0x781E0001, // 0022 JMPF R7 #0025 - 0x00100956, // 0023 ADD R4 R4 K86 - 0x70020005, // 0024 JMP #002B - 0x1C1C0C01, // 0025 EQ R7 R6 R1 - 0x781E0001, // 0026 JMPF R7 #0029 - 0x00100801, // 0027 ADD R4 R4 R1 - 0x70020001, // 0028 JMP #002B - 0x00100956, // 0029 ADD R4 R4 K86 - 0x00100806, // 002A ADD R4 R4 R6 - 0x70020000, // 002B JMP #002D - 0x00100956, // 002C ADD R4 R4 K86 - 0x70020008, // 002D JMP #0037 - 0x1C180B12, // 002E EQ R6 R5 K18 - 0x781A0005, // 002F JMPF R6 #0036 - 0x88180115, // 0030 GETMBR R6 R0 K21 - 0x00180D14, // 0031 ADD R6 R6 K20 - 0x90022A06, // 0032 SETMBR R0 K21 R6 - 0x90021D14, // 0033 SETMBR R0 K14 K20 - 0x00100805, // 0034 ADD R4 R4 R5 - 0x70020000, // 0035 JMP #0037 - 0x00100805, // 0036 ADD R4 R4 R5 - 0x7001FFCC, // 0037 JMP #0005 - 0x8C140127, // 0038 GETMET R5 R0 K39 - 0x7C140200, // 0039 CALL R5 1 - 0x78160003, // 003A JMPF R5 #003F - 0x8C140129, // 003B GETMET R5 R0 K41 - 0x581C005A, // 003C LDCONST R7 K90 - 0x7C140400, // 003D CALL R5 2 - 0x70020007, // 003E JMP #0047 - 0x8C140106, // 003F GETMET R5 R0 K6 - 0x7C140200, // 0040 CALL R5 1 - 0x8C140113, // 0041 GETMET R5 R0 K19 - 0x581C005B, // 0042 LDCONST R7 K91 - 0x5C200800, // 0043 MOVE R8 R4 - 0x88240103, // 0044 GETMBR R9 R0 K3 - 0x04241202, // 0045 SUB R9 R9 R2 - 0x7C140800, // 0046 CALL R5 4 - 0x80000000, // 0047 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: reset -********************************************************************/ -be_local_closure(class_DSLLexer_reset, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(reset), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x5C080200, // 0003 MOVE R2 R1 - 0x70020000, // 0004 JMP #0006 - 0x5808000B, // 0005 LDCONST R2 K11 - 0x90020402, // 0006 SETMBR R0 K2 R2 - 0x90020726, // 0007 SETMBR R0 K3 K38 - 0x90022B14, // 0008 SETMBR R0 K21 K20 - 0x90021D14, // 0009 SETMBR R0 K14 K20 - 0x60080012, // 000A GETGBL R2 G18 - 0x7C080000, // 000B CALL R2 0 - 0x9002B802, // 000C SETMBR R0 K92 R2 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: peek_next -********************************************************************/ -be_local_closure(class_DSLLexer_peek_next, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(peek_next), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x88040103, // 0000 GETMBR R1 R0 K3 - 0x00040314, // 0001 ADD R1 R1 K20 - 0x6008000C, // 0002 GETGBL R2 G12 - 0x880C0102, // 0003 GETMBR R3 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x28040202, // 0005 GE R1 R1 R2 - 0x78060000, // 0006 JMPF R1 #0008 - 0x80061600, // 0007 RET 1 K11 - 0x88040103, // 0008 GETMBR R1 R0 K3 - 0x00040314, // 0009 ADD R1 R1 K20 - 0x88080102, // 000A GETMBR R2 R0 K2 - 0x94040401, // 000B GETIDX R1 R2 R1 - 0x80040200, // 000C RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_digit -********************************************************************/ -be_local_closure(class_DSLLexer_is_digit, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(is_digit), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x28080318, // 0000 GE R2 R1 K24 - 0x780A0001, // 0001 JMPF R2 #0004 - 0x1808035D, // 0002 LE R2 R1 K93 - 0x740A0000, // 0003 JMPT R2 #0005 - 0x50080001, // 0004 LDBOOL R2 0 1 - 0x50080200, // 0005 LDBOOL R2 1 0 - 0x80040400, // 0006 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tokenize -********************************************************************/ -be_local_closure(class_DSLLexer_tokenize, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(tokenize), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x60040012, // 0000 GETGBL R1 G18 - 0x7C040000, // 0001 CALL R1 0 - 0x9002B801, // 0002 SETMBR R0 K92 R1 - 0x90020726, // 0003 SETMBR R0 K3 K38 - 0x90022B14, // 0004 SETMBR R0 K21 K20 - 0x90021D14, // 0005 SETMBR R0 K14 K20 - 0x8C040127, // 0006 GETMET R1 R0 K39 - 0x7C040200, // 0007 CALL R1 1 - 0x74060002, // 0008 JMPT R1 #000C - 0x8C04015E, // 0009 GETMET R1 R0 K94 - 0x7C040200, // 000A CALL R1 1 - 0x7001FFF9, // 000B JMP #0006 - 0x8C040113, // 000C GETMET R1 R0 K19 - 0x540E0025, // 000D LDINT R3 38 - 0x5810000B, // 000E LDCONST R4 K11 - 0x58140026, // 000F LDCONST R5 K38 - 0x7C040800, // 0010 CALL R1 4 - 0x8804015C, // 0011 GETMBR R1 R0 K92 - 0x80040200, // 0012 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_hex_digit -********************************************************************/ -be_local_closure(class_DSLLexer_is_hex_digit, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(is_hex_digit), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x8C08010D, // 0000 GETMET R2 R0 K13 - 0x5C100200, // 0001 MOVE R4 R1 - 0x7C080400, // 0002 CALL R2 2 - 0x740A0008, // 0003 JMPT R2 #000D - 0x28080352, // 0004 GE R2 R1 K82 - 0x780A0001, // 0005 JMPF R2 #0008 - 0x1808035F, // 0006 LE R2 R1 K95 - 0x740A0004, // 0007 JMPT R2 #000D - 0x28080354, // 0008 GE R2 R1 K84 - 0x780A0001, // 0009 JMPF R2 #000C - 0x18080360, // 000A LE R2 R1 K96 - 0x740A0000, // 000B JMPT R2 #000D - 0x50080001, // 000C LDBOOL R2 0 1 - 0x50080200, // 000D LDBOOL R2 1 0 - 0x80040400, // 000E RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_comment -********************************************************************/ -be_local_closure(class_DSLLexer_scan_comment, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_comment), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x88040103, // 0000 GETMBR R1 R0 K3 - 0x04040314, // 0001 SUB R1 R1 K20 - 0x8808010E, // 0002 GETMBR R2 R0 K14 - 0x04080514, // 0003 SUB R2 R2 K20 - 0x8C0C0127, // 0004 GETMET R3 R0 K39 - 0x7C0C0200, // 0005 CALL R3 1 - 0x740E0006, // 0006 JMPT R3 #000E - 0x8C0C0107, // 0007 GETMET R3 R0 K7 - 0x7C0C0200, // 0008 CALL R3 1 - 0x200C0712, // 0009 NE R3 R3 K18 - 0x780E0002, // 000A JMPF R3 #000E - 0x8C0C0106, // 000B GETMET R3 R0 K6 - 0x7C0C0200, // 000C CALL R3 1 - 0x7001FFF5, // 000D JMP #0004 - 0x880C0103, // 000E GETMBR R3 R0 K3 - 0x040C0714, // 000F SUB R3 R3 K20 - 0x400C0203, // 0010 CONNECT R3 R1 R3 - 0x88100102, // 0011 GETMBR R4 R0 K2 - 0x940C0803, // 0012 GETIDX R3 R4 R3 - 0x8C100113, // 0013 GETMET R4 R0 K19 - 0x541A0024, // 0014 LDINT R6 37 - 0x5C1C0600, // 0015 MOVE R7 R3 - 0x88200103, // 0016 GETMBR R8 R0 K3 - 0x04201001, // 0017 SUB R8 R8 R1 - 0x7C100800, // 0018 CALL R4 4 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_time_suffix -********************************************************************/ -be_local_closure(class_DSLLexer_check_time_suffix, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(check_time_suffix), - &be_const_str_solidified, - ( &(const binstruction[33]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080127, // 0001 GETMET R2 R0 K39 - 0x7C080200, // 0002 CALL R2 1 - 0x780A0001, // 0003 JMPF R2 #0006 - 0x50080000, // 0004 LDBOOL R2 0 0 - 0x80040400, // 0005 RET 1 R2 - 0x88080103, // 0006 GETMBR R2 R0 K3 - 0x40080504, // 0007 CONNECT R2 R2 K4 - 0x880C0102, // 0008 GETMBR R3 R0 K2 - 0x94080602, // 0009 GETIDX R2 R3 R2 - 0x8C0C0301, // 000A GETMET R3 R1 K1 - 0x5C140400, // 000B MOVE R5 R2 - 0x58180005, // 000C LDCONST R6 K5 - 0x7C0C0600, // 000D CALL R3 3 - 0x740E000F, // 000E JMPT R3 #001F - 0x8C0C0301, // 000F GETMET R3 R1 K1 - 0x5C140400, // 0010 MOVE R5 R2 - 0x58180008, // 0011 LDCONST R6 K8 - 0x7C0C0600, // 0012 CALL R3 3 - 0x740E000A, // 0013 JMPT R3 #001F - 0x8C0C0301, // 0014 GETMET R3 R1 K1 - 0x5C140400, // 0015 MOVE R5 R2 - 0x58180009, // 0016 LDCONST R6 K9 - 0x7C0C0600, // 0017 CALL R3 3 - 0x740E0005, // 0018 JMPT R3 #001F - 0x8C0C0301, // 0019 GETMET R3 R1 K1 - 0x5C140400, // 001A MOVE R5 R2 - 0x5818000A, // 001B LDCONST R6 K10 - 0x7C0C0600, // 001C CALL R3 3 - 0x740E0000, // 001D JMPT R3 #001F - 0x500C0001, // 001E LDBOOL R3 0 1 - 0x500C0200, // 001F LDBOOL R3 1 0 - 0x80040600, // 0020 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_number -********************************************************************/ -be_local_closure(class_DSLLexer_scan_number, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_number), - &be_const_str_solidified, - ( &(const binstruction[113]) { /* code */ - 0x88040103, // 0000 GETMBR R1 R0 K3 - 0x04040314, // 0001 SUB R1 R1 K20 - 0x8808010E, // 0002 GETMBR R2 R0 K14 - 0x04080514, // 0003 SUB R2 R2 K20 - 0x500C0000, // 0004 LDBOOL R3 0 0 - 0x8C100127, // 0005 GETMET R4 R0 K39 - 0x7C100200, // 0006 CALL R4 1 - 0x74120007, // 0007 JMPT R4 #0010 - 0x8C10010D, // 0008 GETMET R4 R0 K13 - 0x8C180107, // 0009 GETMET R6 R0 K7 - 0x7C180200, // 000A CALL R6 1 - 0x7C100400, // 000B CALL R4 2 - 0x78120002, // 000C JMPF R4 #0010 - 0x8C100106, // 000D GETMET R4 R0 K6 - 0x7C100200, // 000E CALL R4 1 - 0x7001FFF4, // 000F JMP #0005 - 0x8C100127, // 0010 GETMET R4 R0 K39 - 0x7C100200, // 0011 CALL R4 1 - 0x7412001F, // 0012 JMPT R4 #0033 - 0x8C100107, // 0013 GETMET R4 R0 K7 - 0x7C100200, // 0014 CALL R4 1 - 0x1C100950, // 0015 EQ R4 R4 K80 - 0x7812001B, // 0016 JMPF R4 #0033 - 0x88100103, // 0017 GETMBR R4 R0 K3 - 0x00100914, // 0018 ADD R4 R4 K20 - 0x6014000C, // 0019 GETGBL R5 G12 - 0x88180102, // 001A GETMBR R6 R0 K2 - 0x7C140200, // 001B CALL R5 1 - 0x14100805, // 001C LT R4 R4 R5 - 0x78120014, // 001D JMPF R4 #0033 - 0x8C10010D, // 001E GETMET R4 R0 K13 - 0x88180103, // 001F GETMBR R6 R0 K3 - 0x00180D14, // 0020 ADD R6 R6 K20 - 0x881C0102, // 0021 GETMBR R7 R0 K2 - 0x94180E06, // 0022 GETIDX R6 R7 R6 - 0x7C100400, // 0023 CALL R4 2 - 0x7812000D, // 0024 JMPF R4 #0033 - 0x500C0200, // 0025 LDBOOL R3 1 0 - 0x8C100106, // 0026 GETMET R4 R0 K6 - 0x7C100200, // 0027 CALL R4 1 - 0x8C100127, // 0028 GETMET R4 R0 K39 - 0x7C100200, // 0029 CALL R4 1 - 0x74120007, // 002A JMPT R4 #0033 - 0x8C10010D, // 002B GETMET R4 R0 K13 - 0x8C180107, // 002C GETMET R6 R0 K7 - 0x7C180200, // 002D CALL R6 1 - 0x7C100400, // 002E CALL R4 2 - 0x78120002, // 002F JMPF R4 #0033 - 0x8C100106, // 0030 GETMET R4 R0 K6 - 0x7C100200, // 0031 CALL R4 1 - 0x7001FFF4, // 0032 JMP #0028 - 0x88100103, // 0033 GETMBR R4 R0 K3 - 0x04100914, // 0034 SUB R4 R4 K20 - 0x40100204, // 0035 CONNECT R4 R1 R4 - 0x88140102, // 0036 GETMBR R5 R0 K2 - 0x94100A04, // 0037 GETIDX R4 R5 R4 - 0x8C140161, // 0038 GETMET R5 R0 K97 - 0x7C140200, // 0039 CALL R5 1 - 0x78160009, // 003A JMPF R5 #0045 - 0x8C140162, // 003B GETMET R5 R0 K98 - 0x7C140200, // 003C CALL R5 1 - 0x8C180113, // 003D GETMET R6 R0 K19 - 0x54220004, // 003E LDINT R8 5 - 0x00240805, // 003F ADD R9 R4 R5 - 0x6028000C, // 0040 GETGBL R10 G12 - 0x002C0805, // 0041 ADD R11 R4 R5 - 0x7C280200, // 0042 CALL R10 1 - 0x7C180800, // 0043 CALL R6 4 - 0x7002002A, // 0044 JMP #0070 - 0x8C140127, // 0045 GETMET R5 R0 K39 - 0x7C140200, // 0046 CALL R5 1 - 0x7416000E, // 0047 JMPT R5 #0057 - 0x8C140107, // 0048 GETMET R5 R0 K7 - 0x7C140200, // 0049 CALL R5 1 - 0x1C140B45, // 004A EQ R5 R5 K69 - 0x7816000A, // 004B JMPF R5 #0057 - 0x8C140106, // 004C GETMET R5 R0 K6 - 0x7C140200, // 004D CALL R5 1 - 0x8C140113, // 004E GETMET R5 R0 K19 - 0x541E0005, // 004F LDINT R7 6 - 0x00200945, // 0050 ADD R8 R4 K69 - 0x6024000C, // 0051 GETGBL R9 G12 - 0x5C280800, // 0052 MOVE R10 R4 - 0x7C240200, // 0053 CALL R9 1 - 0x00241314, // 0054 ADD R9 R9 K20 - 0x7C140800, // 0055 CALL R5 4 - 0x70020018, // 0056 JMP #0070 - 0x8C140127, // 0057 GETMET R5 R0 K39 - 0x7C140200, // 0058 CALL R5 1 - 0x7416000E, // 0059 JMPT R5 #0069 - 0x8C140107, // 005A GETMET R5 R0 K7 - 0x7C140200, // 005B CALL R5 1 - 0x1C140B19, // 005C EQ R5 R5 K25 - 0x7816000A, // 005D JMPF R5 #0069 - 0x8C140106, // 005E GETMET R5 R0 K6 - 0x7C140200, // 005F CALL R5 1 - 0x8C140113, // 0060 GETMET R5 R0 K19 - 0x541E0006, // 0061 LDINT R7 7 - 0x00200919, // 0062 ADD R8 R4 K25 - 0x6024000C, // 0063 GETGBL R9 G12 - 0x5C280800, // 0064 MOVE R10 R4 - 0x7C240200, // 0065 CALL R9 1 - 0x00241314, // 0066 ADD R9 R9 K20 - 0x7C140800, // 0067 CALL R5 4 - 0x70020006, // 0068 JMP #0070 - 0x8C140113, // 0069 GETMET R5 R0 K19 - 0x581C0031, // 006A LDCONST R7 K49 - 0x5C200800, // 006B MOVE R8 R4 - 0x6024000C, // 006C GETGBL R9 G12 - 0x5C280800, // 006D MOVE R10 R4 - 0x7C240200, // 006E CALL R9 1 - 0x7C140800, // 006F CALL R5 4 - 0x80000000, // 0070 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: error -********************************************************************/ -be_local_closure(class_DSLLexer_error, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(error), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x60080008, // 0000 GETGBL R2 G8 - 0x880C0115, // 0001 GETMBR R3 R0 K21 - 0x7C080200, // 0002 CALL R2 1 - 0x000AC602, // 0003 ADD R2 K99 R2 - 0x0008054F, // 0004 ADD R2 R2 K79 - 0x600C0008, // 0005 GETGBL R3 G8 - 0x8810010E, // 0006 GETMBR R4 R0 K14 - 0x7C0C0200, // 0007 CALL R3 1 - 0x00080403, // 0008 ADD R2 R2 R3 - 0x00080564, // 0009 ADD R2 R2 K100 - 0x00080401, // 000A ADD R2 R2 R1 - 0xB006CA02, // 000B RAISE 1 K101 R2 - 0x80000000, // 000C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_triple_quoted_string -********************************************************************/ -be_local_closure(class_DSLLexer_scan_triple_quoted_string, /* name */ - be_nested_proto( - 10, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_triple_quoted_string), - &be_const_str_solidified, - ( &(const binstruction[69]) { /* code */ - 0x88080103, // 0000 GETMBR R2 R0 K3 - 0x04080514, // 0001 SUB R2 R2 K20 - 0x880C010E, // 0002 GETMBR R3 R0 K14 - 0x040C0714, // 0003 SUB R3 R3 K20 - 0x5810000B, // 0004 LDCONST R4 K11 - 0x8C140106, // 0005 GETMET R5 R0 K6 - 0x7C140200, // 0006 CALL R5 1 - 0x8C140106, // 0007 GETMET R5 R0 K6 - 0x7C140200, // 0008 CALL R5 1 - 0x8C140127, // 0009 GETMET R5 R0 K39 - 0x7C140200, // 000A CALL R5 1 - 0x7416001F, // 000B JMPT R5 #002C - 0x8C140107, // 000C GETMET R5 R0 K7 - 0x7C140200, // 000D CALL R5 1 - 0x1C180A01, // 000E EQ R6 R5 R1 - 0x781A0010, // 000F JMPF R6 #0021 - 0x8C180120, // 0010 GETMET R6 R0 K32 - 0x58200014, // 0011 LDCONST R8 K20 - 0x7C180400, // 0012 CALL R6 2 - 0x1C180C01, // 0013 EQ R6 R6 R1 - 0x781A000B, // 0014 JMPF R6 #0021 - 0x8C180120, // 0015 GETMET R6 R0 K32 - 0x58200031, // 0016 LDCONST R8 K49 - 0x7C180400, // 0017 CALL R6 2 - 0x1C180C01, // 0018 EQ R6 R6 R1 - 0x781A0006, // 0019 JMPF R6 #0021 - 0x8C180106, // 001A GETMET R6 R0 K6 - 0x7C180200, // 001B CALL R6 1 - 0x8C180106, // 001C GETMET R6 R0 K6 - 0x7C180200, // 001D CALL R6 1 - 0x8C180106, // 001E GETMET R6 R0 K6 - 0x7C180200, // 001F CALL R6 1 - 0x7002000A, // 0020 JMP #002C - 0x8C180106, // 0021 GETMET R6 R0 K6 - 0x7C180200, // 0022 CALL R6 1 - 0x5C140C00, // 0023 MOVE R5 R6 - 0x1C180B12, // 0024 EQ R6 R5 K18 - 0x781A0003, // 0025 JMPF R6 #002A - 0x88180115, // 0026 GETMBR R6 R0 K21 - 0x00180D14, // 0027 ADD R6 R6 K20 - 0x90022A06, // 0028 SETMBR R0 K21 R6 - 0x90021D14, // 0029 SETMBR R0 K14 K20 - 0x00100805, // 002A ADD R4 R4 R5 - 0x7001FFDC, // 002B JMP #0009 - 0x8C140127, // 002C GETMET R5 R0 K39 - 0x7C140200, // 002D CALL R5 1 - 0x7816000E, // 002E JMPF R5 #003E - 0x88140103, // 002F GETMBR R5 R0 K3 - 0x04140B5B, // 0030 SUB R5 R5 K91 - 0x88180103, // 0031 GETMBR R6 R0 K3 - 0x04180D14, // 0032 SUB R6 R6 K20 - 0x40140A06, // 0033 CONNECT R5 R5 R6 - 0x88180102, // 0034 GETMBR R6 R0 K2 - 0x94140C05, // 0035 GETIDX R5 R6 R5 - 0x00180201, // 0036 ADD R6 R1 R1 - 0x00180C01, // 0037 ADD R6 R6 R1 - 0x1C140A06, // 0038 EQ R5 R5 R6 - 0x74160003, // 0039 JMPT R5 #003E - 0x8C140129, // 003A GETMET R5 R0 K41 - 0x581C0066, // 003B LDCONST R7 K102 - 0x7C140400, // 003C CALL R5 2 - 0x70020005, // 003D JMP #0044 - 0x8C140113, // 003E GETMET R5 R0 K19 - 0x581C005B, // 003F LDCONST R7 K91 - 0x5C200800, // 0040 MOVE R8 R4 - 0x88240103, // 0041 GETMBR R9 R0 K3 - 0x04241202, // 0042 SUB R9 R9 R2 - 0x7C140800, // 0043 CALL R5 4 - 0x80000000, // 0044 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_DSLLexer_init, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x5C080200, // 0003 MOVE R2 R1 - 0x70020000, // 0004 JMP #0006 - 0x5808000B, // 0005 LDCONST R2 K11 - 0x90020402, // 0006 SETMBR R0 K2 R2 - 0x90020726, // 0007 SETMBR R0 K3 K38 - 0x90022B14, // 0008 SETMBR R0 K21 K20 - 0x90021D14, // 0009 SETMBR R0 K14 K20 - 0x60080012, // 000A GETGBL R2 G18 - 0x7C080000, // 000B CALL R2 0 - 0x9002B802, // 000C SETMBR R0 K92 R2 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: match -********************************************************************/ -be_local_closure(class_DSLLexer_match, /* name */ - be_nested_proto( - 4, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(match), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C080127, // 0000 GETMET R2 R0 K39 - 0x7C080200, // 0001 CALL R2 1 - 0x740A0004, // 0002 JMPT R2 #0008 - 0x88080102, // 0003 GETMBR R2 R0 K2 - 0x880C0103, // 0004 GETMBR R3 R0 K3 - 0x94080403, // 0005 GETIDX R2 R2 R3 - 0x20080401, // 0006 NE R2 R2 R1 - 0x780A0001, // 0007 JMPF R2 #000A - 0x50080000, // 0008 LDBOOL R2 0 0 - 0x80040400, // 0009 RET 1 R2 - 0x88080103, // 000A GETMBR R2 R0 K3 - 0x00080514, // 000B ADD R2 R2 K20 - 0x90020602, // 000C SETMBR R0 K3 R2 - 0x8808010E, // 000D GETMBR R2 R0 K14 - 0x00080514, // 000E ADD R2 R2 K20 - 0x90021C02, // 000F SETMBR R0 K14 R2 - 0x50080200, // 0010 LDBOOL R2 1 0 - 0x80040400, // 0011 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: at_end -********************************************************************/ -be_local_closure(class_DSLLexer_at_end, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(at_end), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x88040103, // 0000 GETMBR R1 R0 K3 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0102, // 0002 GETMBR R3 R0 K2 - 0x7C080200, // 0003 CALL R2 1 - 0x28040202, // 0004 GE R1 R1 R2 - 0x80040200, // 0005 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: peek_ahead -********************************************************************/ -be_local_closure(class_DSLLexer_peek_ahead, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(peek_ahead), - &be_const_str_solidified, - ( &(const binstruction[13]) { /* code */ - 0x88080103, // 0000 GETMBR R2 R0 K3 - 0x00080401, // 0001 ADD R2 R2 R1 - 0x600C000C, // 0002 GETGBL R3 G12 - 0x88100102, // 0003 GETMBR R4 R0 K2 - 0x7C0C0200, // 0004 CALL R3 1 - 0x28080403, // 0005 GE R2 R2 R3 - 0x780A0000, // 0006 JMPF R2 #0008 - 0x80061600, // 0007 RET 1 K11 - 0x88080103, // 0008 GETMBR R2 R0 K3 - 0x00080401, // 0009 ADD R2 R2 R1 - 0x880C0102, // 000A GETMBR R3 R0 K2 - 0x94080602, // 000B GETIDX R2 R3 R2 - 0x80040400, // 000C RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: scan_identifier_or_keyword -********************************************************************/ -be_local_closure(class_DSLLexer_scan_identifier_or_keyword, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(scan_identifier_or_keyword), - &be_const_str_solidified, - ( &(const binstruction[47]) { /* code */ - 0xA406CE00, // 0000 IMPORT R1 K103 - 0x88080103, // 0001 GETMBR R2 R0 K3 - 0x04080514, // 0002 SUB R2 R2 K20 - 0x880C010E, // 0003 GETMBR R3 R0 K14 - 0x040C0714, // 0004 SUB R3 R3 K20 - 0x8C100127, // 0005 GETMET R4 R0 K39 - 0x7C100200, // 0006 CALL R4 1 - 0x7412000B, // 0007 JMPT R4 #0014 - 0x8C10012D, // 0008 GETMET R4 R0 K45 - 0x8C180107, // 0009 GETMET R6 R0 K7 - 0x7C180200, // 000A CALL R6 1 - 0x7C100400, // 000B CALL R4 2 - 0x74120003, // 000C JMPT R4 #0011 - 0x8C100107, // 000D GETMET R4 R0 K7 - 0x7C100200, // 000E CALL R4 1 - 0x1C10091B, // 000F EQ R4 R4 K27 - 0x78120002, // 0010 JMPF R4 #0014 - 0x8C100106, // 0011 GETMET R4 R0 K6 - 0x7C100200, // 0012 CALL R4 1 - 0x7001FFF0, // 0013 JMP #0005 - 0x88100103, // 0014 GETMBR R4 R0 K3 - 0x04100914, // 0015 SUB R4 R4 K20 - 0x40100404, // 0016 CONNECT R4 R2 R4 - 0x88140102, // 0017 GETMBR R5 R0 K2 - 0x94100A04, // 0018 GETIDX R4 R5 R4 - 0x4C140000, // 0019 LDNIL R5 - 0x8C180368, // 001A GETMET R6 R1 K104 - 0x5C200800, // 001B MOVE R8 R4 - 0x7C180400, // 001C CALL R6 2 - 0x781A0001, // 001D JMPF R6 #0020 - 0x54160003, // 001E LDINT R5 4 - 0x70020006, // 001F JMP #0027 - 0x8C180369, // 0020 GETMET R6 R1 K105 - 0x5C200800, // 0021 MOVE R8 R4 - 0x7C180400, // 0022 CALL R6 2 - 0x781A0001, // 0023 JMPF R6 #0026 - 0x58140026, // 0024 LDCONST R5 K38 - 0x70020000, // 0025 JMP #0027 - 0x58140014, // 0026 LDCONST R5 K20 - 0x8C180113, // 0027 GETMET R6 R0 K19 - 0x5C200A00, // 0028 MOVE R8 R5 - 0x5C240800, // 0029 MOVE R9 R4 - 0x6028000C, // 002A GETGBL R10 G12 - 0x5C2C0800, // 002B MOVE R11 R4 - 0x7C280200, // 002C CALL R10 1 - 0x7C180800, // 002D CALL R6 4 - 0x80000000, // 002E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add_token -********************************************************************/ -be_local_closure(class_DSLLexer_add_token, /* name */ - be_nested_proto( - 12, /* nstack */ - 4, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(add_token), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0xA412CE00, // 0000 IMPORT R4 K103 - 0x8C14096A, // 0001 GETMET R5 R4 K106 - 0x5C1C0200, // 0002 MOVE R7 R1 - 0x5C200400, // 0003 MOVE R8 R2 - 0x88240115, // 0004 GETMBR R9 R0 K21 - 0x8828010E, // 0005 GETMBR R10 R0 K14 - 0x04281403, // 0006 SUB R10 R10 R3 - 0x5C2C0600, // 0007 MOVE R11 R3 - 0x7C140C00, // 0008 CALL R5 6 - 0x8818015C, // 0009 GETMBR R6 R0 K92 - 0x8C180D6B, // 000A GETMET R6 R6 K107 - 0x5C200A00, // 000B MOVE R8 R5 - 0x7C180400, // 000C CALL R6 2 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: advance -********************************************************************/ -be_local_closure(class_DSLLexer_advance, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(advance), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C040127, // 0000 GETMET R1 R0 K39 - 0x7C040200, // 0001 CALL R1 1 - 0x78060000, // 0002 JMPF R1 #0004 - 0x80061600, // 0003 RET 1 K11 - 0x88040102, // 0004 GETMBR R1 R0 K2 - 0x88080103, // 0005 GETMBR R2 R0 K3 - 0x94040202, // 0006 GETIDX R1 R1 R2 - 0x88080103, // 0007 GETMBR R2 R0 K3 - 0x00080514, // 0008 ADD R2 R2 K20 - 0x90020602, // 0009 SETMBR R0 K3 R2 - 0x8808010E, // 000A GETMBR R2 R0 K14 - 0x00080514, // 000B ADD R2 R2 K20 - 0x90021C02, // 000C SETMBR R0 K14 R2 - 0x80040200, // 000D RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: peek -********************************************************************/ -be_local_closure(class_DSLLexer_peek, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(peek), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x8C040127, // 0000 GETMET R1 R0 K39 - 0x7C040200, // 0001 CALL R1 1 - 0x78060000, // 0002 JMPF R1 #0004 - 0x80061600, // 0003 RET 1 K11 - 0x88040102, // 0004 GETMBR R1 R0 K2 - 0x88080103, // 0005 GETMBR R2 R0 K3 - 0x94040202, // 0006 GETIDX R1 R1 R2 - 0x80040200, // 0007 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_position_info -********************************************************************/ -be_local_closure(class_DSLLexer_get_position_info, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_DSLLexer, /* shared constants */ - be_str_weak(get_position_info), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x60040013, // 0000 GETGBL R1 G19 - 0x7C040000, // 0001 CALL R1 0 - 0x88080103, // 0002 GETMBR R2 R0 K3 - 0x98060602, // 0003 SETIDX R1 K3 R2 - 0x88080115, // 0004 GETMBR R2 R0 K21 - 0x98062A02, // 0005 SETIDX R1 K21 R2 - 0x8808010E, // 0006 GETMBR R2 R0 K14 - 0x98061C02, // 0007 SETIDX R1 K14 R2 - 0x8C080127, // 0008 GETMET R2 R0 K39 - 0x7C080200, // 0009 CALL R2 1 - 0x98064E02, // 000A SETIDX R1 K39 R2 - 0x80040200, // 000B RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: DSLLexer -********************************************************************/ -be_local_class(DSLLexer, - 5, - NULL, - be_nested_map(32, - ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(scan_time_suffix, 4), be_const_closure(class_DSLLexer_scan_time_suffix_closure) }, - { be_const_key_weak(is_alnum, -1), be_const_closure(class_DSLLexer_is_alnum_closure) }, - { be_const_key_weak(scan_token, -1), be_const_closure(class_DSLLexer_scan_token_closure) }, - { be_const_key_weak(scan_hex_color_0x, -1), be_const_closure(class_DSLLexer_scan_hex_color_0x_closure) }, - { be_const_key_weak(get_position_info, 25), be_const_closure(class_DSLLexer_get_position_info_closure) }, - { be_const_key_weak(scan_operator_or_delimiter, -1), be_const_closure(class_DSLLexer_scan_operator_or_delimiter_closure) }, - { be_const_key_weak(is_alpha, 21), be_const_closure(class_DSLLexer_is_alpha_closure) }, - { be_const_key_weak(column, 20), be_const_var(3) }, - { be_const_key_weak(scan_string, -1), be_const_closure(class_DSLLexer_scan_string_closure) }, - { be_const_key_weak(is_digit, -1), be_const_closure(class_DSLLexer_is_digit_closure) }, - { be_const_key_weak(peek_next, 28), be_const_closure(class_DSLLexer_peek_next_closure) }, - { be_const_key_weak(scan_variable_reference, 9), be_const_closure(class_DSLLexer_scan_variable_reference_closure) }, - { be_const_key_weak(tokenize, -1), be_const_closure(class_DSLLexer_tokenize_closure) }, - { be_const_key_weak(advance, -1), be_const_closure(class_DSLLexer_advance_closure) }, - { be_const_key_weak(scan_comment, -1), be_const_closure(class_DSLLexer_scan_comment_closure) }, - { be_const_key_weak(check_time_suffix, -1), be_const_closure(class_DSLLexer_check_time_suffix_closure) }, - { be_const_key_weak(scan_number, -1), be_const_closure(class_DSLLexer_scan_number_closure) }, - { be_const_key_weak(error, -1), be_const_closure(class_DSLLexer_error_closure) }, - { be_const_key_weak(scan_triple_quoted_string, -1), be_const_closure(class_DSLLexer_scan_triple_quoted_string_closure) }, - { be_const_key_weak(tokens, 27), be_const_var(4) }, - { be_const_key_weak(line, -1), be_const_var(2) }, - { be_const_key_weak(add_token, -1), be_const_closure(class_DSLLexer_add_token_closure) }, - { be_const_key_weak(match, -1), be_const_closure(class_DSLLexer_match_closure) }, - { be_const_key_weak(scan_identifier_or_keyword, -1), be_const_closure(class_DSLLexer_scan_identifier_or_keyword_closure) }, - { be_const_key_weak(source, -1), be_const_var(0) }, - { be_const_key_weak(peek_ahead, 31), be_const_closure(class_DSLLexer_peek_ahead_closure) }, - { be_const_key_weak(at_end, 23), be_const_closure(class_DSLLexer_at_end_closure) }, - { be_const_key_weak(init, -1), be_const_closure(class_DSLLexer_init_closure) }, - { be_const_key_weak(position, -1), be_const_var(1) }, - { be_const_key_weak(is_hex_digit, 13), be_const_closure(class_DSLLexer_is_hex_digit_closure) }, - { be_const_key_weak(peek, -1), be_const_closure(class_DSLLexer_peek_closure) }, - { be_const_key_weak(reset, -1), be_const_closure(class_DSLLexer_reset_closure) }, - })), - be_str_weak(DSLLexer) -); // ktab too big for class 'SimpleDSLTranspiler' - skipping extern const bclass be_class_SimpleDSLTranspiler; +/******************************************************************** +** Solidified function: convert_time_to_ms +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_convert_time_to_ms, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(endswith), + /* K2 */ be_nested_str_weak(ms), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(s), + /* K5 */ be_nested_str_weak(m), + /* K6 */ be_nested_str_weak(h), + /* K7 */ be_const_int(3600000), + }), + be_str_weak(convert_time_to_ms), + &be_const_str_solidified, + ( &(const binstruction[63]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x58180002, // 0003 LDCONST R6 K2 + 0x7C0C0600, // 0004 CALL R3 3 + 0x780E0008, // 0005 JMPF R3 #000F + 0x600C0009, // 0006 GETGBL R3 G9 + 0x6010000A, // 0007 GETGBL R4 G10 + 0x5415FFFC, // 0008 LDINT R5 -3 + 0x40160605, // 0009 CONNECT R5 K3 R5 + 0x94140205, // 000A GETIDX R5 R1 R5 + 0x7C100200, // 000B CALL R4 1 + 0x7C0C0200, // 000C CALL R3 1 + 0x80040600, // 000D RET 1 R3 + 0x7002002D, // 000E JMP #003D + 0x8C0C0501, // 000F GETMET R3 R2 K1 + 0x5C140200, // 0010 MOVE R5 R1 + 0x58180004, // 0011 LDCONST R6 K4 + 0x7C0C0600, // 0012 CALL R3 3 + 0x780E000A, // 0013 JMPF R3 #001F + 0x600C0009, // 0014 GETGBL R3 G9 + 0x6010000A, // 0015 GETGBL R4 G10 + 0x5415FFFD, // 0016 LDINT R5 -2 + 0x40160605, // 0017 CONNECT R5 K3 R5 + 0x94140205, // 0018 GETIDX R5 R1 R5 + 0x7C100200, // 0019 CALL R4 1 + 0x541603E7, // 001A LDINT R5 1000 + 0x08100805, // 001B MUL R4 R4 R5 + 0x7C0C0200, // 001C CALL R3 1 + 0x80040600, // 001D RET 1 R3 + 0x7002001D, // 001E JMP #003D + 0x8C0C0501, // 001F GETMET R3 R2 K1 + 0x5C140200, // 0020 MOVE R5 R1 + 0x58180005, // 0021 LDCONST R6 K5 + 0x7C0C0600, // 0022 CALL R3 3 + 0x780E000A, // 0023 JMPF R3 #002F + 0x600C0009, // 0024 GETGBL R3 G9 + 0x6010000A, // 0025 GETGBL R4 G10 + 0x5415FFFD, // 0026 LDINT R5 -2 + 0x40160605, // 0027 CONNECT R5 K3 R5 + 0x94140205, // 0028 GETIDX R5 R1 R5 + 0x7C100200, // 0029 CALL R4 1 + 0x5416EA5F, // 002A LDINT R5 60000 + 0x08100805, // 002B MUL R4 R4 R5 + 0x7C0C0200, // 002C CALL R3 1 + 0x80040600, // 002D RET 1 R3 + 0x7002000D, // 002E JMP #003D + 0x8C0C0501, // 002F GETMET R3 R2 K1 + 0x5C140200, // 0030 MOVE R5 R1 + 0x58180006, // 0031 LDCONST R6 K6 + 0x7C0C0600, // 0032 CALL R3 3 + 0x780E0008, // 0033 JMPF R3 #003D + 0x600C0009, // 0034 GETGBL R3 G9 + 0x6010000A, // 0035 GETGBL R4 G10 + 0x5415FFFD, // 0036 LDINT R5 -2 + 0x40160605, // 0037 CONNECT R5 K3 R5 + 0x94140205, // 0038 GETIDX R5 R1 R5 + 0x7C100200, // 0039 CALL R4 1 + 0x08100907, // 003A MUL R4 R4 K7 + 0x7C0C0200, // 003B CALL R3 1 + 0x80040600, // 003C RET 1 R3 + 0x540E03E7, // 003D LDINT R3 1000 + 0x80040600, // 003E RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: skip_whitespace_including_newlines +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(next), + }), + be_str_weak(skip_whitespace_including_newlines), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x74060011, // 0002 JMPT R1 #0015 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x20080202, // 0006 NE R2 R1 R2 + 0x780A000A, // 0007 JMPF R2 #0013 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0x540E0024, // 0009 LDINT R3 37 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x740A0003, // 000B JMPT R2 #0010 + 0x88080302, // 000C GETMBR R2 R1 K2 + 0x540E0022, // 000D LDINT R3 35 + 0x1C080403, // 000E EQ R2 R2 R3 + 0x780A0002, // 000F JMPF R2 #0013 + 0x8C080103, // 0010 GETMET R2 R0 K3 + 0x7C080200, // 0011 CALL R2 1 + 0x70020000, // 0012 JMP #0014 + 0x70020000, // 0013 JMP #0015 + 0x7001FFEA, // 0014 JMP #0000 + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X28_X27), + }), + be_str_weak(expect_left_paren), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0017, // 0006 LDINT R3 24 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_brace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_brace, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X7B_X27), + }), + be_str_weak(expect_left_brace), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0019, // 0006 LDINT R3 26 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: transpile_template_body +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_transpile_template_body, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[15]) { /* constants */ + /* K0 */ be_const_int(0), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_const_int(1), + /* K5 */ be_nested_str_weak(process_statement), + /* K6 */ be_nested_str_weak(run_statements), + /* K7 */ be_nested_str_weak(name), + /* K8 */ be_nested_str_weak(comment), + /* K9 */ be_nested_str_weak(add), + /* K10 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), + /* K11 */ be_nested_str_weak(stop_iteration), + /* K12 */ be_nested_str_weak(join_output), + /* K13 */ be_nested_str_weak(error), + /* K14 */ be_nested_str_weak(Template_X20body_X20transpilation_X20failed_X3A_X20_X25s), + }), + be_str_weak(transpile_template_body), + &be_const_str_solidified, + ( &(const binstruction[78]) { /* code */ + 0xA8020041, // 0000 EXBLK 0 #0043 + 0x58040000, // 0001 LDCONST R1 K0 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x740A001F, // 0004 JMPT R2 #0025 + 0x8C080102, // 0005 GETMET R2 R0 K2 + 0x7C080200, // 0006 CALL R2 1 + 0x4C0C0000, // 0007 LDNIL R3 + 0x200C0403, // 0008 NE R3 R2 R3 + 0x780E0006, // 0009 JMPF R3 #0011 + 0x880C0503, // 000A GETMBR R3 R2 K3 + 0x5412001A, // 000B LDINT R4 27 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x780E0002, // 000D JMPF R3 #0011 + 0x1C0C0300, // 000E EQ R3 R1 K0 + 0x780E0000, // 000F JMPF R3 #0011 + 0x70020013, // 0010 JMP #0025 + 0x4C0C0000, // 0011 LDNIL R3 + 0x200C0403, // 0012 NE R3 R2 R3 + 0x780E0005, // 0013 JMPF R3 #001A + 0x880C0503, // 0014 GETMBR R3 R2 K3 + 0x54120019, // 0015 LDINT R4 26 + 0x1C0C0604, // 0016 EQ R3 R3 R4 + 0x780E0001, // 0017 JMPF R3 #001A + 0x00040304, // 0018 ADD R1 R1 K4 + 0x70020007, // 0019 JMP #0022 + 0x4C0C0000, // 001A LDNIL R3 + 0x200C0403, // 001B NE R3 R2 R3 + 0x780E0004, // 001C JMPF R3 #0022 + 0x880C0503, // 001D GETMBR R3 R2 K3 + 0x5412001A, // 001E LDINT R4 27 + 0x1C0C0604, // 001F EQ R3 R3 R4 + 0x780E0000, // 0020 JMPF R3 #0022 + 0x04040304, // 0021 SUB R1 R1 K4 + 0x8C0C0105, // 0022 GETMET R3 R0 K5 + 0x7C0C0200, // 0023 CALL R3 1 + 0x7001FFDC, // 0024 JMP #0002 + 0x6008000C, // 0025 GETGBL R2 G12 + 0x880C0106, // 0026 GETMBR R3 R0 K6 + 0x7C080200, // 0027 CALL R2 1 + 0x24080500, // 0028 GT R2 R2 K0 + 0x780A0012, // 0029 JMPF R2 #003D + 0x60080010, // 002A GETGBL R2 G16 + 0x880C0106, // 002B GETMBR R3 R0 K6 + 0x7C080200, // 002C CALL R2 1 + 0xA802000B, // 002D EXBLK 0 #003A + 0x5C0C0400, // 002E MOVE R3 R2 + 0x7C0C0000, // 002F CALL R3 0 + 0x94100707, // 0030 GETIDX R4 R3 K7 + 0x94140708, // 0031 GETIDX R5 R3 K8 + 0x8C180109, // 0032 GETMET R6 R0 K9 + 0x60200018, // 0033 GETGBL R8 G24 + 0x5824000A, // 0034 LDCONST R9 K10 + 0x5C280800, // 0035 MOVE R10 R4 + 0x5C2C0A00, // 0036 MOVE R11 R5 + 0x7C200600, // 0037 CALL R8 3 + 0x7C180400, // 0038 CALL R6 2 + 0x7001FFF3, // 0039 JMP #002E + 0x5808000B, // 003A LDCONST R2 K11 + 0xAC080200, // 003B CATCH R2 1 0 + 0xB0080000, // 003C RAISE 2 R0 R0 + 0x8C08010C, // 003D GETMET R2 R0 K12 + 0x7C080200, // 003E CALL R2 1 + 0xA8040001, // 003F EXBLK 1 1 + 0x80040400, // 0040 RET 1 R2 + 0xA8040001, // 0041 EXBLK 1 1 + 0x70020009, // 0042 JMP #004D + 0xAC040002, // 0043 CATCH R1 0 2 + 0x70020006, // 0044 JMP #004C + 0x8C0C010D, // 0045 GETMET R3 R0 K13 + 0x60140018, // 0046 GETGBL R5 G24 + 0x5818000E, // 0047 LDCONST R6 K14 + 0x5C1C0400, // 0048 MOVE R7 R2 + 0x7C140400, // 0049 CALL R5 2 + 0x7C0C0400, // 004A CALL R3 2 + 0x70020000, // 004B JMP #004D + 0xB0080000, // 004C RAISE 2 R0 R0 + 0x80000000, // 004D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: 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[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X29_X27), + }), + be_str_weak(expect_right_paren), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0018, // 0006 LDINT R3 25 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_template_parameter_type +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_type, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(color), + /* K1 */ be_nested_str_weak(palette), + /* K2 */ be_nested_str_weak(animation), + /* K3 */ be_nested_str_weak(number), + /* K4 */ be_nested_str_weak(string), + /* K5 */ be_nested_str_weak(boolean), + /* K6 */ be_nested_str_weak(time), + /* K7 */ be_nested_str_weak(percentage), + /* K8 */ be_nested_str_weak(variable), + /* K9 */ be_nested_str_weak(value_provider), + /* K10 */ be_nested_str_weak(stop_iteration), + /* K11 */ be_nested_str_weak(error), + /* K12 */ be_nested_str_weak(Invalid_X20parameter_X20type_X20_X27_X25s_X27_X2E_X20Valid_X20types_X20are_X3A_X20_X25s), + }), + be_str_weak(_validate_template_parameter_type), + &be_const_str_solidified, + ( &(const binstruction[36]) { /* code */ + 0x60080012, // 0000 GETGBL R2 G18 + 0x7C080000, // 0001 CALL R2 0 + 0x400C0500, // 0002 CONNECT R3 R2 K0 + 0x400C0501, // 0003 CONNECT R3 R2 K1 + 0x400C0502, // 0004 CONNECT R3 R2 K2 + 0x400C0503, // 0005 CONNECT R3 R2 K3 + 0x400C0504, // 0006 CONNECT R3 R2 K4 + 0x400C0505, // 0007 CONNECT R3 R2 K5 + 0x400C0506, // 0008 CONNECT R3 R2 K6 + 0x400C0507, // 0009 CONNECT R3 R2 K7 + 0x400C0508, // 000A CONNECT R3 R2 K8 + 0x400C0509, // 000B CONNECT R3 R2 K9 + 0x600C0010, // 000C GETGBL R3 G16 + 0x5C100400, // 000D MOVE R4 R2 + 0x7C0C0200, // 000E CALL R3 1 + 0xA8020007, // 000F EXBLK 0 #0018 + 0x5C100600, // 0010 MOVE R4 R3 + 0x7C100000, // 0011 CALL R4 0 + 0x1C140204, // 0012 EQ R5 R1 R4 + 0x78160002, // 0013 JMPF R5 #0017 + 0x50140200, // 0014 LDBOOL R5 1 0 + 0xA8040001, // 0015 EXBLK 1 1 + 0x80040A00, // 0016 RET 1 R5 + 0x7001FFF7, // 0017 JMP #0010 + 0x580C000A, // 0018 LDCONST R3 K10 + 0xAC0C0200, // 0019 CATCH R3 1 0 + 0xB0080000, // 001A RAISE 2 R0 R0 + 0x8C0C010B, // 001B GETMET R3 R0 K11 + 0x60140018, // 001C GETGBL R5 G24 + 0x5818000C, // 001D LDCONST R6 K12 + 0x5C1C0200, // 001E MOVE R7 R1 + 0x5C200400, // 001F MOVE R8 R2 + 0x7C140600, // 0020 CALL R5 3 + 0x7C0C0400, // 0021 CALL R3 2 + 0x500C0000, // 0022 LDBOOL R3 0 0 + 0x80040600, // 0023 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _split_function_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__split_function_arguments, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(split), + /* K3 */ be_nested_str_weak(_X2C), + /* K4 */ be_nested_str_weak(strip), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(push), + /* K7 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_split_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x1C0C0301, // 0001 EQ R3 R1 K1 + 0x740E0002, // 0002 JMPT R3 #0006 + 0x4C0C0000, // 0003 LDNIL R3 + 0x1C0C0203, // 0004 EQ R3 R1 R3 + 0x780E0002, // 0005 JMPF R3 #0009 + 0x600C0012, // 0006 GETGBL R3 G18 + 0x7C0C0000, // 0007 CALL R3 0 + 0x80040600, // 0008 RET 1 R3 + 0x8C0C0502, // 0009 GETMET R3 R2 K2 + 0x5C140200, // 000A MOVE R5 R1 + 0x58180003, // 000B LDCONST R6 K3 + 0x7C0C0600, // 000C CALL R3 3 + 0x60100012, // 000D GETGBL R4 G18 + 0x7C100000, // 000E CALL R4 0 + 0x60140010, // 000F GETGBL R5 G16 + 0x5C180600, // 0010 MOVE R6 R3 + 0x7C140200, // 0011 CALL R5 1 + 0xA802000D, // 0012 EXBLK 0 #0021 + 0x5C180A00, // 0013 MOVE R6 R5 + 0x7C180000, // 0014 CALL R6 0 + 0x8C1C0504, // 0015 GETMET R7 R2 K4 + 0x5C240C00, // 0016 MOVE R9 R6 + 0x7C1C0400, // 0017 CALL R7 2 + 0x6020000C, // 0018 GETGBL R8 G12 + 0x5C240E00, // 0019 MOVE R9 R7 + 0x7C200200, // 001A CALL R8 1 + 0x24201105, // 001B GT R8 R8 K5 + 0x78220002, // 001C JMPF R8 #0020 + 0x8C200906, // 001D GETMET R8 R4 K6 + 0x5C280E00, // 001E MOVE R10 R7 + 0x7C200400, // 001F CALL R8 2 + 0x7001FFF1, // 0020 JMP #0013 + 0x58140007, // 0021 LDCONST R5 K7 + 0xAC140200, // 0022 CATCH R5 1 0 + 0xB0080000, // 0023 RAISE 2 R0 R0 + 0x80040800, // 0024 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_warnings +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_warnings, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(warnings), + }), + be_str_weak(get_warnings), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_wait_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(process_time_value), + /* K2 */ be_nested_str_weak(collect_inline_comment), + /* K3 */ be_nested_str_weak(add), + /* K4 */ be_nested_str_weak(_X25s_X2Epush_wait_step_X28_X25s_X29_X25s), + /* K5 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_wait_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x7C080200, // 0005 CALL R2 1 + 0x8C0C0103, // 0006 GETMET R3 R0 K3 + 0x60140018, // 0007 GETGBL R5 G24 + 0x58180004, // 0008 LDCONST R6 K4 + 0x8C1C0105, // 0009 GETMET R7 R0 K5 + 0x7C1C0200, // 000A CALL R7 1 + 0x5C200200, // 000B MOVE R8 R1 + 0x5C240400, // 000C MOVE R9 R2 + 0x7C140800, // 000D CALL R5 4 + 0x7C0C0400, // 000E CALL R3 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_identifier +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_identifier, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[10]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(1), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(can_use_as_identifier), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20identifier), + /* K9 */ be_nested_str_weak(unknown), + }), + be_str_weak(expect_identifier), + &be_const_str_solidified, + ( &(const binstruction[29]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0012, // 0004 JMPF R2 #0018 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x1C080502, // 0006 EQ R2 R2 K2 + 0x740A000A, // 0007 JMPT R2 #0013 + 0x88080301, // 0008 GETMBR R2 R1 K1 + 0x540E0003, // 0009 LDINT R3 4 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x740A0006, // 000B JMPT R2 #0013 + 0x88080301, // 000C GETMBR R2 R1 K1 + 0x1C080503, // 000D EQ R2 R2 K3 + 0x780A0008, // 000E JMPF R2 #0018 + 0x8C080104, // 000F GETMET R2 R0 K4 + 0x88100305, // 0010 GETMBR R4 R1 K5 + 0x7C080400, // 0011 CALL R2 2 + 0x780A0004, // 0012 JMPF R2 #0018 + 0x88080305, // 0013 GETMBR R2 R1 K5 + 0x8C0C0106, // 0014 GETMET R3 R0 K6 + 0x7C0C0200, // 0015 CALL R3 1 + 0x80040400, // 0016 RET 1 R2 + 0x70020003, // 0017 JMP #001C + 0x8C080107, // 0018 GETMET R2 R0 K7 + 0x58100008, // 0019 LDCONST R4 K8 + 0x7C080400, // 001A CALL R2 2 + 0x80061200, // 001B RET 1 K9 + 0x80000000, // 001C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_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[14]) { /* 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(process_time_value), + /* K7 */ be_nested_str_weak(_X22interval_X22_X3A_X20_X25s), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(event_param), + /* K10 */ be_nested_str_weak(_X22value_X22_X3A_X20_X25s), + /* K11 */ be_nested_str_weak(expr), + /* K12 */ be_nested_str_weak(expect_right_paren), + /* K13 */ be_nested_str_weak(_X7D), + }), + be_str_weak(process_event_parameters), + &be_const_str_solidified, + ( &(const binstruction[38]) { /* 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 + 0x740A001B, // 0005 JMPT R2 #0022 + 0x8C080103, // 0006 GETMET R2 R0 K3 + 0x7C080200, // 0007 CALL R2 1 + 0x740A0018, // 0008 JMPT R2 #0022 + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x4C0C0000, // 000B LDNIL R3 + 0x200C0403, // 000C NE R3 R2 R3 + 0x780E000B, // 000D JMPF R3 #001A + 0x880C0505, // 000E GETMBR R3 R2 K5 + 0x54120004, // 000F LDINT R4 5 + 0x1C0C0604, // 0010 EQ R3 R3 R4 + 0x780E0007, // 0011 JMPF R3 #001A + 0x8C0C0106, // 0012 GETMET R3 R0 K6 + 0x7C0C0200, // 0013 CALL R3 1 + 0x60100018, // 0014 GETGBL R4 G24 + 0x58140007, // 0015 LDCONST R5 K7 + 0x5C180600, // 0016 MOVE R6 R3 + 0x7C100400, // 0017 CALL R4 2 + 0x00040204, // 0018 ADD R1 R1 R4 + 0x70020007, // 0019 JMP #0022 + 0x8C0C0108, // 001A GETMET R3 R0 K8 + 0x58140009, // 001B LDCONST R5 K9 + 0x7C0C0400, // 001C CALL R3 2 + 0x60100018, // 001D GETGBL R4 G24 + 0x5814000A, // 001E LDCONST R5 K10 + 0x8818070B, // 001F GETMBR R6 R3 K11 + 0x7C100400, // 0020 CALL R4 2 + 0x00040204, // 0021 ADD R1 R1 R4 + 0x8C08010C, // 0022 GETMET R2 R0 K12 + 0x7C080200, // 0023 CALL R2 1 + 0x0004030D, // 0024 ADD R1 R1 K13 + 0x80040200, // 0025 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: _validate_single_parameter ********************************************************************/ @@ -6522,44 +6800,113 @@ be_local_closure(class_SimpleDSLTranspiler__validate_single_parameter, /* name /******************************************************************** -** Solidified function: expect_right_paren +** Solidified function: validate_user_name ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ +be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ be_nested_proto( - 5, /* nstack */ - 1, /* argc */ + 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[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X29_X27), + ( &(const bvalue[13]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(symbol_table), + /* K2 */ be_nested_str_weak(get), + /* K3 */ be_nested_str_weak(is_builtin), + /* K4 */ be_nested_str_weak(type), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K7 */ be_nested_str_weak(Cannot_X20redefine_X20built_X2Din_X20symbol_X20_X27_X25s_X27_X20_X28type_X3A_X20_X25s_X29_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K8 */ be_nested_str_weak(Symbol_X20_X27_X25s_X27_X20is_X20already_X20defined_X20as_X20_X25s_X2E_X20Cannot_X20redefine_X20as_X20_X25s_X2E), + /* K9 */ be_nested_str_weak(Token), + /* K10 */ be_nested_str_weak(statement_keywords), + /* K11 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), + /* K12 */ be_nested_str_weak(stop_iteration), }), - be_str_weak(expect_right_paren), + be_str_weak(validate_user_name), &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0018, // 0006 LDINT R3 25 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 + ( &(const binstruction[77]) { /* code */ + 0xA40E0000, // 0000 IMPORT R3 K0 + 0x88100101, // 0001 GETMBR R4 R0 K1 + 0x8C100902, // 0002 GETMET R4 R4 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x7C100400, // 0004 CALL R4 2 + 0x4C140000, // 0005 LDNIL R5 + 0x1C140805, // 0006 EQ R5 R4 R5 + 0x78160000, // 0007 JMPF R5 #0009 + 0x70020028, // 0008 JMP #0032 + 0x88140903, // 0009 GETMBR R5 R4 K3 + 0x7816000E, // 000A JMPF R5 #001A + 0x88140904, // 000B GETMBR R5 R4 K4 + 0x541A000A, // 000C LDINT R6 11 + 0x1C140A06, // 000D EQ R5 R5 R6 + 0x7816000A, // 000E JMPF R5 #001A + 0x8C140105, // 000F GETMET R5 R0 K5 + 0x601C0018, // 0010 GETGBL R7 G24 + 0x58200006, // 0011 LDCONST R8 K6 + 0x5C240200, // 0012 MOVE R9 R1 + 0x5C280200, // 0013 MOVE R10 R1 + 0x5C2C0200, // 0014 MOVE R11 R1 + 0x7C1C0800, // 0015 CALL R7 4 + 0x7C140400, // 0016 CALL R5 2 + 0x50140000, // 0017 LDBOOL R5 0 0 + 0x80040A00, // 0018 RET 1 R5 + 0x70020017, // 0019 JMP #0032 + 0x88140903, // 001A GETMBR R5 R4 K3 + 0x7816000B, // 001B JMPF R5 #0028 + 0x8C140105, // 001C GETMET R5 R0 K5 + 0x601C0018, // 001D GETGBL R7 G24 + 0x58200007, // 001E LDCONST R8 K7 + 0x5C240200, // 001F MOVE R9 R1 + 0x88280904, // 0020 GETMBR R10 R4 K4 + 0x5C2C0200, // 0021 MOVE R11 R1 + 0x5C300200, // 0022 MOVE R12 R1 + 0x7C1C0A00, // 0023 CALL R7 5 + 0x7C140400, // 0024 CALL R5 2 + 0x50140000, // 0025 LDBOOL R5 0 0 + 0x80040A00, // 0026 RET 1 R5 + 0x70020009, // 0027 JMP #0032 + 0x8C140105, // 0028 GETMET R5 R0 K5 + 0x601C0018, // 0029 GETGBL R7 G24 + 0x58200008, // 002A LDCONST R8 K8 + 0x5C240200, // 002B MOVE R9 R1 + 0x88280904, // 002C GETMBR R10 R4 K4 + 0x5C2C0400, // 002D MOVE R11 R2 + 0x7C1C0800, // 002E CALL R7 4 + 0x7C140400, // 002F CALL R5 2 + 0x50140000, // 0030 LDBOOL R5 0 0 + 0x80040A00, // 0031 RET 1 R5 + 0x60140010, // 0032 GETGBL R5 G16 + 0x88180709, // 0033 GETMBR R6 R3 K9 + 0x88180D0A, // 0034 GETMBR R6 R6 K10 + 0x7C140200, // 0035 CALL R5 1 + 0xA8020010, // 0036 EXBLK 0 #0048 + 0x5C180A00, // 0037 MOVE R6 R5 + 0x7C180000, // 0038 CALL R6 0 + 0x1C1C0206, // 0039 EQ R7 R1 R6 + 0x781E000B, // 003A JMPF R7 #0047 + 0x8C1C0105, // 003B GETMET R7 R0 K5 + 0x60240018, // 003C GETGBL R9 G24 + 0x5828000B, // 003D LDCONST R10 K11 + 0x5C2C0200, // 003E MOVE R11 R1 + 0x5C300400, // 003F MOVE R12 R2 + 0x5C340200, // 0040 MOVE R13 R1 + 0x5C380200, // 0041 MOVE R14 R1 + 0x7C240A00, // 0042 CALL R9 5 + 0x7C1C0400, // 0043 CALL R7 2 + 0x501C0000, // 0044 LDBOOL R7 0 0 + 0xA8040001, // 0045 EXBLK 1 1 + 0x80040E00, // 0046 RET 1 R7 + 0x7001FFEE, // 0047 JMP #0037 + 0x5814000C, // 0048 LDCONST R5 K12 + 0xAC140200, // 0049 CATCH R5 1 0 + 0xB0080000, // 004A RAISE 2 R0 R0 + 0x50140200, // 004B LDBOOL R5 1 0 + 0x80040A00, // 004C RET 1 R5 }) ) ); @@ -6567,11 +6914,170 @@ be_local_closure(class_SimpleDSLTranspiler_expect_right_paren, /* name */ /******************************************************************** -** Solidified function: process_template +** Solidified function: _determine_symbol_return_type ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ +be_local_closure(class_SimpleDSLTranspiler__determine_symbol_return_type, /* name */ be_nested_proto( - 13, /* nstack */ + 4, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(type), + /* K1 */ be_const_int(2), + /* K2 */ be_const_int(1), + /* K3 */ be_const_int(3), + }), + be_str_weak(_determine_symbol_return_type), + &be_const_str_solidified, + ( &(const binstruction[71]) { /* code */ + 0x88080300, // 0000 GETMBR R2 R1 K0 + 0x540E0008, // 0001 LDINT R3 9 + 0x1C080403, // 0002 EQ R2 R2 R3 + 0x740A0003, // 0003 JMPT R2 #0008 + 0x88080300, // 0004 GETMBR R2 R1 K0 + 0x540E0007, // 0005 LDINT R3 8 + 0x1C080403, // 0006 EQ R2 R2 R3 + 0x780A0002, // 0007 JMPF R2 #000B + 0x540A0008, // 0008 LDINT R2 9 + 0x80040400, // 0009 RET 1 R2 + 0x7002003A, // 000A JMP #0046 + 0x88080300, // 000B GETMBR R2 R1 K0 + 0x540E000A, // 000C LDINT R3 11 + 0x1C080403, // 000D EQ R2 R2 R3 + 0x740A0003, // 000E JMPT R2 #0013 + 0x88080300, // 000F GETMBR R2 R1 K0 + 0x540E0009, // 0010 LDINT R3 10 + 0x1C080403, // 0011 EQ R2 R2 R3 + 0x780A0002, // 0012 JMPF R2 #0016 + 0x540A000A, // 0013 LDINT R2 11 + 0x80040400, // 0014 RET 1 R2 + 0x7002002F, // 0015 JMP #0046 + 0x88080300, // 0016 GETMBR R2 R1 K0 + 0x540E0006, // 0017 LDINT R3 7 + 0x1C080403, // 0018 EQ R2 R2 R3 + 0x740A0003, // 0019 JMPT R2 #001E + 0x88080300, // 001A GETMBR R2 R1 K0 + 0x540E0005, // 001B LDINT R3 6 + 0x1C080403, // 001C EQ R2 R2 R3 + 0x780A0002, // 001D JMPF R2 #0021 + 0x540A0006, // 001E LDINT R2 7 + 0x80040400, // 001F RET 1 R2 + 0x70020024, // 0020 JMP #0046 + 0x88080300, // 0021 GETMBR R2 R1 K0 + 0x1C080501, // 0022 EQ R2 R2 K1 + 0x740A0002, // 0023 JMPT R2 #0027 + 0x88080300, // 0024 GETMBR R2 R1 K0 + 0x1C080502, // 0025 EQ R2 R2 K2 + 0x780A0001, // 0026 JMPF R2 #0029 + 0x80060200, // 0027 RET 1 K1 + 0x7002001C, // 0028 JMP #0046 + 0x88080300, // 0029 GETMBR R2 R1 K0 + 0x1C080503, // 002A EQ R2 R2 K3 + 0x780A0002, // 002B JMPF R2 #002F + 0x540A000B, // 002C LDINT R2 12 + 0x80040400, // 002D RET 1 R2 + 0x70020016, // 002E JMP #0046 + 0x88080300, // 002F GETMBR R2 R1 K0 + 0x540E000B, // 0030 LDINT R3 12 + 0x1C080403, // 0031 EQ R2 R2 R3 + 0x780A0002, // 0032 JMPF R2 #0036 + 0x540A000B, // 0033 LDINT R2 12 + 0x80040400, // 0034 RET 1 R2 + 0x7002000F, // 0035 JMP #0046 + 0x88080300, // 0036 GETMBR R2 R1 K0 + 0x540E000C, // 0037 LDINT R3 13 + 0x1C080403, // 0038 EQ R2 R2 R3 + 0x780A0002, // 0039 JMPF R2 #003D + 0x540A000C, // 003A LDINT R2 13 + 0x80040400, // 003B RET 1 R2 + 0x70020008, // 003C JMP #0046 + 0x88080300, // 003D GETMBR R2 R1 K0 + 0x540E000D, // 003E LDINT R3 14 + 0x1C080403, // 003F EQ R2 R2 R3 + 0x780A0002, // 0040 JMPF R2 #0044 + 0x540A000D, // 0041 LDINT R2 14 + 0x80040400, // 0042 RET 1 R2 + 0x70020001, // 0043 JMP #0046 + 0x540A000B, // 0044 LDINT R2 12 + 0x80040400, // 0045 RET 1 R2 + 0x80000000, // 0046 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_template_parameter_usage +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage, /* name */ + be_nested_proto( + 14, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(_X25s_), + /* K2 */ be_nested_str_weak(find), + /* K3 */ be_nested_str_weak(warning), + /* K4 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20parameter_X20_X27_X25s_X27_X20is_X20declared_X20but_X20never_X20used_X20in_X20the_X20template_X20body_X2E), + /* K5 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_validate_template_parameter_usage), + &be_const_str_solidified, + ( &(const binstruction[30]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0x60140010, // 0001 GETGBL R5 G16 + 0x5C180400, // 0002 MOVE R6 R2 + 0x7C140200, // 0003 CALL R5 1 + 0xA8020014, // 0004 EXBLK 0 #001A + 0x5C180A00, // 0005 MOVE R6 R5 + 0x7C180000, // 0006 CALL R6 0 + 0x601C0018, // 0007 GETGBL R7 G24 + 0x58200001, // 0008 LDCONST R8 K1 + 0x5C240C00, // 0009 MOVE R9 R6 + 0x7C1C0400, // 000A CALL R7 2 + 0x8C200902, // 000B GETMET R8 R4 K2 + 0x5C280600, // 000C MOVE R10 R3 + 0x5C2C0E00, // 000D MOVE R11 R7 + 0x7C200600, // 000E CALL R8 3 + 0x5425FFFE, // 000F LDINT R9 -1 + 0x1C201009, // 0010 EQ R8 R8 R9 + 0x78220006, // 0011 JMPF R8 #0019 + 0x8C200103, // 0012 GETMET R8 R0 K3 + 0x60280018, // 0013 GETGBL R10 G24 + 0x582C0004, // 0014 LDCONST R11 K4 + 0x5C300200, // 0015 MOVE R12 R1 + 0x5C340C00, // 0016 MOVE R13 R6 + 0x7C280600, // 0017 CALL R10 3 + 0x7C200400, // 0018 CALL R8 2 + 0x7001FFEA, // 0019 JMP #0005 + 0x58140005, // 001A LDCONST R5 K5 + 0xAC140200, // 001B CATCH R5 1 0 + 0xB0080000, // 001C RAISE 2 R0 R0 + 0x80000000, // 001D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_run +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ + be_nested_proto( + 6, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -6579,35 +7085,20 @@ be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[24]) { /* constants */ + ( &(const bvalue[ 9]) { /* constants */ /* K0 */ be_nested_str_weak(next), /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(template), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_left_brace), - /* K6 */ be_nested_str_weak(at_end), - /* K7 */ be_nested_str_weak(check_right_brace), - /* K8 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K9 */ be_nested_str_weak(current), - /* K10 */ be_nested_str_weak(type), - /* K11 */ be_const_int(0), - /* K12 */ be_nested_str_weak(value), - /* K13 */ be_nested_str_weak(param), - /* K14 */ be_nested_str_weak(_validate_template_parameter_name), - /* K15 */ be_nested_str_weak(_validate_template_parameter_type), - /* K16 */ be_nested_str_weak(push), - /* K17 */ be_const_int(1), - /* K18 */ be_nested_str_weak(expect_right_brace), - /* K19 */ be_nested_str_weak(generate_template_function), - /* K20 */ be_nested_str_weak(params), - /* K21 */ be_nested_str_weak(param_types), - /* K22 */ be_nested_str_weak(symbol_table), - /* K23 */ be_nested_str_weak(create_template), + /* 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_template), + be_str_weak(process_run), &be_const_str_solidified, - ( &(const binstruction[170]) { /* code */ + ( &(const binstruction[18]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x8C040101, // 0002 GETMET R1 R0 K1 @@ -6616,168 +7107,137 @@ be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ 0x5C100200, // 0005 MOVE R4 R1 0x58140003, // 0006 LDCONST R5 K3 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x60080012, // 000E GETGBL R2 G18 - 0x7C080000, // 000F CALL R2 0 - 0x600C0013, // 0010 GETGBL R3 G19 - 0x7C0C0000, // 0011 CALL R3 0 - 0x60100013, // 0012 GETGBL R4 G19 - 0x7C100000, // 0013 CALL R4 0 - 0x8C140106, // 0014 GETMET R5 R0 K6 - 0x7C140200, // 0015 CALL R5 1 - 0x74160054, // 0016 JMPT R5 #006C - 0x8C140107, // 0017 GETMET R5 R0 K7 - 0x7C140200, // 0018 CALL R5 1 - 0x74160051, // 0019 JMPT R5 #006C - 0x8C140108, // 001A GETMET R5 R0 K8 - 0x7C140200, // 001B CALL R5 1 - 0x8C140107, // 001C GETMET R5 R0 K7 - 0x7C140200, // 001D CALL R5 1 - 0x78160000, // 001E JMPF R5 #0020 - 0x7002004B, // 001F JMP #006C - 0x8C140109, // 0020 GETMET R5 R0 K9 - 0x7C140200, // 0021 CALL R5 1 - 0x4C180000, // 0022 LDNIL R6 - 0x20180A06, // 0023 NE R6 R5 R6 - 0x781A0044, // 0024 JMPF R6 #006A - 0x88180B0A, // 0025 GETMBR R6 R5 K10 - 0x1C180D0B, // 0026 EQ R6 R6 K11 - 0x781A0041, // 0027 JMPF R6 #006A - 0x88180B0C, // 0028 GETMBR R6 R5 K12 - 0x1C180D0D, // 0029 EQ R6 R6 K13 - 0x781A003E, // 002A JMPF R6 #006A - 0x8C180100, // 002B GETMET R6 R0 K0 - 0x7C180200, // 002C CALL R6 1 - 0x8C180101, // 002D GETMET R6 R0 K1 - 0x7C180200, // 002E CALL R6 1 - 0x8C1C010E, // 002F GETMET R7 R0 K14 - 0x5C240C00, // 0030 MOVE R9 R6 - 0x5C280800, // 0031 MOVE R10 R4 - 0x7C1C0600, // 0032 CALL R7 3 - 0x741E0002, // 0033 JMPT R7 #0037 - 0x8C1C0104, // 0034 GETMET R7 R0 K4 - 0x7C1C0200, // 0035 CALL R7 1 - 0x80000E00, // 0036 RET 0 - 0x4C1C0000, // 0037 LDNIL R7 - 0x8C200109, // 0038 GETMET R8 R0 K9 - 0x7C200200, // 0039 CALL R8 1 - 0x4C240000, // 003A LDNIL R9 - 0x20201009, // 003B NE R8 R8 R9 - 0x78220015, // 003C JMPF R8 #0053 - 0x8C200109, // 003D GETMET R8 R0 K9 - 0x7C200200, // 003E CALL R8 1 - 0x8820110A, // 003F GETMBR R8 R8 K10 - 0x1C20110B, // 0040 EQ R8 R8 K11 - 0x78220010, // 0041 JMPF R8 #0053 - 0x8C200109, // 0042 GETMET R8 R0 K9 - 0x7C200200, // 0043 CALL R8 1 - 0x8820110C, // 0044 GETMBR R8 R8 K12 - 0x1C20110A, // 0045 EQ R8 R8 K10 - 0x7822000B, // 0046 JMPF R8 #0053 - 0x8C200100, // 0047 GETMET R8 R0 K0 - 0x7C200200, // 0048 CALL R8 1 - 0x8C200101, // 0049 GETMET R8 R0 K1 - 0x7C200200, // 004A CALL R8 1 - 0x5C1C1000, // 004B MOVE R7 R8 - 0x8C20010F, // 004C GETMET R8 R0 K15 - 0x5C280E00, // 004D MOVE R10 R7 - 0x7C200400, // 004E CALL R8 2 - 0x74220002, // 004F JMPT R8 #0053 - 0x8C200104, // 0050 GETMET R8 R0 K4 - 0x7C200200, // 0051 CALL R8 1 - 0x80001000, // 0052 RET 0 - 0x8C200510, // 0053 GETMET R8 R2 K16 - 0x5C280C00, // 0054 MOVE R10 R6 - 0x7C200400, // 0055 CALL R8 2 - 0x50200200, // 0056 LDBOOL R8 1 0 - 0x98100C08, // 0057 SETIDX R4 R6 R8 - 0x4C200000, // 0058 LDNIL R8 - 0x20200E08, // 0059 NE R8 R7 R8 - 0x78220000, // 005A JMPF R8 #005C - 0x980C0C07, // 005B SETIDX R3 R6 R7 - 0x8C200109, // 005C GETMET R8 R0 K9 - 0x7C200200, // 005D CALL R8 1 - 0x4C240000, // 005E LDNIL R9 - 0x20201009, // 005F NE R8 R8 R9 - 0x78220007, // 0060 JMPF R8 #0069 - 0x8C200109, // 0061 GETMET R8 R0 K9 - 0x7C200200, // 0062 CALL R8 1 - 0x8820110A, // 0063 GETMBR R8 R8 K10 - 0x54260022, // 0064 LDINT R9 35 - 0x1C201009, // 0065 EQ R8 R8 R9 - 0x78220001, // 0066 JMPF R8 #0069 - 0x8C200100, // 0067 GETMET R8 R0 K0 - 0x7C200200, // 0068 CALL R8 1 - 0x70020000, // 0069 JMP #006B - 0x70020000, // 006A JMP #006C - 0x7001FFA7, // 006B JMP #0014 - 0x60140012, // 006C GETGBL R5 G18 - 0x7C140000, // 006D CALL R5 0 - 0x5818000B, // 006E LDCONST R6 K11 - 0x8C1C0106, // 006F GETMET R7 R0 K6 - 0x7C1C0200, // 0070 CALL R7 1 - 0x741E0025, // 0071 JMPT R7 #0098 - 0x8C1C0109, // 0072 GETMET R7 R0 K9 - 0x7C1C0200, // 0073 CALL R7 1 - 0x4C200000, // 0074 LDNIL R8 - 0x1C200E08, // 0075 EQ R8 R7 R8 - 0x74220003, // 0076 JMPT R8 #007B - 0x88200F0A, // 0077 GETMBR R8 R7 K10 - 0x54260025, // 0078 LDINT R9 38 - 0x1C201009, // 0079 EQ R8 R8 R9 - 0x78220000, // 007A JMPF R8 #007C - 0x7002001B, // 007B JMP #0098 - 0x88200F0A, // 007C GETMBR R8 R7 K10 - 0x54260019, // 007D LDINT R9 26 - 0x1C201009, // 007E EQ R8 R8 R9 - 0x78220004, // 007F JMPF R8 #0085 - 0x00180D11, // 0080 ADD R6 R6 K17 - 0x8C200B10, // 0081 GETMET R8 R5 K16 - 0x5C280E00, // 0082 MOVE R10 R7 - 0x7C200400, // 0083 CALL R8 2 - 0x7002000F, // 0084 JMP #0095 - 0x88200F0A, // 0085 GETMBR R8 R7 K10 - 0x5426001A, // 0086 LDINT R9 27 - 0x1C201009, // 0087 EQ R8 R8 R9 - 0x78220008, // 0088 JMPF R8 #0092 - 0x1C200D0B, // 0089 EQ R8 R6 K11 - 0x78220001, // 008A JMPF R8 #008D - 0x7002000B, // 008B JMP #0098 - 0x70020003, // 008C JMP #0091 - 0x04180D11, // 008D SUB R6 R6 K17 - 0x8C200B10, // 008E GETMET R8 R5 K16 - 0x5C280E00, // 008F MOVE R10 R7 - 0x7C200400, // 0090 CALL R8 2 - 0x70020002, // 0091 JMP #0095 - 0x8C200B10, // 0092 GETMET R8 R5 K16 - 0x5C280E00, // 0093 MOVE R10 R7 - 0x7C200400, // 0094 CALL R8 2 - 0x8C200100, // 0095 GETMET R8 R0 K0 - 0x7C200200, // 0096 CALL R8 1 - 0x7001FFD6, // 0097 JMP #006F - 0x8C1C0112, // 0098 GETMET R7 R0 K18 - 0x7C1C0200, // 0099 CALL R7 1 - 0x8C1C0113, // 009A GETMET R7 R0 K19 - 0x5C240200, // 009B MOVE R9 R1 - 0x5C280400, // 009C MOVE R10 R2 - 0x5C2C0600, // 009D MOVE R11 R3 - 0x5C300A00, // 009E MOVE R12 R5 - 0x7C1C0A00, // 009F CALL R7 5 - 0x601C0013, // 00A0 GETGBL R7 G19 - 0x7C1C0000, // 00A1 CALL R7 0 - 0x981E2802, // 00A2 SETIDX R7 K20 R2 - 0x981E2A03, // 00A3 SETIDX R7 K21 R3 - 0x88200116, // 00A4 GETMBR R8 R0 K22 - 0x8C201117, // 00A5 GETMET R8 R8 K23 - 0x5C280200, // 00A6 MOVE R10 R1 - 0x5C2C0E00, // 00A7 MOVE R11 R7 - 0x7C200600, // 00A8 CALL R8 3 - 0x80000000, // 00A9 RET 0 + 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_berry_code_block +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_berry_code_block, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(3), + /* K4 */ be_nested_str_weak(error), + /* K5 */ be_nested_str_weak(Expected_X20string_X20literal_X20after_X20_X27berry_X27_X20keyword_X2E_X20Use_X20berry_X20_X22_X22_X22_X3Ccode_X3E_X22_X22_X22_X20or_X20berry_X20_X27_X27_X27_X3Ccode_X3E_X27_X27_X27), + /* K6 */ be_nested_str_weak(skip_statement), + /* K7 */ be_nested_str_weak(value), + /* K8 */ be_nested_str_weak(collect_inline_comment), + /* K9 */ be_nested_str_weak(add), + /* K10 */ be_nested_str_weak(_X23_X20Berry_X20code_X20block_X25s), + /* K11 */ be_nested_str_weak(string), + /* K12 */ be_nested_str_weak(split), + /* K13 */ be_nested_str_weak(_X0A), + /* K14 */ be_nested_str_weak(stop_iteration), + /* K15 */ be_nested_str_weak(_X23_X20End_X20berry_X20code_X20block), + }), + be_str_weak(process_berry_code_block), + &be_const_str_solidified, + ( &(const binstruction[49]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x4C080000, // 0004 LDNIL R2 + 0x1C080202, // 0005 EQ R2 R1 R2 + 0x740A0002, // 0006 JMPT R2 #000A + 0x88080302, // 0007 GETMBR R2 R1 K2 + 0x20080503, // 0008 NE R2 R2 K3 + 0x780A0005, // 0009 JMPF R2 #0010 + 0x8C080104, // 000A GETMET R2 R0 K4 + 0x58100005, // 000B LDCONST R4 K5 + 0x7C080400, // 000C CALL R2 2 + 0x8C080106, // 000D GETMET R2 R0 K6 + 0x7C080200, // 000E CALL R2 1 + 0x80000400, // 000F RET 0 + 0x88080307, // 0010 GETMBR R2 R1 K7 + 0x8C0C0100, // 0011 GETMET R3 R0 K0 + 0x7C0C0200, // 0012 CALL R3 1 + 0x8C0C0108, // 0013 GETMET R3 R0 K8 + 0x7C0C0200, // 0014 CALL R3 1 + 0x8C100109, // 0015 GETMET R4 R0 K9 + 0x60180018, // 0016 GETGBL R6 G24 + 0x581C000A, // 0017 LDCONST R7 K10 + 0x5C200600, // 0018 MOVE R8 R3 + 0x7C180400, // 0019 CALL R6 2 + 0x7C100400, // 001A CALL R4 2 + 0xA4121600, // 001B IMPORT R4 K11 + 0x8C14090C, // 001C GETMET R5 R4 K12 + 0x5C1C0400, // 001D MOVE R7 R2 + 0x5820000D, // 001E LDCONST R8 K13 + 0x7C140600, // 001F CALL R5 3 + 0x60180010, // 0020 GETGBL R6 G16 + 0x5C1C0A00, // 0021 MOVE R7 R5 + 0x7C180200, // 0022 CALL R6 1 + 0xA8020005, // 0023 EXBLK 0 #002A + 0x5C1C0C00, // 0024 MOVE R7 R6 + 0x7C1C0000, // 0025 CALL R7 0 + 0x8C200109, // 0026 GETMET R8 R0 K9 + 0x5C280E00, // 0027 MOVE R10 R7 + 0x7C200400, // 0028 CALL R8 2 + 0x7001FFF9, // 0029 JMP #0024 + 0x5818000E, // 002A LDCONST R6 K14 + 0xAC180200, // 002B CATCH R6 1 0 + 0xB0080000, // 002C RAISE 2 R0 R0 + 0x8C180109, // 002D GETMET R6 R0 K9 + 0x5820000F, // 002E LDCONST R8 K15 + 0x7C180400, // 002F CALL R6 2 + 0x80000000, // 0030 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_for_color_provider +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider, /* name */ + be_nested_proto( + 8, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_process_named_arguments_unified), + /* K1 */ be_nested_str_weak(CONTEXT_COLOR_PROVIDER), + }), + be_str_weak(_process_named_arguments_for_color_provider), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x881C0101, // 0003 GETMBR R7 R0 K1 + 0x7C0C0800, // 0004 CALL R3 4 + 0x80000000, // 0005 RET 0 }) ) ); @@ -6827,138 +7287,9 @@ be_local_closure(class_SimpleDSLTranspiler_join_output, /* name */ /******************************************************************** -** Solidified function: expect_comma +** Solidified function: convert_color ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), - }), - be_str_weak(expect_comma), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001D, // 0006 LDINT R3 30 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_set -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[17]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(variable), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(expect_assign), - /* K6 */ be_nested_str_weak(process_value), - /* K7 */ be_nested_str_weak(CONTEXT_VARIABLE), - /* K8 */ be_nested_str_weak(collect_inline_comment), - /* K9 */ be_nested_str_weak(_create_symbol_by_return_type), - /* K10 */ be_nested_str_weak(return_type), - /* K11 */ be_nested_str_weak(instance_for_validation), - /* K12 */ be_nested_str_weak(get_reference), - /* K13 */ be_nested_str_weak(_X25s_), - /* K14 */ be_nested_str_weak(add), - /* K15 */ be_nested_str_weak(var_X20_X25s_X20_X3D_X20_X25s_X25s), - /* K16 */ be_nested_str_weak(expr), - }), - be_str_weak(process_set), - &be_const_str_solidified, - ( &(const binstruction[43]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x740A0002, // 0008 JMPT R2 #000C - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x80000400, // 000B RET 0 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x7C080200, // 000D CALL R2 1 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x88100107, // 000F GETMBR R4 R0 K7 - 0x7C080400, // 0010 CALL R2 2 - 0x8C0C0108, // 0011 GETMET R3 R0 K8 - 0x7C0C0200, // 0012 CALL R3 1 - 0x8C100109, // 0013 GETMET R4 R0 K9 - 0x5C180200, // 0014 MOVE R6 R1 - 0x881C050A, // 0015 GETMBR R7 R2 K10 - 0x8820050B, // 0016 GETMBR R8 R2 K11 - 0x7C100800, // 0017 CALL R4 4 - 0x4C140000, // 0018 LDNIL R5 - 0x20140805, // 0019 NE R5 R4 R5 - 0x78160002, // 001A JMPF R5 #001E - 0x8C14090C, // 001B GETMET R5 R4 K12 - 0x7C140200, // 001C CALL R5 1 - 0x70020003, // 001D JMP #0022 - 0x60140018, // 001E GETGBL R5 G24 - 0x5818000D, // 001F LDCONST R6 K13 - 0x5C1C0200, // 0020 MOVE R7 R1 - 0x7C140400, // 0021 CALL R5 2 - 0x8C18010E, // 0022 GETMET R6 R0 K14 - 0x60200018, // 0023 GETGBL R8 G24 - 0x5824000F, // 0024 LDCONST R9 K15 - 0x5C280A00, // 0025 MOVE R10 R5 - 0x882C0510, // 0026 GETMBR R11 R2 K16 - 0x5C300600, // 0027 MOVE R12 R3 - 0x7C200800, // 0028 CALL R8 4 - 0x7C180400, // 0029 CALL R6 2 - 0x80000000, // 002A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_user_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* name */ +be_local_closure(class_SimpleDSLTranspiler_convert_color, /* name */ be_nested_proto( 8, /* nstack */ 2, /* argc */ @@ -6969,54 +7300,56 @@ be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* nam NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(process_function_arguments), - /* K3 */ be_nested_str_weak(), - /* K4 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K5 */ be_nested_str_weak(engine), - /* K6 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(User_X20functions_X20must_X20be_X20called_X20with_X20parentheses_X3A_X20user_X2Efunction_name_X28_X29), - /* K9 */ be_nested_str_weak(nil), + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(string), + /* K2 */ be_nested_str_weak(startswith), + /* K3 */ be_nested_str_weak(0x), + /* K4 */ be_nested_str_weak(0xFF_X25s), + /* K5 */ be_const_int(2), + /* K6 */ be_const_int(2147483647), + /* K7 */ be_nested_str_weak(is_color_name), + /* K8 */ be_nested_str_weak(get_named_color_value), + /* K9 */ be_nested_str_weak(0xFFFFFFFF), }), - be_str_weak(_process_user_function_call), + be_str_weak(convert_color), &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0017, // 0004 JMPF R2 #001D - 0x8C080100, // 0005 GETMET R2 R0 K0 - 0x7C080200, // 0006 CALL R2 1 - 0x88080501, // 0007 GETMBR R2 R2 K1 - 0x540E0017, // 0008 LDINT R3 24 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0011, // 000A JMPF R2 #001D - 0x8C080102, // 000B GETMET R2 R0 K2 - 0x50100200, // 000C LDBOOL R4 1 0 - 0x7C080400, // 000D CALL R2 2 - 0x200C0503, // 000E NE R3 R2 K3 - 0x780E0004, // 000F JMPF R3 #0015 - 0x600C0018, // 0010 GETGBL R3 G24 - 0x58100004, // 0011 LDCONST R4 K4 - 0x5C140400, // 0012 MOVE R5 R2 - 0x7C0C0400, // 0013 CALL R3 2 - 0x70020000, // 0014 JMP #0016 - 0x580C0005, // 0015 LDCONST R3 K5 - 0x60100018, // 0016 GETGBL R4 G24 - 0x58140006, // 0017 LDCONST R5 K6 - 0x5C180200, // 0018 MOVE R6 R1 - 0x5C1C0600, // 0019 MOVE R7 R3 - 0x7C100600, // 001A CALL R4 3 - 0x80040800, // 001B RET 1 R4 - 0x70020003, // 001C JMP #0021 - 0x8C080107, // 001D GETMET R2 R0 K7 - 0x58100008, // 001E LDCONST R4 K8 - 0x7C080400, // 001F CALL R2 2 - 0x80061200, // 0020 RET 1 K9 - 0x80000000, // 0021 RET 0 + ( &(const binstruction[36]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0xA40E0200, // 0001 IMPORT R3 K1 + 0x8C100702, // 0002 GETMET R4 R3 K2 + 0x5C180200, // 0003 MOVE R6 R1 + 0x581C0003, // 0004 LDCONST R7 K3 + 0x7C100600, // 0005 CALL R4 3 + 0x78120013, // 0006 JMPF R4 #001B + 0x6010000C, // 0007 GETGBL R4 G12 + 0x5C140200, // 0008 MOVE R5 R1 + 0x7C100200, // 0009 CALL R4 1 + 0x54160009, // 000A LDINT R5 10 + 0x1C100805, // 000B EQ R4 R4 R5 + 0x78120001, // 000C JMPF R4 #000F + 0x80040200, // 000D RET 1 R1 + 0x7002000B, // 000E JMP #001B + 0x6010000C, // 000F GETGBL R4 G12 + 0x5C140200, // 0010 MOVE R5 R1 + 0x7C100200, // 0011 CALL R4 1 + 0x54160007, // 0012 LDINT R5 8 + 0x1C100805, // 0013 EQ R4 R4 R5 + 0x78120005, // 0014 JMPF R4 #001B + 0x60100018, // 0015 GETGBL R4 G24 + 0x58140004, // 0016 LDCONST R5 K4 + 0x401A0B06, // 0017 CONNECT R6 K5 K6 + 0x94180206, // 0018 GETIDX R6 R1 R6 + 0x7C100400, // 0019 CALL R4 2 + 0x80040800, // 001A RET 1 R4 + 0x8C100507, // 001B GETMET R4 R2 K7 + 0x5C180200, // 001C MOVE R6 R1 + 0x7C100400, // 001D CALL R4 2 + 0x78120003, // 001E JMPF R4 #0023 + 0x8C100108, // 001F GETMET R4 R0 K8 + 0x5C180200, // 0020 MOVE R6 R1 + 0x7C100400, // 0021 CALL R4 2 + 0x80040800, // 0022 RET 1 R4 + 0x80061200, // 0023 RET 1 K9 }) ) ); @@ -7024,118 +7357,9 @@ be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* nam /******************************************************************** -** Solidified function: process_sequence_assignment_fluent +** Solidified function: _validate_animation_factory_exists ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_identifier), - /* K1 */ be_nested_str_weak(expect_dot), - /* K2 */ be_nested_str_weak(expect_assign), - /* K3 */ be_nested_str_weak(process_value), - /* K4 */ be_nested_str_weak(CONTEXT_PROPERTY), - /* K5 */ be_nested_str_weak(collect_inline_comment), - /* K6 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2E_X25s_X20_X3D_X20_X25s_X20end), - /* K7 */ be_nested_str_weak(expr), - /* K8 */ be_nested_str_weak(add), - /* K9 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), - /* K10 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_sequence_assignment_fluent), - &be_const_str_solidified, - ( &(const binstruction[29]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C080101, // 0002 GETMET R2 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x8C080100, // 0004 GETMET R2 R0 K0 - 0x7C080200, // 0005 CALL R2 1 - 0x8C0C0102, // 0006 GETMET R3 R0 K2 - 0x7C0C0200, // 0007 CALL R3 1 - 0x8C0C0103, // 0008 GETMET R3 R0 K3 - 0x88140104, // 0009 GETMBR R5 R0 K4 - 0x7C0C0400, // 000A CALL R3 2 - 0x8C100105, // 000B GETMET R4 R0 K5 - 0x7C100200, // 000C CALL R4 1 - 0x60140018, // 000D GETGBL R5 G24 - 0x58180006, // 000E LDCONST R6 K6 - 0x5C1C0200, // 000F MOVE R7 R1 - 0x5C200400, // 0010 MOVE R8 R2 - 0x88240707, // 0011 GETMBR R9 R3 K7 - 0x7C140800, // 0012 CALL R5 4 - 0x8C180108, // 0013 GETMET R6 R0 K8 - 0x60200018, // 0014 GETGBL R8 G24 - 0x58240009, // 0015 LDCONST R9 K9 - 0x8C28010A, // 0016 GETMET R10 R0 K10 - 0x7C280200, // 0017 CALL R10 1 - 0x5C2C0A00, // 0018 MOVE R11 R5 - 0x5C300800, // 0019 MOVE R12 R4 - 0x7C200800, // 001A CALL R8 4 - 0x7C180400, // 001B CALL R6 2 - 0x80000000, // 001C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_colon -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_colon, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), - }), - be_str_weak(expect_colon), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001F, // 0006 LDINT R3 32 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_named_color_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* name */ be_nested_proto( 5, /* nstack */ 2, /* argc */ @@ -7147,515 +7371,18 @@ be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ 1, /* has constants */ ( &(const bvalue[ 2]) { /* constants */ /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get_reference), + /* K1 */ be_nested_str_weak(get), }), - be_str_weak(get_named_color_value), + be_str_weak(_validate_animation_factory_exists), &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ + ( &(const binstruction[ 7]) { /* code */ 0x88080100, // 0000 GETMBR R2 R0 K0 0x8C080501, // 0001 GETMET R2 R2 K1 0x5C100200, // 0002 MOVE R4 R1 0x7C080400, // 0003 CALL R2 2 - 0x80040400, // 0004 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_error_report -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(), - /* K1 */ be_nested_str_weak(has_warnings), - /* K2 */ be_nested_str_weak(Compilation_X20warnings_X3A_X0A), - /* K3 */ be_nested_str_weak(warnings), - /* K4 */ be_nested_str_weak(_X20_X20), - /* K5 */ be_nested_str_weak(_X0A), - /* K6 */ be_nested_str_weak(stop_iteration), - /* K7 */ be_nested_str_weak(No_X20compilation_X20warnings), - }), - be_str_weak(get_error_report), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x58040000, // 0000 LDCONST R1 K0 - 0x8C080101, // 0001 GETMET R2 R0 K1 - 0x7C080200, // 0002 CALL R2 1 - 0x780A000D, // 0003 JMPF R2 #0012 - 0x00040302, // 0004 ADD R1 R1 K2 - 0x60080010, // 0005 GETGBL R2 G16 - 0x880C0103, // 0006 GETMBR R3 R0 K3 - 0x7C080200, // 0007 CALL R2 1 - 0xA8020005, // 0008 EXBLK 0 #000F - 0x5C0C0400, // 0009 MOVE R3 R2 - 0x7C0C0000, // 000A CALL R3 0 - 0x00120803, // 000B ADD R4 K4 R3 - 0x00100905, // 000C ADD R4 R4 K5 - 0x00040204, // 000D ADD R1 R1 R4 - 0x7001FFF9, // 000E JMP #0009 - 0x58080006, // 000F LDCONST R2 K6 - 0xAC080200, // 0010 CATCH R2 1 0 - 0xB0080000, // 0011 RAISE 2 R0 R0 - 0x1C080300, // 0012 EQ R2 R1 K0 - 0x780A0000, // 0013 JMPF R2 #0015 - 0x80060E00, // 0014 RET 1 K7 - 0x80040200, // 0015 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_additive_expression -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ - be_nested_proto( - 15, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(process_multiplicative_expression), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_nested_str_weak(value), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_nested_str_weak(has_dangerous), - /* K7 */ be_nested_str_weak(expr), - /* K8 */ be_nested_str_weak(error), - /* K9 */ be_nested_str_weak(Expression_X20_X27_X25s_X27_X20cannot_X20be_X20used_X20in_X20computed_X20expressions_X2E_X20This_X20creates_X20a_X20new_X20instance_X20at_X20each_X20evaluation_X2E_X20Use_X20either_X3A_X0A_X20_X20set_X20var_name_X20_X3D_X20_X25s_X28_X29_X20_X20_X23_X20Single_X20function_X20call_X0A_X20_X20set_X20computed_X20_X3D_X20_X28existing_var_X20_X2B_X201_X29_X20_X2F_X202_X20_X20_X23_X20Computation_X20with_X20existing_X20values), - /* K10 */ be_nested_str_weak(skip_statement), - /* K11 */ be_nested_str_weak(ExpressionResult), - /* K12 */ be_nested_str_weak(literal), - /* K13 */ be_nested_str_weak(nil), - /* K14 */ be_nested_str_weak(combine), - /* K15 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), - }), - be_str_weak(process_additive_expression), - &be_const_str_solidified, - ( &(const binstruction[68]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x5C180200, // 0001 MOVE R6 R1 - 0x5C1C0400, // 0002 MOVE R7 R2 - 0x5C200600, // 0003 MOVE R8 R3 - 0x7C100800, // 0004 CALL R4 4 - 0x8C140101, // 0005 GETMET R5 R0 K1 - 0x7C140200, // 0006 CALL R5 1 - 0x7416003A, // 0007 JMPT R5 #0043 - 0x8C140102, // 0008 GETMET R5 R0 K2 - 0x7C140200, // 0009 CALL R5 1 - 0x4C180000, // 000A LDNIL R6 - 0x20180A06, // 000B NE R6 R5 R6 - 0x781A0033, // 000C JMPF R6 #0041 - 0x88180B03, // 000D GETMBR R6 R5 K3 - 0x541E0008, // 000E LDINT R7 9 - 0x1C180C07, // 000F EQ R6 R6 R7 - 0x741A0003, // 0010 JMPT R6 #0015 - 0x88180B03, // 0011 GETMBR R6 R5 K3 - 0x541E0009, // 0012 LDINT R7 10 - 0x1C180C07, // 0013 EQ R6 R6 R7 - 0x781A002B, // 0014 JMPF R6 #0041 - 0x88180B04, // 0015 GETMBR R6 R5 K4 - 0x8C1C0105, // 0016 GETMET R7 R0 K5 - 0x7C1C0200, // 0017 CALL R7 1 - 0x8C1C0100, // 0018 GETMET R7 R0 K0 - 0x5C240200, // 0019 MOVE R9 R1 - 0x50280000, // 001A LDBOOL R10 0 0 - 0x5C2C0600, // 001B MOVE R11 R3 - 0x7C1C0800, // 001C CALL R7 4 - 0x88200906, // 001D GETMBR R8 R4 K6 - 0x74220001, // 001E JMPT R8 #0021 - 0x88200F06, // 001F GETMBR R8 R7 K6 - 0x78220012, // 0020 JMPF R8 #0034 - 0x88200906, // 0021 GETMBR R8 R4 K6 - 0x78220001, // 0022 JMPF R8 #0025 - 0x88200907, // 0023 GETMBR R8 R4 K7 - 0x70020000, // 0024 JMP #0026 - 0x88200F07, // 0025 GETMBR R8 R7 K7 - 0x8C240108, // 0026 GETMET R9 R0 K8 - 0x602C0018, // 0027 GETGBL R11 G24 - 0x58300009, // 0028 LDCONST R12 K9 - 0x5C341000, // 0029 MOVE R13 R8 - 0x5C381000, // 002A MOVE R14 R8 - 0x7C2C0600, // 002B CALL R11 3 - 0x7C240400, // 002C CALL R9 2 - 0x8C24010A, // 002D GETMET R9 R0 K10 - 0x7C240200, // 002E CALL R9 1 - 0x8824010B, // 002F GETMBR R9 R0 K11 - 0x8C24130C, // 0030 GETMET R9 R9 K12 - 0x582C000D, // 0031 LDCONST R11 K13 - 0x7C240400, // 0032 CALL R9 2 - 0x80041200, // 0033 RET 1 R9 - 0x8820010B, // 0034 GETMBR R8 R0 K11 - 0x8C20110E, // 0035 GETMET R8 R8 K14 - 0x60280018, // 0036 GETGBL R10 G24 - 0x582C000F, // 0037 LDCONST R11 K15 - 0x88300907, // 0038 GETMBR R12 R4 K7 - 0x5C340C00, // 0039 MOVE R13 R6 - 0x88380F07, // 003A GETMBR R14 R7 K7 - 0x7C280800, // 003B CALL R10 4 - 0x5C2C0800, // 003C MOVE R11 R4 - 0x5C300E00, // 003D MOVE R12 R7 - 0x7C200800, // 003E CALL R8 4 - 0x5C101000, // 003F MOVE R4 R8 - 0x70020000, // 0040 JMP #0042 - 0x70020000, // 0041 JMP #0043 - 0x7001FFC1, // 0042 JMP #0005 - 0x80040800, // 0043 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_template_parameter_name -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_name, /* name */ - be_nested_proto( - 14, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[30]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(contains), - /* K2 */ be_nested_str_weak(error), - /* K3 */ be_nested_str_weak(Duplicate_X20parameter_X20name_X20_X27_X25s_X27_X20in_X20template_X2E_X20Each_X20parameter_X20must_X20have_X20a_X20unique_X20name_X2E), - /* K4 */ be_nested_str_weak(engine), - /* K5 */ be_nested_str_weak(self), - /* K6 */ be_nested_str_weak(animation), - /* K7 */ be_nested_str_weak(color), - /* K8 */ be_nested_str_weak(palette), - /* K9 */ be_nested_str_weak(sequence), - /* K10 */ be_nested_str_weak(template), - /* K11 */ be_nested_str_weak(import), - /* K12 */ be_nested_str_weak(def), - /* K13 */ be_nested_str_weak(end), - /* K14 */ be_nested_str_weak(class), - /* K15 */ be_nested_str_weak(var), - /* K16 */ be_nested_str_weak(if), - /* K17 */ be_nested_str_weak(else), - /* K18 */ be_nested_str_weak(while), - /* K19 */ be_nested_str_weak(for), - /* K20 */ be_nested_str_weak(true), - /* K21 */ be_nested_str_weak(false), - /* K22 */ be_nested_str_weak(nil), - /* K23 */ be_nested_str_weak(return), - /* K24 */ be_nested_str_weak(break), - /* K25 */ be_nested_str_weak(continue), - /* K26 */ be_nested_str_weak(Parameter_X20name_X20_X27_X25s_X27_X20conflicts_X20with_X20reserved_X20keyword_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_param_X27_X20or_X20_X27my__X25s_X27_X2E), - /* K27 */ be_nested_str_weak(stop_iteration), - /* K28 */ be_nested_str_weak(is_color_name), - /* K29 */ be_nested_str_weak(Parameter_X20name_X20_X27_X25s_X27_X20conflicts_X20with_X20built_X2Din_X20color_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_param_X27_X20or_X20_X27my__X25s_X27_X2E), - }), - be_str_weak(_validate_template_parameter_name), - &be_const_str_solidified, - ( &(const binstruction[76]) { /* code */ - 0xA40E0000, // 0000 IMPORT R3 K0 - 0x8C100501, // 0001 GETMET R4 R2 K1 - 0x5C180200, // 0002 MOVE R6 R1 - 0x7C100400, // 0003 CALL R4 2 - 0x78120007, // 0004 JMPF R4 #000D - 0x8C100102, // 0005 GETMET R4 R0 K2 - 0x60180018, // 0006 GETGBL R6 G24 - 0x581C0003, // 0007 LDCONST R7 K3 - 0x5C200200, // 0008 MOVE R8 R1 - 0x7C180400, // 0009 CALL R6 2 - 0x7C100400, // 000A CALL R4 2 - 0x50100000, // 000B LDBOOL R4 0 0 - 0x80040800, // 000C RET 1 R4 - 0x60100012, // 000D GETGBL R4 G18 - 0x7C100000, // 000E CALL R4 0 - 0x40140904, // 000F CONNECT R5 R4 K4 - 0x40140905, // 0010 CONNECT R5 R4 K5 - 0x40140906, // 0011 CONNECT R5 R4 K6 - 0x40140907, // 0012 CONNECT R5 R4 K7 - 0x40140908, // 0013 CONNECT R5 R4 K8 - 0x40140909, // 0014 CONNECT R5 R4 K9 - 0x4014090A, // 0015 CONNECT R5 R4 K10 - 0x4014090B, // 0016 CONNECT R5 R4 K11 - 0x4014090C, // 0017 CONNECT R5 R4 K12 - 0x4014090D, // 0018 CONNECT R5 R4 K13 - 0x4014090E, // 0019 CONNECT R5 R4 K14 - 0x4014090F, // 001A CONNECT R5 R4 K15 - 0x40140910, // 001B CONNECT R5 R4 K16 - 0x40140911, // 001C CONNECT R5 R4 K17 - 0x40140912, // 001D CONNECT R5 R4 K18 - 0x40140913, // 001E CONNECT R5 R4 K19 - 0x40140914, // 001F CONNECT R5 R4 K20 - 0x40140915, // 0020 CONNECT R5 R4 K21 - 0x40140916, // 0021 CONNECT R5 R4 K22 - 0x40140917, // 0022 CONNECT R5 R4 K23 - 0x40140918, // 0023 CONNECT R5 R4 K24 - 0x40140919, // 0024 CONNECT R5 R4 K25 - 0x60140010, // 0025 GETGBL R5 G16 - 0x5C180800, // 0026 MOVE R6 R4 - 0x7C140200, // 0027 CALL R5 1 - 0xA802000F, // 0028 EXBLK 0 #0039 - 0x5C180A00, // 0029 MOVE R6 R5 - 0x7C180000, // 002A CALL R6 0 - 0x1C1C0206, // 002B EQ R7 R1 R6 - 0x781E000A, // 002C JMPF R7 #0038 - 0x8C1C0102, // 002D GETMET R7 R0 K2 - 0x60240018, // 002E GETGBL R9 G24 - 0x5828001A, // 002F LDCONST R10 K26 - 0x5C2C0200, // 0030 MOVE R11 R1 - 0x5C300200, // 0031 MOVE R12 R1 - 0x5C340200, // 0032 MOVE R13 R1 - 0x7C240800, // 0033 CALL R9 4 - 0x7C1C0400, // 0034 CALL R7 2 - 0x501C0000, // 0035 LDBOOL R7 0 0 - 0xA8040001, // 0036 EXBLK 1 1 - 0x80040E00, // 0037 RET 1 R7 - 0x7001FFEF, // 0038 JMP #0029 - 0x5814001B, // 0039 LDCONST R5 K27 - 0xAC140200, // 003A CATCH R5 1 0 - 0xB0080000, // 003B RAISE 2 R0 R0 - 0x8C14071C, // 003C GETMET R5 R3 K28 - 0x5C1C0200, // 003D MOVE R7 R1 - 0x7C140400, // 003E CALL R5 2 - 0x78160009, // 003F JMPF R5 #004A - 0x8C140102, // 0040 GETMET R5 R0 K2 - 0x601C0018, // 0041 GETGBL R7 G24 - 0x5820001D, // 0042 LDCONST R8 K29 - 0x5C240200, // 0043 MOVE R9 R1 - 0x5C280200, // 0044 MOVE R10 R1 - 0x5C2C0200, // 0045 MOVE R11 R1 - 0x7C1C0800, // 0046 CALL R7 4 - 0x7C140400, // 0047 CALL R5 2 - 0x50140000, // 0048 LDBOOL R5 0 0 - 0x80040A00, // 0049 RET 1 R5 - 0x50140200, // 004A LDBOOL R5 1 0 - 0x80040A00, // 004B RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), - }), - be_str_weak(expect_right_brace), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001A, // 0006 LDINT R3 27 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - }), - be_str_weak(check_right_brace), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001A, // 0006 LDINT R3 27 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0000, // 0008 JMPT R2 #000A - 0x50080001, // 0009 LDBOOL R2 0 1 - 0x50080200, // 000A LDBOOL R2 1 0 - 0x80040400, // 000B RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_left_bracket -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_bracket, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X5B_X27), - }), - be_str_weak(expect_left_bracket), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001B, // 0006 LDINT R3 28 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_percentage_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(value), - /* K3 */ be_nested_str_weak(next), - /* K4 */ be_const_int(0), - /* K5 */ be_const_int(2), - /* K6 */ be_nested_str_weak(error), - /* K7 */ be_nested_str_weak(Expected_X20percentage_X20value), - }), - be_str_weak(process_percentage_value), - &be_const_str_solidified, - ( &(const binstruction[47]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0013, // 0004 JMPF R2 #0019 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0005, // 0006 LDINT R3 6 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A000F, // 0008 JMPF R2 #0019 - 0x88080302, // 0009 GETMBR R2 R1 K2 - 0x8C0C0103, // 000A GETMET R3 R0 K3 - 0x7C0C0200, // 000B CALL R3 1 - 0x600C000A, // 000C GETGBL R3 G10 - 0x5411FFFD, // 000D LDINT R4 -2 - 0x40120804, // 000E CONNECT R4 K4 R4 - 0x94100404, // 000F GETIDX R4 R2 R4 - 0x7C0C0200, // 0010 CALL R3 1 - 0x60100009, // 0011 GETGBL R4 G9 - 0x541600FE, // 0012 LDINT R5 255 - 0x08140605, // 0013 MUL R5 R3 R5 - 0x541A0063, // 0014 LDINT R6 100 - 0x0C140A06, // 0015 DIV R5 R5 R6 - 0x7C100200, // 0016 CALL R4 1 - 0x80040800, // 0017 RET 1 R4 - 0x70020014, // 0018 JMP #002E - 0x4C080000, // 0019 LDNIL R2 - 0x20080202, // 001A NE R2 R1 R2 - 0x780A000C, // 001B JMPF R2 #0029 - 0x88080301, // 001C GETMBR R2 R1 K1 - 0x1C080505, // 001D EQ R2 R2 K5 - 0x780A0009, // 001E JMPF R2 #0029 - 0x88080302, // 001F GETMBR R2 R1 K2 - 0x8C0C0103, // 0020 GETMET R3 R0 K3 - 0x7C0C0200, // 0021 CALL R3 1 - 0x600C0009, // 0022 GETGBL R3 G9 - 0x6010000A, // 0023 GETGBL R4 G10 - 0x5C140400, // 0024 MOVE R5 R2 - 0x7C100200, // 0025 CALL R4 1 - 0x7C0C0200, // 0026 CALL R3 1 - 0x80040600, // 0027 RET 1 R3 - 0x70020004, // 0028 JMP #002E - 0x8C080106, // 0029 GETMET R2 R0 K6 - 0x58100007, // 002A LDCONST R4 K7 - 0x7C080400, // 002B CALL R2 2 - 0x540A00FE, // 002C LDINT R2 255 - 0x80040400, // 002D RET 1 R2 - 0x80000000, // 002E RET 0 + 0x4C0C0000, // 0004 LDNIL R3 + 0x200C0403, // 0005 NE R3 R2 R3 + 0x80040600, // 0006 RET 1 R3 }) ) ); @@ -7920,187 +7647,6 @@ be_local_closure(class_SimpleDSLTranspiler_process_animation, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: _create_instance_for_validation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - /* K2 */ be_nested_str_weak(instance), - }), - be_str_weak(_create_instance_for_validation), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0001, // 0006 JMPF R3 #0009 - 0x880C0502, // 0007 GETMBR R3 R2 K2 - 0x70020000, // 0008 JMP #000A - 0x4C0C0000, // 0009 LDNIL R3 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_parameters_core -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_parameters_core, /* name */ - be_nested_proto( - 13, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[17]) { /* constants */ - /* K0 */ be_nested_str_weak(), - /* K1 */ be_nested_str_weak(_create_instance_for_validation), - /* K2 */ be_nested_str_weak(at_end), - /* K3 */ be_nested_str_weak(check_right_paren), - /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), - /* K5 */ be_nested_str_weak(expect_identifier), - /* K6 */ be_nested_str_weak(_validate_single_parameter), - /* K7 */ be_nested_str_weak(expect_assign), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(CONTEXT_VARIABLE), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(expr), - /* K12 */ be_nested_str_weak(current), - /* K13 */ be_nested_str_weak(type), - /* K14 */ be_nested_str_weak(next), - /* K15 */ be_nested_str_weak(error), - /* K16 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - }), - be_str_weak(_process_parameters_core), - &be_const_str_solidified, - ( &(const binstruction[102]) { /* code */ - 0x4C100000, // 0000 LDNIL R4 - 0x5C140200, // 0001 MOVE R5 R1 - 0x20180B00, // 0002 NE R6 R5 K0 - 0x781A0003, // 0003 JMPF R6 #0008 - 0x8C180101, // 0004 GETMET R6 R0 K1 - 0x5C200A00, // 0005 MOVE R8 R5 - 0x7C180400, // 0006 CALL R6 2 - 0x5C100C00, // 0007 MOVE R4 R6 - 0x8C180102, // 0008 GETMET R6 R0 K2 - 0x7C180200, // 0009 CALL R6 1 - 0x741A0059, // 000A JMPT R6 #0065 - 0x8C180103, // 000B GETMET R6 R0 K3 - 0x7C180200, // 000C CALL R6 1 - 0x741A0056, // 000D JMPT R6 #0065 - 0x8C180104, // 000E GETMET R6 R0 K4 - 0x7C180200, // 000F CALL R6 1 - 0x8C180103, // 0010 GETMET R6 R0 K3 - 0x7C180200, // 0011 CALL R6 1 - 0x781A0000, // 0012 JMPF R6 #0014 - 0x70020050, // 0013 JMP #0065 - 0x8C180105, // 0014 GETMET R6 R0 K5 - 0x7C180200, // 0015 CALL R6 1 - 0x4C1C0000, // 0016 LDNIL R7 - 0x201C0807, // 0017 NE R7 R4 R7 - 0x781E0006, // 0018 JMPF R7 #0020 - 0x201C0B00, // 0019 NE R7 R5 K0 - 0x781E0004, // 001A JMPF R7 #0020 - 0x8C1C0106, // 001B GETMET R7 R0 K6 - 0x5C240A00, // 001C MOVE R9 R5 - 0x5C280C00, // 001D MOVE R10 R6 - 0x5C2C0800, // 001E MOVE R11 R4 - 0x7C1C0800, // 001F CALL R7 4 - 0x8C1C0107, // 0020 GETMET R7 R0 K7 - 0x7C1C0200, // 0021 CALL R7 1 - 0x8C1C0108, // 0022 GETMET R7 R0 K8 - 0x88240109, // 0023 GETMBR R9 R0 K9 - 0x7C1C0400, // 0024 CALL R7 2 - 0x8C20010A, // 0025 GETMET R8 R0 K10 - 0x7C200200, // 0026 CALL R8 1 - 0x5C240600, // 0027 MOVE R9 R3 - 0x5C280C00, // 0028 MOVE R10 R6 - 0x882C0F0B, // 0029 GETMBR R11 R7 K11 - 0x5C301000, // 002A MOVE R12 R8 - 0x7C240600, // 002B CALL R9 3 - 0x8C240102, // 002C GETMET R9 R0 K2 - 0x7C240200, // 002D CALL R9 1 - 0x7426000D, // 002E JMPT R9 #003D - 0x8C24010C, // 002F GETMET R9 R0 K12 - 0x7C240200, // 0030 CALL R9 1 - 0x4C280000, // 0031 LDNIL R10 - 0x2028120A, // 0032 NE R10 R9 R10 - 0x782A0006, // 0033 JMPF R10 #003B - 0x8828130D, // 0034 GETMBR R10 R9 K13 - 0x542E0024, // 0035 LDINT R11 37 - 0x1C28140B, // 0036 EQ R10 R10 R11 - 0x782A0002, // 0037 JMPF R10 #003B - 0x8C28010E, // 0038 GETMET R10 R0 K14 - 0x7C280200, // 0039 CALL R10 1 - 0x70020000, // 003A JMP #003C - 0x70020000, // 003B JMP #003D - 0x7001FFEE, // 003C JMP #002C - 0x8C24010C, // 003D GETMET R9 R0 K12 - 0x7C240200, // 003E CALL R9 1 - 0x4C280000, // 003F LDNIL R10 - 0x2024120A, // 0040 NE R9 R9 R10 - 0x7826000A, // 0041 JMPF R9 #004D - 0x8C24010C, // 0042 GETMET R9 R0 K12 - 0x7C240200, // 0043 CALL R9 1 - 0x8824130D, // 0044 GETMBR R9 R9 K13 - 0x542A001D, // 0045 LDINT R10 30 - 0x1C24120A, // 0046 EQ R9 R9 R10 - 0x78260004, // 0047 JMPF R9 #004D - 0x8C24010E, // 0048 GETMET R9 R0 K14 - 0x7C240200, // 0049 CALL R9 1 - 0x8C240104, // 004A GETMET R9 R0 K4 - 0x7C240200, // 004B CALL R9 1 - 0x70020016, // 004C JMP #0064 - 0x8C24010C, // 004D GETMET R9 R0 K12 - 0x7C240200, // 004E CALL R9 1 - 0x4C280000, // 004F LDNIL R10 - 0x2024120A, // 0050 NE R9 R9 R10 - 0x7826000A, // 0051 JMPF R9 #005D - 0x8C24010C, // 0052 GETMET R9 R0 K12 - 0x7C240200, // 0053 CALL R9 1 - 0x8824130D, // 0054 GETMBR R9 R9 K13 - 0x542A0022, // 0055 LDINT R10 35 - 0x1C24120A, // 0056 EQ R9 R9 R10 - 0x78260004, // 0057 JMPF R9 #005D - 0x8C24010E, // 0058 GETMET R9 R0 K14 - 0x7C240200, // 0059 CALL R9 1 - 0x8C240104, // 005A GETMET R9 R0 K4 - 0x7C240200, // 005B CALL R9 1 - 0x70020006, // 005C JMP #0064 - 0x8C240103, // 005D GETMET R9 R0 K3 - 0x7C240200, // 005E CALL R9 1 - 0x74260003, // 005F JMPT R9 #0064 - 0x8C24010F, // 0060 GETMET R9 R0 K15 - 0x582C0010, // 0061 LDCONST R11 K16 - 0x7C240400, // 0062 CALL R9 2 - 0x70020000, // 0063 JMP #0065 - 0x7001FFA2, // 0064 JMP #0008 - 0x80000000, // 0065 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: skip_whitespace ********************************************************************/ @@ -8152,148 +7698,93 @@ be_local_closure(class_SimpleDSLTranspiler_skip_whitespace, /* name */ /******************************************************************** -** Solidified function: _validate_template_parameter_type +** Solidified function: process_unary_expression ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_type, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ be_nested_proto( - 9, /* nstack */ - 2, /* argc */ + 14, /* nstack */ + 4, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(color), - /* K1 */ be_nested_str_weak(palette), - /* K2 */ be_nested_str_weak(animation), - /* K3 */ be_nested_str_weak(number), - /* K4 */ be_nested_str_weak(string), - /* K5 */ be_nested_str_weak(boolean), - /* K6 */ be_nested_str_weak(time), - /* K7 */ be_nested_str_weak(percentage), - /* K8 */ be_nested_str_weak(variable), - /* K9 */ be_nested_str_weak(value_provider), - /* K10 */ be_nested_str_weak(stop_iteration), - /* K11 */ be_nested_str_weak(error), - /* K12 */ be_nested_str_weak(Invalid_X20parameter_X20type_X20_X27_X25s_X27_X2E_X20Valid_X20types_X20are_X3A_X20_X25s), + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(error), + /* K2 */ be_nested_str_weak(Expected_X20value), + /* K3 */ be_nested_str_weak(ExpressionResult), + /* K4 */ be_nested_str_weak(literal), + /* K5 */ be_nested_str_weak(nil), + /* K6 */ be_nested_str_weak(type), + /* K7 */ be_nested_str_weak(next), + /* K8 */ be_nested_str_weak(process_unary_expression), + /* K9 */ be_nested_str_weak(_X28_X2D_X25s_X29), + /* K10 */ be_nested_str_weak(expr), + /* K11 */ be_nested_str_weak(has_dynamic), + /* K12 */ be_nested_str_weak(has_dangerous), + /* K13 */ be_nested_str_weak(return_type), + /* K14 */ be_nested_str_weak(instance_for_validation), + /* K15 */ be_nested_str_weak(process_primary_expression), }), - be_str_weak(_validate_template_parameter_type), + be_str_weak(process_unary_expression), &be_const_str_solidified, - ( &(const binstruction[36]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x400C0500, // 0002 CONNECT R3 R2 K0 - 0x400C0501, // 0003 CONNECT R3 R2 K1 - 0x400C0502, // 0004 CONNECT R3 R2 K2 - 0x400C0503, // 0005 CONNECT R3 R2 K3 - 0x400C0504, // 0006 CONNECT R3 R2 K4 - 0x400C0505, // 0007 CONNECT R3 R2 K5 - 0x400C0506, // 0008 CONNECT R3 R2 K6 - 0x400C0507, // 0009 CONNECT R3 R2 K7 - 0x400C0508, // 000A CONNECT R3 R2 K8 - 0x400C0509, // 000B CONNECT R3 R2 K9 - 0x600C0010, // 000C GETGBL R3 G16 - 0x5C100400, // 000D MOVE R4 R2 - 0x7C0C0200, // 000E CALL R3 1 - 0xA8020007, // 000F EXBLK 0 #0018 - 0x5C100600, // 0010 MOVE R4 R3 - 0x7C100000, // 0011 CALL R4 0 - 0x1C140204, // 0012 EQ R5 R1 R4 - 0x78160002, // 0013 JMPF R5 #0017 - 0x50140200, // 0014 LDBOOL R5 1 0 - 0xA8040001, // 0015 EXBLK 1 1 - 0x80040A00, // 0016 RET 1 R5 - 0x7001FFF7, // 0017 JMP #0010 - 0x580C000A, // 0018 LDCONST R3 K10 - 0xAC0C0200, // 0019 CATCH R3 1 0 - 0xB0080000, // 001A RAISE 2 R0 R0 - 0x8C0C010B, // 001B GETMET R3 R0 K11 - 0x60140018, // 001C GETGBL R5 G24 - 0x5818000C, // 001D LDCONST R6 K12 - 0x5C1C0200, // 001E MOVE R7 R1 - 0x5C200400, // 001F MOVE R8 R2 - 0x7C140600, // 0020 CALL R5 3 - 0x7C0C0400, // 0021 CALL R3 2 - 0x500C0000, // 0022 LDBOOL R3 0 0 - 0x80040600, // 0023 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_event_parameters -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_event_parameters, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* 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(process_time_value), - /* K7 */ be_nested_str_weak(_X22interval_X22_X3A_X20_X25s), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(event_param), - /* K10 */ be_nested_str_weak(_X22value_X22_X3A_X20_X25s), - /* K11 */ be_nested_str_weak(expr), - /* K12 */ be_nested_str_weak(expect_right_paren), - /* K13 */ be_nested_str_weak(_X7D), - }), - be_str_weak(process_event_parameters), - &be_const_str_solidified, - ( &(const binstruction[38]) { /* 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 - 0x740A001B, // 0005 JMPT R2 #0022 - 0x8C080103, // 0006 GETMET R2 R0 K3 - 0x7C080200, // 0007 CALL R2 1 - 0x740A0018, // 0008 JMPT R2 #0022 - 0x8C080104, // 0009 GETMET R2 R0 K4 - 0x7C080200, // 000A CALL R2 1 - 0x4C0C0000, // 000B LDNIL R3 - 0x200C0403, // 000C NE R3 R2 R3 - 0x780E000B, // 000D JMPF R3 #001A - 0x880C0505, // 000E GETMBR R3 R2 K5 - 0x54120004, // 000F LDINT R4 5 - 0x1C0C0604, // 0010 EQ R3 R3 R4 - 0x780E0007, // 0011 JMPF R3 #001A - 0x8C0C0106, // 0012 GETMET R3 R0 K6 - 0x7C0C0200, // 0013 CALL R3 1 - 0x60100018, // 0014 GETGBL R4 G24 - 0x58140007, // 0015 LDCONST R5 K7 - 0x5C180600, // 0016 MOVE R6 R3 - 0x7C100400, // 0017 CALL R4 2 - 0x00040204, // 0018 ADD R1 R1 R4 - 0x70020007, // 0019 JMP #0022 - 0x8C0C0108, // 001A GETMET R3 R0 K8 - 0x58140009, // 001B LDCONST R5 K9 - 0x7C0C0400, // 001C CALL R3 2 - 0x60100018, // 001D GETGBL R4 G24 - 0x5814000A, // 001E LDCONST R5 K10 - 0x8818070B, // 001F GETMBR R6 R3 K11 - 0x7C100400, // 0020 CALL R4 2 - 0x00040204, // 0021 ADD R1 R1 R4 - 0x8C08010C, // 0022 GETMET R2 R0 K12 - 0x7C080200, // 0023 CALL R2 1 - 0x0004030D, // 0024 ADD R1 R1 K13 - 0x80040200, // 0025 RET 1 R1 + ( &(const binstruction[54]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x4C140000, // 0002 LDNIL R5 + 0x1C140805, // 0003 EQ R5 R4 R5 + 0x78160007, // 0004 JMPF R5 #000D + 0x8C140101, // 0005 GETMET R5 R0 K1 + 0x581C0002, // 0006 LDCONST R7 K2 + 0x7C140400, // 0007 CALL R5 2 + 0x88140103, // 0008 GETMBR R5 R0 K3 + 0x8C140B04, // 0009 GETMET R5 R5 K4 + 0x581C0005, // 000A LDCONST R7 K5 + 0x7C140400, // 000B CALL R5 2 + 0x80040A00, // 000C RET 1 R5 + 0x88140906, // 000D GETMBR R5 R4 K6 + 0x541A0009, // 000E LDINT R6 10 + 0x1C140A06, // 000F EQ R5 R5 R6 + 0x78160012, // 0010 JMPF R5 #0024 + 0x8C140107, // 0011 GETMET R5 R0 K7 + 0x7C140200, // 0012 CALL R5 1 + 0x8C140108, // 0013 GETMET R5 R0 K8 + 0x5C1C0200, // 0014 MOVE R7 R1 + 0x50200000, // 0015 LDBOOL R8 0 0 + 0x5C240600, // 0016 MOVE R9 R3 + 0x7C140800, // 0017 CALL R5 4 + 0x8C180103, // 0018 GETMET R6 R0 K3 + 0x60200018, // 0019 GETGBL R8 G24 + 0x58240009, // 001A LDCONST R9 K9 + 0x88280B0A, // 001B GETMBR R10 R5 K10 + 0x7C200400, // 001C CALL R8 2 + 0x88240B0B, // 001D GETMBR R9 R5 K11 + 0x88280B0C, // 001E GETMBR R10 R5 K12 + 0x502C0200, // 001F LDBOOL R11 1 0 + 0x88300B0D, // 0020 GETMBR R12 R5 K13 + 0x88340B0E, // 0021 GETMBR R13 R5 K14 + 0x7C180E00, // 0022 CALL R6 7 + 0x80040C00, // 0023 RET 1 R6 + 0x88140906, // 0024 GETMBR R5 R4 K6 + 0x541A0008, // 0025 LDINT R6 9 + 0x1C140A06, // 0026 EQ R5 R5 R6 + 0x78160007, // 0027 JMPF R5 #0030 + 0x8C140107, // 0028 GETMET R5 R0 K7 + 0x7C140200, // 0029 CALL R5 1 + 0x8C140108, // 002A GETMET R5 R0 K8 + 0x5C1C0200, // 002B MOVE R7 R1 + 0x50200000, // 002C LDBOOL R8 0 0 + 0x5C240600, // 002D MOVE R9 R3 + 0x7C140800, // 002E CALL R5 4 + 0x80040A00, // 002F RET 1 R5 + 0x8C14010F, // 0030 GETMET R5 R0 K15 + 0x5C1C0200, // 0031 MOVE R7 R1 + 0x5C200400, // 0032 MOVE R8 R2 + 0x5C240600, // 0033 MOVE R9 R3 + 0x7C140800, // 0034 CALL R5 4 + 0x80040A00, // 0035 RET 1 R5 }) ) ); @@ -8351,11 +7842,11 @@ be_local_closure(class_SimpleDSLTranspiler_expect_number, /* name */ /******************************************************************** -** Solidified function: check_right_paren +** Solidified function: process_restart_statement_fluent ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent, /* name */ be_nested_proto( - 4, /* nstack */ + 12, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -8363,25 +7854,53 @@ be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ + ( &(const bvalue[11]) { /* constants */ /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), + /* K1 */ be_nested_str_weak(value), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(expect_identifier), + /* K4 */ be_nested_str_weak(_validate_value_provider_reference), + /* K5 */ be_nested_str_weak(skip_statement), + /* K6 */ be_nested_str_weak(collect_inline_comment), + /* K7 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2Estart_X28engine_X2Etime_ms_X29_X20end), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), + /* K10 */ be_nested_str_weak(get_indent), }), - be_str_weak(check_right_paren), + be_str_weak(process_restart_statement_fluent), &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ + ( &(const binstruction[31]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0018, // 0006 LDINT R3 25 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0000, // 0008 JMPT R2 #000A - 0x50080001, // 0009 LDBOOL R2 0 1 - 0x50080200, // 000A LDBOOL R2 1 0 - 0x80040400, // 000B RET 1 R2 + 0x88040301, // 0002 GETMBR R1 R1 K1 + 0x8C080102, // 0003 GETMET R2 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x8C080103, // 0005 GETMET R2 R0 K3 + 0x7C080200, // 0006 CALL R2 1 + 0x8C0C0104, // 0007 GETMET R3 R0 K4 + 0x5C140400, // 0008 MOVE R5 R2 + 0x5C180200, // 0009 MOVE R6 R1 + 0x7C0C0600, // 000A CALL R3 3 + 0x740E0002, // 000B JMPT R3 #000F + 0x8C0C0105, // 000C GETMET R3 R0 K5 + 0x7C0C0200, // 000D CALL R3 1 + 0x80000600, // 000E RET 0 + 0x8C0C0106, // 000F GETMET R3 R0 K6 + 0x7C0C0200, // 0010 CALL R3 1 + 0x60100018, // 0011 GETGBL R4 G24 + 0x58140007, // 0012 LDCONST R5 K7 + 0x5C180400, // 0013 MOVE R6 R2 + 0x7C100400, // 0014 CALL R4 2 + 0x8C140108, // 0015 GETMET R5 R0 K8 + 0x601C0018, // 0016 GETGBL R7 G24 + 0x58200009, // 0017 LDCONST R8 K9 + 0x8C24010A, // 0018 GETMET R9 R0 K10 + 0x7C240200, // 0019 CALL R9 1 + 0x5C280800, // 001A MOVE R10 R4 + 0x5C2C0600, // 001B MOVE R11 R3 + 0x7C1C0800, // 001C CALL R7 4 + 0x7C140400, // 001D CALL R5 2 + 0x80000000, // 001E RET 0 }) ) ); @@ -8419,1679 +7938,6 @@ be_local_closure(class_SimpleDSLTranspiler_add, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: expect_left_paren -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_paren, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X28_X27), - }), - be_str_weak(expect_left_paren), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0017, // 0006 LDINT R3 24 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_warnings -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_warnings, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(warnings), - }), - be_str_weak(get_warnings), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_palette_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_palette_color, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(error), - /* K3 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette), - /* K4 */ be_nested_str_weak(0xFFFFFFFF), - /* K5 */ be_nested_str_weak(type), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(convert_color), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_const_int(1), - /* K10 */ be_nested_str_weak(is_color_name), - /* K11 */ be_nested_str_weak(get_named_color_value), - /* K12 */ be_nested_str_weak(Unknown_X20color_X20_X27_X25s_X27_X2E_X20Palettes_X20only_X20accept_X20hex_X20colors_X20_X280xRRGGBB_X29_X20or_X20predefined_X20color_X20names_X20_X28like_X20_X27red_X27_X2C_X20_X27blue_X27_X2C_X20_X27green_X27_X29_X2C_X20but_X20not_X20custom_X20colors_X20defined_X20previously_X2E_X20For_X20dynamic_X20palettes_X20with_X20custom_X20colors_X2C_X20use_X20user_X20functions_X20instead_X2E), - /* K13 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette_X2E_X20Use_X20hex_X20colors_X20_X280xRRGGBB_X29_X20or_X20predefined_X20color_X20names_X20_X28like_X20_X27red_X27_X2C_X20_X27blue_X27_X2C_X20_X27green_X27_X29_X2E), - }), - be_str_weak(process_palette_color), - &be_const_str_solidified, - ( &(const binstruction[45]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080101, // 0001 GETMET R2 R0 K1 - 0x7C080200, // 0002 CALL R2 1 - 0x4C0C0000, // 0003 LDNIL R3 - 0x1C0C0403, // 0004 EQ R3 R2 R3 - 0x780E0003, // 0005 JMPF R3 #000A - 0x8C0C0102, // 0006 GETMET R3 R0 K2 - 0x58140003, // 0007 LDCONST R5 K3 - 0x7C0C0400, // 0008 CALL R3 2 - 0x80060800, // 0009 RET 1 K4 - 0x880C0505, // 000A GETMBR R3 R2 K5 - 0x54120003, // 000B LDINT R4 4 - 0x1C0C0604, // 000C EQ R3 R3 R4 - 0x780E0005, // 000D JMPF R3 #0014 - 0x8C0C0106, // 000E GETMET R3 R0 K6 - 0x7C0C0200, // 000F CALL R3 1 - 0x8C0C0107, // 0010 GETMET R3 R0 K7 - 0x88140508, // 0011 GETMBR R5 R2 K8 - 0x7C0C0400, // 0012 CALL R3 2 - 0x80040600, // 0013 RET 1 R3 - 0x880C0505, // 0014 GETMBR R3 R2 K5 - 0x1C0C0709, // 0015 EQ R3 R3 K9 - 0x780E0011, // 0016 JMPF R3 #0029 - 0x880C0508, // 0017 GETMBR R3 R2 K8 - 0x8C100106, // 0018 GETMET R4 R0 K6 - 0x7C100200, // 0019 CALL R4 1 - 0x8C10030A, // 001A GETMET R4 R1 K10 - 0x5C180600, // 001B MOVE R6 R3 - 0x7C100400, // 001C CALL R4 2 - 0x78120003, // 001D JMPF R4 #0022 - 0x8C10010B, // 001E GETMET R4 R0 K11 - 0x5C180600, // 001F MOVE R6 R3 - 0x7C100400, // 0020 CALL R4 2 - 0x80040800, // 0021 RET 1 R4 - 0x8C100102, // 0022 GETMET R4 R0 K2 - 0x60180018, // 0023 GETGBL R6 G24 - 0x581C000C, // 0024 LDCONST R7 K12 - 0x5C200600, // 0025 MOVE R8 R3 - 0x7C180400, // 0026 CALL R6 2 - 0x7C100400, // 0027 CALL R4 2 - 0x80060800, // 0028 RET 1 K4 - 0x8C0C0102, // 0029 GETMET R3 R0 K2 - 0x5814000D, // 002A LDCONST R5 K13 - 0x7C0C0400, // 002B CALL R3 2 - 0x80060800, // 002C RET 1 K4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_log_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_log_call, /* name */ - be_nested_proto( - 10, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(fluent), - /* K1 */ be_nested_str_weak(def_X20_X28engine_X29_X20log_X28f_X22_X25s_X22_X2C_X203_X29_X20end), - /* K2 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), - /* K3 */ be_nested_str_weak(get_indent), - /* K4 */ be_nested_str_weak(CONTEXT_EXPRESSION), - /* K5 */ be_nested_str_weak(log_X28f_X22_X25s_X22_X2C_X203_X29), - /* K6 */ be_nested_str_weak(log_X28f_X22_X25s_X22_X2C_X203_X29_X25s), - }), - be_str_weak(process_log_call), - &be_const_str_solidified, - ( &(const binstruction[31]) { /* code */ - 0x1C100500, // 0000 EQ R4 R2 K0 - 0x7812000C, // 0001 JMPF R4 #000F - 0x60100018, // 0002 GETGBL R4 G24 - 0x58140001, // 0003 LDCONST R5 K1 - 0x5C180200, // 0004 MOVE R6 R1 - 0x7C100400, // 0005 CALL R4 2 - 0x60140018, // 0006 GETGBL R5 G24 - 0x58180002, // 0007 LDCONST R6 K2 - 0x8C1C0103, // 0008 GETMET R7 R0 K3 - 0x7C1C0200, // 0009 CALL R7 1 - 0x5C200800, // 000A MOVE R8 R4 - 0x5C240600, // 000B MOVE R9 R3 - 0x7C140800, // 000C CALL R5 4 - 0x80040A00, // 000D RET 1 R5 - 0x7002000E, // 000E JMP #001E - 0x88100104, // 000F GETMBR R4 R0 K4 - 0x1C100404, // 0010 EQ R4 R2 R4 - 0x78120005, // 0011 JMPF R4 #0018 - 0x60100018, // 0012 GETGBL R4 G24 - 0x58140005, // 0013 LDCONST R5 K5 - 0x5C180200, // 0014 MOVE R6 R1 - 0x7C100400, // 0015 CALL R4 2 - 0x80040800, // 0016 RET 1 R4 - 0x70020005, // 0017 JMP #001E - 0x60100018, // 0018 GETGBL R4 G24 - 0x58140006, // 0019 LDCONST R5 K6 - 0x5C180200, // 001A MOVE R6 R1 - 0x5C1C0600, // 001B MOVE R7 R3 - 0x7C100600, // 001C CALL R4 3 - 0x80040800, // 001D RET 1 R4 - 0x80000000, // 001E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: has_warnings -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_has_warnings, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(warnings), - /* K1 */ be_const_int(0), - }), - be_str_weak(has_warnings), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x24040301, // 0003 GT R1 R1 K1 - 0x80040200, // 0004 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_color -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_color, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(string), - /* K2 */ be_nested_str_weak(startswith), - /* K3 */ be_nested_str_weak(0x), - /* K4 */ be_nested_str_weak(0xFF_X25s), - /* K5 */ be_const_int(2), - /* K6 */ be_const_int(2147483647), - /* K7 */ be_nested_str_weak(is_color_name), - /* K8 */ be_nested_str_weak(get_named_color_value), - /* K9 */ be_nested_str_weak(0xFFFFFFFF), - }), - be_str_weak(convert_color), - &be_const_str_solidified, - ( &(const binstruction[36]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0xA40E0200, // 0001 IMPORT R3 K1 - 0x8C100702, // 0002 GETMET R4 R3 K2 - 0x5C180200, // 0003 MOVE R6 R1 - 0x581C0003, // 0004 LDCONST R7 K3 - 0x7C100600, // 0005 CALL R4 3 - 0x78120013, // 0006 JMPF R4 #001B - 0x6010000C, // 0007 GETGBL R4 G12 - 0x5C140200, // 0008 MOVE R5 R1 - 0x7C100200, // 0009 CALL R4 1 - 0x54160009, // 000A LDINT R5 10 - 0x1C100805, // 000B EQ R4 R4 R5 - 0x78120001, // 000C JMPF R4 #000F - 0x80040200, // 000D RET 1 R1 - 0x7002000B, // 000E JMP #001B - 0x6010000C, // 000F GETGBL R4 G12 - 0x5C140200, // 0010 MOVE R5 R1 - 0x7C100200, // 0011 CALL R4 1 - 0x54160007, // 0012 LDINT R5 8 - 0x1C100805, // 0013 EQ R4 R4 R5 - 0x78120005, // 0014 JMPF R4 #001B - 0x60100018, // 0015 GETGBL R4 G24 - 0x58140004, // 0016 LDCONST R5 K4 - 0x401A0B06, // 0017 CONNECT R6 K5 K6 - 0x94180206, // 0018 GETIDX R6 R1 R6 - 0x7C100400, // 0019 CALL R4 2 - 0x80040800, // 001A RET 1 R4 - 0x8C100507, // 001B GETMET R4 R2 K7 - 0x5C180200, // 001C MOVE R6 R1 - 0x7C100400, // 001D CALL R4 2 - 0x78120003, // 001E JMPF R4 #0023 - 0x8C100108, // 001F GETMET R4 R0 K8 - 0x5C180200, // 0020 MOVE R6 R1 - 0x7C100400, // 0021 CALL R4 2 - 0x80040800, // 0022 RET 1 R4 - 0x80061200, // 0023 RET 1 K9 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_to_vrgb -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_to_vrgb, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(format), - /* K3 */ be_nested_str_weak(_X2502X), - /* K4 */ be_nested_str_weak(FFFFFF), - /* K5 */ be_nested_str_weak(startswith), - /* K6 */ be_nested_str_weak(0x), - /* K7 */ be_const_int(2), - }), - be_str_weak(convert_to_vrgb), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0xA40E0000, // 0000 IMPORT R3 K0 - 0x60100009, // 0001 GETGBL R4 G9 - 0x6014000A, // 0002 GETGBL R5 G10 - 0x5C180200, // 0003 MOVE R6 R1 - 0x7C140200, // 0004 CALL R5 1 - 0x7C100200, // 0005 CALL R4 1 - 0x14140901, // 0006 LT R5 R4 K1 - 0x78160001, // 0007 JMPF R5 #000A - 0x58100001, // 0008 LDCONST R4 K1 - 0x70020003, // 0009 JMP #000E - 0x541600FE, // 000A LDINT R5 255 - 0x24140805, // 000B GT R5 R4 R5 - 0x78160000, // 000C JMPF R5 #000E - 0x541200FE, // 000D LDINT R4 255 - 0x8C140702, // 000E GETMET R5 R3 K2 - 0x581C0003, // 000F LDCONST R7 K3 - 0x5C200800, // 0010 MOVE R8 R4 - 0x7C140600, // 0011 CALL R5 3 - 0x60180008, // 0012 GETGBL R6 G8 - 0x5C1C0400, // 0013 MOVE R7 R2 - 0x7C180200, // 0014 CALL R6 1 - 0x581C0004, // 0015 LDCONST R7 K4 - 0x8C200705, // 0016 GETMET R8 R3 K5 - 0x5C280C00, // 0017 MOVE R10 R6 - 0x582C0006, // 0018 LDCONST R11 K6 - 0x7C200600, // 0019 CALL R8 3 - 0x7822000A, // 001A JMPF R8 #0026 - 0x6020000C, // 001B GETGBL R8 G12 - 0x5C240C00, // 001C MOVE R9 R6 - 0x7C200200, // 001D CALL R8 1 - 0x54260009, // 001E LDINT R9 10 - 0x28201009, // 001F GE R8 R8 R9 - 0x78220004, // 0020 JMPF R8 #0026 - 0x54220003, // 0021 LDINT R8 4 - 0x54260008, // 0022 LDINT R9 9 - 0x40201009, // 0023 CONNECT R8 R8 R9 - 0x941C0C08, // 0024 GETIDX R7 R6 R8 - 0x7002000D, // 0025 JMP #0034 - 0x8C200705, // 0026 GETMET R8 R3 K5 - 0x5C280C00, // 0027 MOVE R10 R6 - 0x582C0006, // 0028 LDCONST R11 K6 - 0x7C200600, // 0029 CALL R8 3 - 0x78220008, // 002A JMPF R8 #0034 - 0x6020000C, // 002B GETGBL R8 G12 - 0x5C240C00, // 002C MOVE R9 R6 - 0x7C200200, // 002D CALL R8 1 - 0x54260007, // 002E LDINT R9 8 - 0x1C201009, // 002F EQ R8 R8 R9 - 0x78220002, // 0030 JMPF R8 #0034 - 0x54220006, // 0031 LDINT R8 7 - 0x40220E08, // 0032 CONNECT R8 K7 R8 - 0x941C0C08, // 0033 GETIDX R7 R6 R8 - 0x00200A07, // 0034 ADD R8 R5 R7 - 0x80041000, // 0035 RET 1 R8 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_wait_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(process_time_value), - /* K2 */ be_nested_str_weak(collect_inline_comment), - /* K3 */ be_nested_str_weak(add), - /* K4 */ be_nested_str_weak(_X25s_X2Epush_wait_step_X28_X25s_X29_X25s), - /* K5 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_wait_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x8C0C0103, // 0006 GETMET R3 R0 K3 - 0x60140018, // 0007 GETGBL R5 G24 - 0x58180004, // 0008 LDCONST R6 K4 - 0x8C1C0105, // 0009 GETMET R7 R0 K5 - 0x7C1C0200, // 000A CALL R7 1 - 0x5C200200, // 000B MOVE R8 R1 - 0x5C240400, // 000C MOVE R9 R2 - 0x7C140800, // 000D CALL R5 4 - 0x7C0C0400, // 000E CALL R3 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_color_provider_factory_exists -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - /* K2 */ be_nested_str_weak(type), - }), - be_str_weak(_validate_color_provider_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x780E0003, // 0006 JMPF R3 #000B - 0x880C0502, // 0007 GETMBR R3 R2 K2 - 0x54120009, // 0008 LDINT R4 10 - 0x1C0C0604, // 0009 EQ R3 R3 R4 - 0x740E0000, // 000A JMPT R3 #000C - 0x500C0001, // 000B LDBOOL R3 0 1 - 0x500C0200, // 000C LDBOOL R3 1 0 - 0x80040600, // 000D RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_array_literal -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[19]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_bracket), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_bracket), - /* K3 */ be_nested_str_weak(process_value), - /* K4 */ be_nested_str_weak(CONTEXT_ARRAY_ELEMENT), - /* K5 */ be_nested_str_weak(push), - /* K6 */ be_nested_str_weak(expr), - /* K7 */ be_nested_str_weak(current), - /* K8 */ be_nested_str_weak(type), - /* K9 */ be_nested_str_weak(next), - /* K10 */ be_nested_str_weak(error), - /* K11 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), - /* K12 */ be_nested_str_weak(expect_right_bracket), - /* K13 */ be_nested_str_weak(_X5B), - /* K14 */ be_const_int(0), - /* K15 */ be_const_int(1), - /* K16 */ be_nested_str_weak(_X2C_X20), - /* K17 */ be_nested_str_weak(stop_iteration), - /* K18 */ be_nested_str_weak(_X5D), - }), - be_str_weak(process_array_literal), - &be_const_str_solidified, - ( &(const binstruction[62]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x60040012, // 0002 GETGBL R1 G18 - 0x7C040000, // 0003 CALL R1 0 - 0x8C080101, // 0004 GETMET R2 R0 K1 - 0x7C080200, // 0005 CALL R2 1 - 0x740A001E, // 0006 JMPT R2 #0026 - 0x8C080102, // 0007 GETMET R2 R0 K2 - 0x7C080200, // 0008 CALL R2 1 - 0x740A001B, // 0009 JMPT R2 #0026 - 0x8C080103, // 000A GETMET R2 R0 K3 - 0x88100104, // 000B GETMBR R4 R0 K4 - 0x7C080400, // 000C CALL R2 2 - 0x8C0C0305, // 000D GETMET R3 R1 K5 - 0x88140506, // 000E GETMBR R5 R2 K6 - 0x7C0C0400, // 000F CALL R3 2 - 0x8C0C0107, // 0010 GETMET R3 R0 K7 - 0x7C0C0200, // 0011 CALL R3 1 - 0x4C100000, // 0012 LDNIL R4 - 0x200C0604, // 0013 NE R3 R3 R4 - 0x780E0008, // 0014 JMPF R3 #001E - 0x8C0C0107, // 0015 GETMET R3 R0 K7 - 0x7C0C0200, // 0016 CALL R3 1 - 0x880C0708, // 0017 GETMBR R3 R3 K8 - 0x5412001D, // 0018 LDINT R4 30 - 0x1C0C0604, // 0019 EQ R3 R3 R4 - 0x780E0002, // 001A JMPF R3 #001E - 0x8C0C0109, // 001B GETMET R3 R0 K9 - 0x7C0C0200, // 001C CALL R3 1 - 0x70020006, // 001D JMP #0025 - 0x8C0C0102, // 001E GETMET R3 R0 K2 - 0x7C0C0200, // 001F CALL R3 1 - 0x740E0003, // 0020 JMPT R3 #0025 - 0x8C0C010A, // 0021 GETMET R3 R0 K10 - 0x5814000B, // 0022 LDCONST R5 K11 - 0x7C0C0400, // 0023 CALL R3 2 - 0x70020000, // 0024 JMP #0026 - 0x7001FFDD, // 0025 JMP #0004 - 0x8C08010C, // 0026 GETMET R2 R0 K12 - 0x7C080200, // 0027 CALL R2 1 - 0x5808000D, // 0028 LDCONST R2 K13 - 0x600C0010, // 0029 GETGBL R3 G16 - 0x6010000C, // 002A GETGBL R4 G12 - 0x5C140200, // 002B MOVE R5 R1 - 0x7C100200, // 002C CALL R4 1 - 0x0410090F, // 002D SUB R4 R4 K15 - 0x40121C04, // 002E CONNECT R4 K14 R4 - 0x7C0C0200, // 002F CALL R3 1 - 0xA8020007, // 0030 EXBLK 0 #0039 - 0x5C100600, // 0031 MOVE R4 R3 - 0x7C100000, // 0032 CALL R4 0 - 0x2414090E, // 0033 GT R5 R4 K14 - 0x78160000, // 0034 JMPF R5 #0036 - 0x00080510, // 0035 ADD R2 R2 K16 - 0x94140204, // 0036 GETIDX R5 R1 R4 - 0x00080405, // 0037 ADD R2 R2 R5 - 0x7001FFF7, // 0038 JMP #0031 - 0x580C0011, // 0039 LDCONST R3 K17 - 0xAC0C0200, // 003A CATCH R3 1 0 - 0xB0080000, // 003B RAISE 2 R0 R0 - 0x00080512, // 003C ADD R2 R2 K18 - 0x80040400, // 003D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _is_valid_identifier -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__is_valid_identifier, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(a), - /* K3 */ be_nested_str_weak(z), - /* K4 */ be_nested_str_weak(A), - /* K5 */ be_nested_str_weak(Z), - /* K6 */ be_nested_str_weak(_), - /* K7 */ be_const_int(1), - /* K8 */ be_nested_str_weak(0), - /* K9 */ be_nested_str_weak(9), - /* K10 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(_is_valid_identifier), - &be_const_str_solidified, - ( &(const binstruction[61]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x600C000C, // 0001 GETGBL R3 G12 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C0C0200, // 0003 CALL R3 1 - 0x1C0C0701, // 0004 EQ R3 R3 K1 - 0x780E0001, // 0005 JMPF R3 #0008 - 0x500C0000, // 0006 LDBOOL R3 0 0 - 0x80040600, // 0007 RET 1 R3 - 0x940C0301, // 0008 GETIDX R3 R1 K1 - 0x28100702, // 0009 GE R4 R3 K2 - 0x78120001, // 000A JMPF R4 #000D - 0x18100703, // 000B LE R4 R3 K3 - 0x74120006, // 000C JMPT R4 #0014 - 0x28100704, // 000D GE R4 R3 K4 - 0x78120001, // 000E JMPF R4 #0011 - 0x18100705, // 000F LE R4 R3 K5 - 0x74120002, // 0010 JMPT R4 #0014 - 0x1C100706, // 0011 EQ R4 R3 K6 - 0x74120000, // 0012 JMPT R4 #0014 - 0x50100001, // 0013 LDBOOL R4 0 1 - 0x50100200, // 0014 LDBOOL R4 1 0 - 0x74120001, // 0015 JMPT R4 #0018 - 0x50100000, // 0016 LDBOOL R4 0 0 - 0x80040800, // 0017 RET 1 R4 - 0x60100010, // 0018 GETGBL R4 G16 - 0x6014000C, // 0019 GETGBL R5 G12 - 0x5C180200, // 001A MOVE R6 R1 - 0x7C140200, // 001B CALL R5 1 - 0x04140B07, // 001C SUB R5 R5 K7 - 0x40160E05, // 001D CONNECT R5 K7 R5 - 0x7C100200, // 001E CALL R4 1 - 0xA8020017, // 001F EXBLK 0 #0038 - 0x5C140800, // 0020 MOVE R5 R4 - 0x7C140000, // 0021 CALL R5 0 - 0x94180205, // 0022 GETIDX R6 R1 R5 - 0x281C0D02, // 0023 GE R7 R6 K2 - 0x781E0001, // 0024 JMPF R7 #0027 - 0x181C0D03, // 0025 LE R7 R6 K3 - 0x741E000A, // 0026 JMPT R7 #0032 - 0x281C0D04, // 0027 GE R7 R6 K4 - 0x781E0001, // 0028 JMPF R7 #002B - 0x181C0D05, // 0029 LE R7 R6 K5 - 0x741E0006, // 002A JMPT R7 #0032 - 0x281C0D08, // 002B GE R7 R6 K8 - 0x781E0001, // 002C JMPF R7 #002F - 0x181C0D09, // 002D LE R7 R6 K9 - 0x741E0002, // 002E JMPT R7 #0032 - 0x1C1C0D06, // 002F EQ R7 R6 K6 - 0x741E0000, // 0030 JMPT R7 #0032 - 0x501C0001, // 0031 LDBOOL R7 0 1 - 0x501C0200, // 0032 LDBOOL R7 1 0 - 0x741E0002, // 0033 JMPT R7 #0037 - 0x501C0000, // 0034 LDBOOL R7 0 0 - 0xA8040001, // 0035 EXBLK 1 1 - 0x80040E00, // 0036 RET 1 R7 - 0x7001FFE7, // 0037 JMP #0020 - 0x5810000A, // 0038 LDCONST R4 K10 - 0xAC100200, // 0039 CATCH R4 1 0 - 0xB0080000, // 003A RAISE 2 R0 R0 - 0x50100200, // 003B LDBOOL R4 1 0 - 0x80040800, // 003C RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: convert_time_to_ms -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_convert_time_to_ms, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(endswith), - /* K2 */ be_nested_str_weak(ms), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(s), - /* K5 */ be_nested_str_weak(m), - /* K6 */ be_nested_str_weak(h), - /* K7 */ be_const_int(3600000), - }), - be_str_weak(convert_time_to_ms), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x8C0C0501, // 0001 GETMET R3 R2 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x58180002, // 0003 LDCONST R6 K2 - 0x7C0C0600, // 0004 CALL R3 3 - 0x780E0008, // 0005 JMPF R3 #000F - 0x600C0009, // 0006 GETGBL R3 G9 - 0x6010000A, // 0007 GETGBL R4 G10 - 0x5415FFFC, // 0008 LDINT R5 -3 - 0x40160605, // 0009 CONNECT R5 K3 R5 - 0x94140205, // 000A GETIDX R5 R1 R5 - 0x7C100200, // 000B CALL R4 1 - 0x7C0C0200, // 000C CALL R3 1 - 0x80040600, // 000D RET 1 R3 - 0x7002002D, // 000E JMP #003D - 0x8C0C0501, // 000F GETMET R3 R2 K1 - 0x5C140200, // 0010 MOVE R5 R1 - 0x58180004, // 0011 LDCONST R6 K4 - 0x7C0C0600, // 0012 CALL R3 3 - 0x780E000A, // 0013 JMPF R3 #001F - 0x600C0009, // 0014 GETGBL R3 G9 - 0x6010000A, // 0015 GETGBL R4 G10 - 0x5415FFFD, // 0016 LDINT R5 -2 - 0x40160605, // 0017 CONNECT R5 K3 R5 - 0x94140205, // 0018 GETIDX R5 R1 R5 - 0x7C100200, // 0019 CALL R4 1 - 0x541603E7, // 001A LDINT R5 1000 - 0x08100805, // 001B MUL R4 R4 R5 - 0x7C0C0200, // 001C CALL R3 1 - 0x80040600, // 001D RET 1 R3 - 0x7002001D, // 001E JMP #003D - 0x8C0C0501, // 001F GETMET R3 R2 K1 - 0x5C140200, // 0020 MOVE R5 R1 - 0x58180005, // 0021 LDCONST R6 K5 - 0x7C0C0600, // 0022 CALL R3 3 - 0x780E000A, // 0023 JMPF R3 #002F - 0x600C0009, // 0024 GETGBL R3 G9 - 0x6010000A, // 0025 GETGBL R4 G10 - 0x5415FFFD, // 0026 LDINT R5 -2 - 0x40160605, // 0027 CONNECT R5 K3 R5 - 0x94140205, // 0028 GETIDX R5 R1 R5 - 0x7C100200, // 0029 CALL R4 1 - 0x5416EA5F, // 002A LDINT R5 60000 - 0x08100805, // 002B MUL R4 R4 R5 - 0x7C0C0200, // 002C CALL R3 1 - 0x80040600, // 002D RET 1 R3 - 0x7002000D, // 002E JMP #003D - 0x8C0C0501, // 002F GETMET R3 R2 K1 - 0x5C140200, // 0030 MOVE R5 R1 - 0x58180006, // 0031 LDCONST R6 K6 - 0x7C0C0600, // 0032 CALL R3 3 - 0x780E0008, // 0033 JMPF R3 #003D - 0x600C0009, // 0034 GETGBL R3 G9 - 0x6010000A, // 0035 GETGBL R4 G10 - 0x5415FFFD, // 0036 LDINT R5 -2 - 0x40160605, // 0037 CONNECT R5 K3 R5 - 0x94140205, // 0038 GETIDX R5 R1 R5 - 0x7C100200, // 0039 CALL R4 1 - 0x08100907, // 003A MUL R4 R4 K7 - 0x7C0C0200, // 003B CALL R3 1 - 0x80040600, // 003C RET 1 R3 - 0x540E03E7, // 003D LDINT R3 1000 - 0x80040600, // 003E RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _split_function_arguments -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__split_function_arguments, /* name */ - be_nested_proto( - 11, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(split), - /* K3 */ be_nested_str_weak(_X2C), - /* K4 */ be_nested_str_weak(strip), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(push), - /* K7 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(_split_function_arguments), - &be_const_str_solidified, - ( &(const binstruction[37]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x1C0C0301, // 0001 EQ R3 R1 K1 - 0x740E0002, // 0002 JMPT R3 #0006 - 0x4C0C0000, // 0003 LDNIL R3 - 0x1C0C0203, // 0004 EQ R3 R1 R3 - 0x780E0002, // 0005 JMPF R3 #0009 - 0x600C0012, // 0006 GETGBL R3 G18 - 0x7C0C0000, // 0007 CALL R3 0 - 0x80040600, // 0008 RET 1 R3 - 0x8C0C0502, // 0009 GETMET R3 R2 K2 - 0x5C140200, // 000A MOVE R5 R1 - 0x58180003, // 000B LDCONST R6 K3 - 0x7C0C0600, // 000C CALL R3 3 - 0x60100012, // 000D GETGBL R4 G18 - 0x7C100000, // 000E CALL R4 0 - 0x60140010, // 000F GETGBL R5 G16 - 0x5C180600, // 0010 MOVE R6 R3 - 0x7C140200, // 0011 CALL R5 1 - 0xA802000D, // 0012 EXBLK 0 #0021 - 0x5C180A00, // 0013 MOVE R6 R5 - 0x7C180000, // 0014 CALL R6 0 - 0x8C1C0504, // 0015 GETMET R7 R2 K4 - 0x5C240C00, // 0016 MOVE R9 R6 - 0x7C1C0400, // 0017 CALL R7 2 - 0x6020000C, // 0018 GETGBL R8 G12 - 0x5C240E00, // 0019 MOVE R9 R7 - 0x7C200200, // 001A CALL R8 1 - 0x24201105, // 001B GT R8 R8 K5 - 0x78220002, // 001C JMPF R8 #0020 - 0x8C200906, // 001D GETMET R8 R4 K6 - 0x5C280E00, // 001E MOVE R10 R7 - 0x7C200400, // 001F CALL R8 2 - 0x7001FFF1, // 0020 JMP #0013 - 0x58140007, // 0021 LDCONST R5 K7 - 0xAC140200, // 0022 CATCH R5 1 0 - 0xB0080000, // 0023 RAISE 2 R0 R0 - 0x80040800, // 0024 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_time_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* name */ - be_nested_proto( - 8, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[15]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(value), - /* K3 */ be_nested_str_weak(next), - /* K4 */ be_nested_str_weak(convert_time_to_ms), - /* K5 */ be_const_int(2), - /* K6 */ be_const_int(1), - /* K7 */ be_nested_str_weak(_validate_object_reference), - /* K8 */ be_nested_str_weak(duration), - /* K9 */ be_nested_str_weak(process_primary_expression), - /* K10 */ be_nested_str_weak(CONTEXT_TIME), - /* K11 */ be_nested_str_weak(expr), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(Expected_X20time_X20value), - /* K14 */ be_nested_str_weak(1000), - }), - be_str_weak(process_time_value), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A000D, // 0004 JMPF R2 #0013 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0004, // 0006 LDINT R3 5 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0009, // 0008 JMPF R2 #0013 - 0x88080302, // 0009 GETMBR R2 R1 K2 - 0x8C0C0103, // 000A GETMET R3 R0 K3 - 0x7C0C0200, // 000B CALL R3 1 - 0x600C0008, // 000C GETGBL R3 G8 - 0x8C100104, // 000D GETMET R4 R0 K4 - 0x5C180400, // 000E MOVE R6 R2 - 0x7C100400, // 000F CALL R4 2 - 0x7C0C0200, // 0010 CALL R3 1 - 0x80040600, // 0011 RET 1 R3 - 0x7002002A, // 0012 JMP #003E - 0x4C080000, // 0013 LDNIL R2 - 0x20080202, // 0014 NE R2 R1 R2 - 0x780A0010, // 0015 JMPF R2 #0027 - 0x88080301, // 0016 GETMBR R2 R1 K1 - 0x1C080505, // 0017 EQ R2 R2 K5 - 0x780A000D, // 0018 JMPF R2 #0027 - 0x88080302, // 0019 GETMBR R2 R1 K2 - 0x8C0C0103, // 001A GETMET R3 R0 K3 - 0x7C0C0200, // 001B CALL R3 1 - 0x600C0008, // 001C GETGBL R3 G8 - 0x60100009, // 001D GETGBL R4 G9 - 0x6014000A, // 001E GETGBL R5 G10 - 0x5C180400, // 001F MOVE R6 R2 - 0x7C140200, // 0020 CALL R5 1 - 0x7C100200, // 0021 CALL R4 1 - 0x541603E7, // 0022 LDINT R5 1000 - 0x08100805, // 0023 MUL R4 R4 R5 - 0x7C0C0200, // 0024 CALL R3 1 - 0x80040600, // 0025 RET 1 R3 - 0x70020016, // 0026 JMP #003E - 0x4C080000, // 0027 LDNIL R2 - 0x20080202, // 0028 NE R2 R1 R2 - 0x780A000F, // 0029 JMPF R2 #003A - 0x88080301, // 002A GETMBR R2 R1 K1 - 0x1C080506, // 002B EQ R2 R2 K6 - 0x780A000C, // 002C JMPF R2 #003A - 0x88080302, // 002D GETMBR R2 R1 K2 - 0x8C0C0107, // 002E GETMET R3 R0 K7 - 0x5C140400, // 002F MOVE R5 R2 - 0x58180008, // 0030 LDCONST R6 K8 - 0x7C0C0600, // 0031 CALL R3 3 - 0x8C0C0109, // 0032 GETMET R3 R0 K9 - 0x8814010A, // 0033 GETMBR R5 R0 K10 - 0x50180200, // 0034 LDBOOL R6 1 0 - 0x501C0000, // 0035 LDBOOL R7 0 0 - 0x7C0C0800, // 0036 CALL R3 4 - 0x8810070B, // 0037 GETMBR R4 R3 K11 - 0x80040800, // 0038 RET 1 R4 - 0x70020003, // 0039 JMP #003E - 0x8C08010C, // 003A GETMET R2 R0 K12 - 0x5810000D, // 003B LDCONST R4 K13 - 0x7C080400, // 003C CALL R2 2 - 0x80061C00, // 003D RET 1 K14 - 0x80000000, // 003E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: warning -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_warning, /* name */ - be_nested_proto( - 9, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(line), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(warnings), - /* K4 */ be_nested_str_weak(push), - /* K5 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), - }), - be_str_weak(warning), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x8C080100, // 0005 GETMET R2 R0 K0 - 0x7C080200, // 0006 CALL R2 1 - 0x88080501, // 0007 GETMBR R2 R2 K1 - 0x70020000, // 0008 JMP #000A - 0x58080002, // 0009 LDCONST R2 K2 - 0x880C0103, // 000A GETMBR R3 R0 K3 - 0x8C0C0704, // 000B GETMET R3 R3 K4 - 0x60140018, // 000C GETGBL R5 G24 - 0x58180005, // 000D LDCONST R6 K5 - 0x5C1C0400, // 000E MOVE R7 R2 - 0x5C200200, // 000F MOVE R8 R1 - 0x7C140600, // 0010 CALL R5 3 - 0x7C0C0400, // 0011 CALL R3 2 - 0x80000000, // 0012 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence_assignment_generic -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic, /* name */ - be_nested_proto( - 17, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[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(next), - /* K4 */ be_nested_str_weak(symbol_table), - /* K5 */ be_nested_str_weak(contains), - /* K6 */ be_nested_str_weak(get), - /* K7 */ be_nested_str_weak(instance), - /* K8 */ be_nested_str_weak(_validate_single_parameter), - /* K9 */ be_nested_str_weak(error), - /* K10 */ 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), - /* K11 */ be_nested_str_weak(expect_assign), - /* K12 */ be_nested_str_weak(process_value), - /* K13 */ be_nested_str_weak(CONTEXT_PROPERTY), - /* K14 */ be_nested_str_weak(collect_inline_comment), - /* K15 */ be_nested_str_weak(get_reference), - /* K16 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s_X2E_X25s_X20_X3D_X20_X25s_X20end), - /* K17 */ be_nested_str_weak(expr), - /* K18 */ be_nested_str_weak(add), - /* K19 */ be_nested_str_weak(_X25s_X25s_X2Epush_X28animation_X2Ecreate_assign_step_X28_X25s_X29_X29_X25s), - /* 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_sequence_assignment_generic), - &be_const_str_solidified, - ( &(const binstruction[92]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x7C0C0200, // 0001 CALL R3 1 - 0x8C100101, // 0002 GETMET R4 R0 K1 - 0x7C100200, // 0003 CALL R4 1 - 0x4C140000, // 0004 LDNIL R5 - 0x20100805, // 0005 NE R4 R4 R5 - 0x7812004B, // 0006 JMPF R4 #0053 - 0x8C100101, // 0007 GETMET R4 R0 K1 - 0x7C100200, // 0008 CALL R4 1 - 0x88100902, // 0009 GETMBR R4 R4 K2 - 0x54160020, // 000A LDINT R5 33 - 0x1C100805, // 000B EQ R4 R4 R5 - 0x78120045, // 000C JMPF R4 #0053 - 0x8C100103, // 000D GETMET R4 R0 K3 - 0x7C100200, // 000E CALL R4 1 - 0x8C100100, // 000F GETMET R4 R0 K0 - 0x7C100200, // 0010 CALL R4 1 - 0x88140104, // 0011 GETMBR R5 R0 K4 - 0x8C140B05, // 0012 GETMET R5 R5 K5 - 0x5C1C0600, // 0013 MOVE R7 R3 - 0x7C140400, // 0014 CALL R5 2 - 0x78160021, // 0015 JMPF R5 #0038 - 0x88140104, // 0016 GETMBR R5 R0 K4 - 0x8C140B06, // 0017 GETMET R5 R5 K6 - 0x5C1C0600, // 0018 MOVE R7 R3 - 0x7C140400, // 0019 CALL R5 2 - 0x4C180000, // 001A LDNIL R6 - 0x20180A06, // 001B NE R6 R5 R6 - 0x781A000C, // 001C JMPF R6 #002A - 0x88180B07, // 001D GETMBR R6 R5 K7 - 0x4C1C0000, // 001E LDNIL R7 - 0x20180C07, // 001F NE R6 R6 R7 - 0x781A0008, // 0020 JMPF R6 #002A - 0x60180005, // 0021 GETGBL R6 G5 - 0x881C0B07, // 0022 GETMBR R7 R5 K7 - 0x7C180200, // 0023 CALL R6 1 - 0x8C1C0108, // 0024 GETMET R7 R0 K8 - 0x5C240C00, // 0025 MOVE R9 R6 - 0x5C280800, // 0026 MOVE R10 R4 - 0x882C0B07, // 0027 GETMBR R11 R5 K7 - 0x7C1C0800, // 0028 CALL R7 4 - 0x7002000D, // 0029 JMP #0038 - 0x4C180000, // 002A LDNIL R6 - 0x20180A06, // 002B NE R6 R5 R6 - 0x781A000A, // 002C JMPF R6 #0038 - 0x88180B02, // 002D GETMBR R6 R5 K2 - 0x541E000C, // 002E LDINT R7 13 - 0x1C180C07, // 002F EQ R6 R6 R7 - 0x781A0006, // 0030 JMPF R6 #0038 - 0x8C180109, // 0031 GETMET R6 R0 K9 - 0x60200018, // 0032 GETGBL R8 G24 - 0x5824000A, // 0033 LDCONST R9 K10 - 0x5C280600, // 0034 MOVE R10 R3 - 0x7C200400, // 0035 CALL R8 2 - 0x7C180400, // 0036 CALL R6 2 - 0x80000C00, // 0037 RET 0 - 0x8C14010B, // 0038 GETMET R5 R0 K11 - 0x7C140200, // 0039 CALL R5 1 - 0x8C14010C, // 003A GETMET R5 R0 K12 - 0x881C010D, // 003B GETMBR R7 R0 K13 - 0x7C140400, // 003C CALL R5 2 - 0x8C18010E, // 003D GETMET R6 R0 K14 - 0x7C180200, // 003E CALL R6 1 - 0x881C0104, // 003F GETMBR R7 R0 K4 - 0x8C1C0F0F, // 0040 GETMET R7 R7 K15 - 0x5C240600, // 0041 MOVE R9 R3 - 0x7C1C0400, // 0042 CALL R7 2 - 0x60200018, // 0043 GETGBL R8 G24 - 0x58240010, // 0044 LDCONST R9 K16 - 0x5C280E00, // 0045 MOVE R10 R7 - 0x5C2C0800, // 0046 MOVE R11 R4 - 0x88300B11, // 0047 GETMBR R12 R5 K17 - 0x7C200800, // 0048 CALL R8 4 - 0x8C240112, // 0049 GETMET R9 R0 K18 - 0x602C0018, // 004A GETGBL R11 G24 - 0x58300013, // 004B LDCONST R12 K19 - 0x5C340200, // 004C MOVE R13 R1 - 0x5C380400, // 004D MOVE R14 R2 - 0x5C3C1000, // 004E MOVE R15 R8 - 0x5C400C00, // 004F MOVE R16 R6 - 0x7C2C0A00, // 0050 CALL R11 5 - 0x7C240400, // 0051 CALL R9 2 - 0x70020007, // 0052 JMP #005B - 0x8C100109, // 0053 GETMET R4 R0 K9 - 0x60180018, // 0054 GETGBL R6 G24 - 0x581C0014, // 0055 LDCONST R7 K20 - 0x5C200600, // 0056 MOVE R8 R3 - 0x7C180400, // 0057 CALL R6 2 - 0x7C100400, // 0058 CALL R4 2 - 0x8C100115, // 0059 GETMET R4 R0 K21 - 0x7C100200, // 005A CALL R4 1 - 0x80000000, // 005B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_animation_factory_exists -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(get), - }), - be_str_weak(_validate_animation_factory_exists), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x200C0403, // 0005 NE R3 R2 R3 - 0x80040600, // 0006 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_for_color_provider -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider, /* name */ - be_nested_proto( - 8, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_process_named_arguments_unified), - /* K1 */ be_nested_str_weak(CONTEXT_COLOR_PROVIDER), - }), - be_str_weak(_process_named_arguments_for_color_provider), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x881C0101, // 0003 GETMBR R7 R0 K1 - 0x7C0C0800, // 0004 CALL R3 4 - 0x80000000, // 0005 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_template_call_arguments -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_template_call_arguments, /* name */ - be_nested_proto( - 13, /* nstack */ - 5, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(error), - /* K1 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20expects_X20_X25s_X20arguments_X20but_X20_X25s_X20were_X20provided_X2E_X20Expected_X20parameters_X3A_X20_X25s), - }), - be_str_weak(_validate_template_call_arguments), - &be_const_str_solidified, - ( &(const binstruction[25]) { /* code */ - 0x6014000C, // 0000 GETGBL R5 G12 - 0x5C180400, // 0001 MOVE R6 R2 - 0x7C140200, // 0002 CALL R5 1 - 0x6018000C, // 0003 GETGBL R6 G12 - 0x5C1C0600, // 0004 MOVE R7 R3 - 0x7C180200, // 0005 CALL R6 1 - 0x20140A06, // 0006 NE R5 R5 R6 - 0x7816000E, // 0007 JMPF R5 #0017 - 0x8C140100, // 0008 GETMET R5 R0 K0 - 0x601C0018, // 0009 GETGBL R7 G24 - 0x58200001, // 000A LDCONST R8 K1 - 0x5C240200, // 000B MOVE R9 R1 - 0x6028000C, // 000C GETGBL R10 G12 - 0x5C2C0600, // 000D MOVE R11 R3 - 0x7C280200, // 000E CALL R10 1 - 0x602C000C, // 000F GETGBL R11 G12 - 0x5C300400, // 0010 MOVE R12 R2 - 0x7C2C0200, // 0011 CALL R11 1 - 0x5C300600, // 0012 MOVE R12 R3 - 0x7C1C0A00, // 0013 CALL R7 5 - 0x7C140400, // 0014 CALL R5 2 - 0x50140000, // 0015 LDBOOL R5 0 0 - 0x80040A00, // 0016 RET 1 R5 - 0x50140200, // 0017 LDBOOL R5 1 0 - 0x80040A00, // 0018 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_object_reference -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name */ - be_nested_proto( - 9, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(symbol_exists), - /* K2 */ be_nested_str_weak(error), - /* K3 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X2E_X20Make_X20sure_X20the_X20object_X20is_X20defined_X20before_X20use_X2E), - }), - be_str_weak(_validate_object_reference), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x880C0100, // 0000 GETMBR R3 R0 K0 - 0x8C0C0701, // 0001 GETMET R3 R3 K1 - 0x5C140200, // 0002 MOVE R5 R1 - 0x7C0C0400, // 0003 CALL R3 2 - 0x740E0008, // 0004 JMPT R3 #000E - 0x8C0C0102, // 0005 GETMET R3 R0 K2 - 0x60140018, // 0006 GETGBL R5 G24 - 0x58180003, // 0007 LDCONST R6 K3 - 0x5C1C0200, // 0008 MOVE R7 R1 - 0x5C200400, // 0009 MOVE R8 R2 - 0x7C140600, // 000A CALL R5 3 - 0x7C0C0400, // 000B CALL R3 2 - 0x500C0000, // 000C LDBOOL R3 0 0 - 0x80040600, // 000D RET 1 R3 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0x80040600, // 000F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_assign -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), - }), - be_str_weak(expect_assign), - &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0007, // 0006 LDINT R3 8 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: generate_engine_run -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_engine_run, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(run_statements), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(has_template_calls), - /* K3 */ be_nested_str_weak(name), - /* K4 */ be_nested_str_weak(comment), - /* K5 */ be_nested_str_weak(add), - /* K6 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), - /* K7 */ be_nested_str_weak(stop_iteration), - /* K8 */ be_nested_str_weak(engine_X2Erun_X28_X29), - }), - be_str_weak(generate_engine_run), - &be_const_str_solidified, - ( &(const binstruction[31]) { /* code */ - 0x6004000C, // 0000 GETGBL R1 G12 - 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x1C040301, // 0003 EQ R1 R1 K1 - 0x78060002, // 0004 JMPF R1 #0008 - 0x88040102, // 0005 GETMBR R1 R0 K2 - 0x74060000, // 0006 JMPT R1 #0008 - 0x80000200, // 0007 RET 0 - 0x60040010, // 0008 GETGBL R1 G16 - 0x88080100, // 0009 GETMBR R2 R0 K0 - 0x7C040200, // 000A CALL R1 1 - 0xA802000B, // 000B EXBLK 0 #0018 - 0x5C080200, // 000C MOVE R2 R1 - 0x7C080000, // 000D CALL R2 0 - 0x940C0503, // 000E GETIDX R3 R2 K3 - 0x94100504, // 000F GETIDX R4 R2 K4 - 0x8C140105, // 0010 GETMET R5 R0 K5 - 0x601C0018, // 0011 GETGBL R7 G24 - 0x58200006, // 0012 LDCONST R8 K6 - 0x5C240600, // 0013 MOVE R9 R3 - 0x5C280800, // 0014 MOVE R10 R4 - 0x7C1C0600, // 0015 CALL R7 3 - 0x7C140400, // 0016 CALL R5 2 - 0x7001FFF3, // 0017 JMP #000C - 0x58040007, // 0018 LDCONST R1 K7 - 0xAC040200, // 0019 CATCH R1 1 0 - 0xB0080000, // 001A RAISE 2 R0 R0 - 0x8C040105, // 001B GETMET R1 R0 K5 - 0x580C0008, // 001C LDCONST R3 K8 - 0x7C040400, // 001D CALL R1 2 - 0x80000000, // 001E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: next -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_next, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), - /* K2 */ be_const_int(1), - }), - be_str_weak(next), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x14040202, // 0004 LT R1 R1 R2 - 0x78060002, // 0005 JMPF R1 #0009 - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x00040302, // 0007 ADD R1 R1 K2 - 0x90020001, // 0008 SETMBR R0 K0 R1 - 0x80000000, // 0009 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _add_typed_parameter_to_symbol_table -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__add_typed_parameter_to_symbol_table, /* name */ - be_nested_proto( - 8, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(color), - /* K1 */ be_nested_str_weak(create_color), - /* K2 */ be_nested_str_weak(palette), - /* K3 */ be_nested_str_weak(create_palette), - /* K4 */ be_nested_str_weak(animation), - /* K5 */ be_nested_str_weak(create_animation), - /* K6 */ be_nested_str_weak(value_provider), - /* K7 */ be_nested_str_weak(create_value_provider), - /* K8 */ be_nested_str_weak(create_variable), - }), - be_str_weak(_add_typed_parameter_to_symbol_table), - &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x1C100700, // 0000 EQ R4 R3 K0 - 0x78120004, // 0001 JMPF R4 #0007 - 0x8C100301, // 0002 GETMET R4 R1 K1 - 0x5C180400, // 0003 MOVE R6 R2 - 0x4C1C0000, // 0004 LDNIL R7 - 0x7C100600, // 0005 CALL R4 3 - 0x70020017, // 0006 JMP #001F - 0x1C100702, // 0007 EQ R4 R3 K2 - 0x78120004, // 0008 JMPF R4 #000E - 0x8C100303, // 0009 GETMET R4 R1 K3 - 0x5C180400, // 000A MOVE R6 R2 - 0x4C1C0000, // 000B LDNIL R7 - 0x7C100600, // 000C CALL R4 3 - 0x70020010, // 000D JMP #001F - 0x1C100704, // 000E EQ R4 R3 K4 - 0x78120004, // 000F JMPF R4 #0015 - 0x8C100305, // 0010 GETMET R4 R1 K5 - 0x5C180400, // 0011 MOVE R6 R2 - 0x4C1C0000, // 0012 LDNIL R7 - 0x7C100600, // 0013 CALL R4 3 - 0x70020009, // 0014 JMP #001F - 0x1C100706, // 0015 EQ R4 R3 K6 - 0x78120004, // 0016 JMPF R4 #001C - 0x8C100307, // 0017 GETMET R4 R1 K7 - 0x5C180400, // 0018 MOVE R6 R2 - 0x4C1C0000, // 0019 LDNIL R7 - 0x7C100600, // 001A CALL R4 3 - 0x70020002, // 001B JMP #001F - 0x8C100308, // 001C GETMET R4 R1 K8 - 0x5C180400, // 001D MOVE R6 R2 - 0x7C100400, // 001E CALL R4 2 - 0x80000000, // 001F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence_statement, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[24]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(add), - /* K3 */ be_nested_str_weak(get_indent), - /* K4 */ be_nested_str_weak(value), - /* K5 */ be_nested_str_weak(next), - /* K6 */ be_const_int(0), - /* K7 */ be_nested_str_weak(play), - /* K8 */ be_nested_str_weak(process_play_statement_fluent), - /* K9 */ be_nested_str_weak(wait), - /* K10 */ be_nested_str_weak(process_wait_statement_fluent), - /* K11 */ be_const_int(1), - /* K12 */ be_nested_str_weak(log), - /* K13 */ be_nested_str_weak(process_log_statement_fluent), - /* K14 */ be_nested_str_weak(restart), - /* K15 */ be_nested_str_weak(process_restart_statement_fluent), - /* K16 */ be_nested_str_weak(repeat), - /* K17 */ be_nested_str_weak(process_repeat_statement_fluent), - /* K18 */ be_nested_str_weak(peek), - /* K19 */ be_nested_str_weak(process_sequence_assignment_fluent), - /* K20 */ be_nested_str_weak(error), - /* K21 */ be_nested_str_weak(Unknown_X20command_X20_X27_X25s_X27_X20in_X20sequence_X2E_X20Valid_X20sequence_X20commands_X20are_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments_X20_X28object_X2Eproperty_X20_X3D_X20value_X29), - /* K22 */ be_nested_str_weak(skip_statement), - /* K23 */ be_nested_str_weak(Invalid_X20statement_X20in_X20sequence_X2E_X20Expected_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments), - }), - be_str_weak(process_sequence_statement), - &be_const_str_solidified, - ( &(const binstruction[109]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x1C080202, // 0003 EQ R2 R1 R2 - 0x740A0003, // 0004 JMPT R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0025, // 0006 LDINT R3 38 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0000, // 0008 JMPF R2 #000A - 0x80000400, // 0009 RET 0 - 0x88080301, // 000A GETMBR R2 R1 K1 - 0x540E0024, // 000B LDINT R3 37 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x780A0008, // 000D JMPF R2 #0017 - 0x8C080102, // 000E GETMET R2 R0 K2 - 0x8C100103, // 000F GETMET R4 R0 K3 - 0x7C100200, // 0010 CALL R4 1 - 0x88140304, // 0011 GETMBR R5 R1 K4 - 0x00100805, // 0012 ADD R4 R4 R5 - 0x7C080400, // 0013 CALL R2 2 - 0x8C080105, // 0014 GETMET R2 R0 K5 - 0x7C080200, // 0015 CALL R2 1 - 0x80000400, // 0016 RET 0 - 0x88080301, // 0017 GETMBR R2 R1 K1 - 0x540E0022, // 0018 LDINT R3 35 - 0x1C080403, // 0019 EQ R2 R2 R3 - 0x780A0002, // 001A JMPF R2 #001E - 0x8C080105, // 001B GETMET R2 R0 K5 - 0x7C080200, // 001C CALL R2 1 - 0x80000400, // 001D RET 0 - 0x88080301, // 001E GETMBR R2 R1 K1 - 0x1C080506, // 001F EQ R2 R2 K6 - 0x780A0005, // 0020 JMPF R2 #0027 - 0x88080304, // 0021 GETMBR R2 R1 K4 - 0x1C080507, // 0022 EQ R2 R2 K7 - 0x780A0002, // 0023 JMPF R2 #0027 - 0x8C080108, // 0024 GETMET R2 R0 K8 - 0x7C080200, // 0025 CALL R2 1 - 0x70020044, // 0026 JMP #006C - 0x88080301, // 0027 GETMBR R2 R1 K1 - 0x1C080506, // 0028 EQ R2 R2 K6 - 0x780A0005, // 0029 JMPF R2 #0030 - 0x88080304, // 002A GETMBR R2 R1 K4 - 0x1C080509, // 002B EQ R2 R2 K9 - 0x780A0002, // 002C JMPF R2 #0030 - 0x8C08010A, // 002D GETMET R2 R0 K10 - 0x7C080200, // 002E CALL R2 1 - 0x7002003B, // 002F JMP #006C - 0x88080301, // 0030 GETMBR R2 R1 K1 - 0x1C08050B, // 0031 EQ R2 R2 K11 - 0x780A0005, // 0032 JMPF R2 #0039 - 0x88080304, // 0033 GETMBR R2 R1 K4 - 0x1C08050C, // 0034 EQ R2 R2 K12 - 0x780A0002, // 0035 JMPF R2 #0039 - 0x8C08010D, // 0036 GETMET R2 R0 K13 - 0x7C080200, // 0037 CALL R2 1 - 0x70020032, // 0038 JMP #006C - 0x88080301, // 0039 GETMBR R2 R1 K1 - 0x1C080506, // 003A EQ R2 R2 K6 - 0x780A0005, // 003B JMPF R2 #0042 - 0x88080304, // 003C GETMBR R2 R1 K4 - 0x1C08050E, // 003D EQ R2 R2 K14 - 0x780A0002, // 003E JMPF R2 #0042 - 0x8C08010F, // 003F GETMET R2 R0 K15 - 0x7C080200, // 0040 CALL R2 1 - 0x70020029, // 0041 JMP #006C - 0x88080301, // 0042 GETMBR R2 R1 K1 - 0x1C080506, // 0043 EQ R2 R2 K6 - 0x780A0005, // 0044 JMPF R2 #004B - 0x88080304, // 0045 GETMBR R2 R1 K4 - 0x1C080510, // 0046 EQ R2 R2 K16 - 0x780A0002, // 0047 JMPF R2 #004B - 0x8C080111, // 0048 GETMET R2 R0 K17 - 0x7C080200, // 0049 CALL R2 1 - 0x70020020, // 004A JMP #006C - 0x88080301, // 004B GETMBR R2 R1 K1 - 0x1C08050B, // 004C EQ R2 R2 K11 - 0x780A0016, // 004D JMPF R2 #0065 - 0x8C080112, // 004E GETMET R2 R0 K18 - 0x7C080200, // 004F CALL R2 1 - 0x4C0C0000, // 0050 LDNIL R3 - 0x20080403, // 0051 NE R2 R2 R3 - 0x780A0008, // 0052 JMPF R2 #005C - 0x8C080112, // 0053 GETMET R2 R0 K18 - 0x7C080200, // 0054 CALL R2 1 - 0x88080501, // 0055 GETMBR R2 R2 K1 - 0x540E0020, // 0056 LDINT R3 33 - 0x1C080403, // 0057 EQ R2 R2 R3 - 0x780A0002, // 0058 JMPF R2 #005C - 0x8C080113, // 0059 GETMET R2 R0 K19 - 0x7C080200, // 005A CALL R2 1 - 0x70020007, // 005B JMP #0064 - 0x8C080114, // 005C GETMET R2 R0 K20 - 0x60100018, // 005D GETGBL R4 G24 - 0x58140015, // 005E LDCONST R5 K21 - 0x88180304, // 005F GETMBR R6 R1 K4 - 0x7C100400, // 0060 CALL R4 2 - 0x7C080400, // 0061 CALL R2 2 - 0x8C080116, // 0062 GETMET R2 R0 K22 - 0x7C080200, // 0063 CALL R2 1 - 0x70020006, // 0064 JMP #006C - 0x8C080114, // 0065 GETMET R2 R0 K20 - 0x60100018, // 0066 GETGBL R4 G24 - 0x58140017, // 0067 LDCONST R5 K23 - 0x7C100200, // 0068 CALL R4 1 - 0x7C080400, // 0069 CALL R2 2 - 0x8C080116, // 006A GETMET R2 R0 K22 - 0x7C080200, // 006B CALL R2 1 - 0x80000000, // 006C RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: transpile ********************************************************************/ @@ -10188,299 +8034,9 @@ be_local_closure(class_SimpleDSLTranspiler_transpile, /* name */ /******************************************************************** -** Solidified function: expect_identifier +** Solidified function: expect_right_brace ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_identifier, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[10]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_const_int(1), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(can_use_as_identifier), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20identifier), - /* K9 */ be_nested_str_weak(unknown), - }), - be_str_weak(expect_identifier), - &be_const_str_solidified, - ( &(const binstruction[29]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0012, // 0004 JMPF R2 #0018 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x1C080502, // 0006 EQ R2 R2 K2 - 0x740A000A, // 0007 JMPT R2 #0013 - 0x88080301, // 0008 GETMBR R2 R1 K1 - 0x540E0003, // 0009 LDINT R3 4 - 0x1C080403, // 000A EQ R2 R2 R3 - 0x740A0006, // 000B JMPT R2 #0013 - 0x88080301, // 000C GETMBR R2 R1 K1 - 0x1C080503, // 000D EQ R2 R2 K3 - 0x780A0008, // 000E JMPF R2 #0018 - 0x8C080104, // 000F GETMET R2 R0 K4 - 0x88100305, // 0010 GETMBR R4 R1 K5 - 0x7C080400, // 0011 CALL R2 2 - 0x780A0004, // 0012 JMPF R2 #0018 - 0x88080305, // 0013 GETMBR R2 R1 K5 - 0x8C0C0106, // 0014 GETMET R3 R0 K6 - 0x7C0C0200, // 0015 CALL R3 1 - 0x80040400, // 0016 RET 1 R2 - 0x70020003, // 0017 JMP #001C - 0x8C080107, // 0018 GETMET R2 R0 K7 - 0x58100008, // 0019 LDCONST R4 K8 - 0x7C080400, // 001A CALL R2 2 - 0x80061200, // 001B RET 1 K9 - 0x80000000, // 001C RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_event_handler -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[22]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(line), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(_X7B_X7D), - /* K6 */ be_nested_str_weak(type), - /* K7 */ be_nested_str_weak(process_event_parameters), - /* K8 */ be_nested_str_weak(expect_colon), - /* K9 */ be_nested_str_weak(event_handler__X25s__X25s), - /* K10 */ be_nested_str_weak(add), - /* K11 */ be_nested_str_weak(def_X20_X25s_X28event_data_X29), - /* K12 */ be_nested_str_weak(value), - /* K13 */ be_nested_str_weak(interrupt), - /* K14 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_current_X28_X29), - /* K15 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_animation_X28_X22_X25s_X22_X29), - /* K16 */ be_nested_str_weak(process_value), - /* K17 */ be_nested_str_weak(CONTEXT_ANIMATION), - /* K18 */ be_nested_str_weak(_X20_X20engine_X2Eadd_X28_X25s_X29), - /* K19 */ be_nested_str_weak(expr), - /* K20 */ be_nested_str_weak(end), - /* K21 */ be_nested_str_weak(animation_X2Eregister_event_handler_X28_X22_X25s_X22_X2C_X20_X25s_X2C_X200_X2C_X20nil_X2C_X20_X25s_X29), - }), - be_str_weak(process_event_handler), - &be_const_str_solidified, - ( &(const binstruction[91]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x4C0C0000, // 0006 LDNIL R3 - 0x20080403, // 0007 NE R2 R2 R3 - 0x780A0003, // 0008 JMPF R2 #000D - 0x8C080102, // 0009 GETMET R2 R0 K2 - 0x7C080200, // 000A CALL R2 1 - 0x88080503, // 000B GETMBR R2 R2 K3 - 0x70020000, // 000C JMP #000E - 0x58080004, // 000D LDCONST R2 K4 - 0x580C0005, // 000E LDCONST R3 K5 - 0x8C100102, // 000F GETMET R4 R0 K2 - 0x7C100200, // 0010 CALL R4 1 - 0x4C140000, // 0011 LDNIL R5 - 0x20100805, // 0012 NE R4 R4 R5 - 0x78120008, // 0013 JMPF R4 #001D - 0x8C100102, // 0014 GETMET R4 R0 K2 - 0x7C100200, // 0015 CALL R4 1 - 0x88100906, // 0016 GETMBR R4 R4 K6 - 0x54160017, // 0017 LDINT R5 24 - 0x1C100805, // 0018 EQ R4 R4 R5 - 0x78120002, // 0019 JMPF R4 #001D - 0x8C100107, // 001A GETMET R4 R0 K7 - 0x7C100200, // 001B CALL R4 1 - 0x5C0C0800, // 001C MOVE R3 R4 - 0x8C100108, // 001D GETMET R4 R0 K8 - 0x7C100200, // 001E CALL R4 1 - 0x60100018, // 001F GETGBL R4 G24 - 0x58140009, // 0020 LDCONST R5 K9 - 0x5C180200, // 0021 MOVE R6 R1 - 0x5C1C0400, // 0022 MOVE R7 R2 - 0x7C100600, // 0023 CALL R4 3 - 0x8C14010A, // 0024 GETMET R5 R0 K10 - 0x601C0018, // 0025 GETGBL R7 G24 - 0x5820000B, // 0026 LDCONST R8 K11 - 0x5C240800, // 0027 MOVE R9 R4 - 0x7C1C0400, // 0028 CALL R7 2 - 0x7C140400, // 0029 CALL R5 2 - 0x8C140102, // 002A GETMET R5 R0 K2 - 0x7C140200, // 002B CALL R5 1 - 0x4C180000, // 002C LDNIL R6 - 0x20180A06, // 002D NE R6 R5 R6 - 0x781A001F, // 002E JMPF R6 #004F - 0x88180B06, // 002F GETMBR R6 R5 K6 - 0x1C180D04, // 0030 EQ R6 R6 K4 - 0x781A0013, // 0031 JMPF R6 #0046 - 0x88180B0C, // 0032 GETMBR R6 R5 K12 - 0x1C180D0D, // 0033 EQ R6 R6 K13 - 0x781A0010, // 0034 JMPF R6 #0046 - 0x8C180100, // 0035 GETMET R6 R0 K0 - 0x7C180200, // 0036 CALL R6 1 - 0x8C180101, // 0037 GETMET R6 R0 K1 - 0x7C180200, // 0038 CALL R6 1 - 0x1C1C0D02, // 0039 EQ R7 R6 K2 - 0x781E0003, // 003A JMPF R7 #003F - 0x8C1C010A, // 003B GETMET R7 R0 K10 - 0x5824000E, // 003C LDCONST R9 K14 - 0x7C1C0400, // 003D CALL R7 2 - 0x70020005, // 003E JMP #0045 - 0x8C1C010A, // 003F GETMET R7 R0 K10 - 0x60240018, // 0040 GETGBL R9 G24 - 0x5828000F, // 0041 LDCONST R10 K15 - 0x5C2C0C00, // 0042 MOVE R11 R6 - 0x7C240400, // 0043 CALL R9 2 - 0x7C1C0400, // 0044 CALL R7 2 - 0x70020008, // 0045 JMP #004F - 0x8C180110, // 0046 GETMET R6 R0 K16 - 0x88200111, // 0047 GETMBR R8 R0 K17 - 0x7C180400, // 0048 CALL R6 2 - 0x8C1C010A, // 0049 GETMET R7 R0 K10 - 0x60240018, // 004A GETGBL R9 G24 - 0x58280012, // 004B LDCONST R10 K18 - 0x882C0D13, // 004C GETMBR R11 R6 K19 - 0x7C240400, // 004D CALL R9 2 - 0x7C1C0400, // 004E CALL R7 2 - 0x8C18010A, // 004F GETMET R6 R0 K10 - 0x58200014, // 0050 LDCONST R8 K20 - 0x7C180400, // 0051 CALL R6 2 - 0x8C18010A, // 0052 GETMET R6 R0 K10 - 0x60200018, // 0053 GETGBL R8 G24 - 0x58240015, // 0054 LDCONST R9 K21 - 0x5C280200, // 0055 MOVE R10 R1 - 0x5C2C0800, // 0056 MOVE R11 R4 - 0x5C300600, // 0057 MOVE R12 R3 - 0x7C200800, // 0058 CALL R8 4 - 0x7C180400, // 0059 CALL R6 2 - 0x80000000, // 005A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _determine_function_return_type -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__determine_function_return_type, /* name */ - be_nested_proto( - 4, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(type), - /* K1 */ be_const_int(1), - /* K2 */ be_const_int(2), - }), - be_str_weak(_determine_function_return_type), - &be_const_str_solidified, - ( &(const binstruction[63]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x20080202, // 0001 NE R2 R1 R2 - 0x780A0039, // 0002 JMPF R2 #003D - 0x88080300, // 0003 GETMBR R2 R1 K0 - 0x540E0007, // 0004 LDINT R3 8 - 0x1C080403, // 0005 EQ R2 R2 R3 - 0x740A0003, // 0006 JMPT R2 #000B - 0x88080300, // 0007 GETMBR R2 R1 K0 - 0x540E0008, // 0008 LDINT R3 9 - 0x1C080403, // 0009 EQ R2 R2 R3 - 0x780A0002, // 000A JMPF R2 #000E - 0x540A0008, // 000B LDINT R2 9 - 0x80040400, // 000C RET 1 R2 - 0x7002002E, // 000D JMP #003D - 0x88080300, // 000E GETMBR R2 R1 K0 - 0x540E0009, // 000F LDINT R3 10 - 0x1C080403, // 0010 EQ R2 R2 R3 - 0x740A0003, // 0011 JMPT R2 #0016 - 0x88080300, // 0012 GETMBR R2 R1 K0 - 0x540E000A, // 0013 LDINT R3 11 - 0x1C080403, // 0014 EQ R2 R2 R3 - 0x780A0002, // 0015 JMPF R2 #0019 - 0x540A000A, // 0016 LDINT R2 11 - 0x80040400, // 0017 RET 1 R2 - 0x70020023, // 0018 JMP #003D - 0x88080300, // 0019 GETMBR R2 R1 K0 - 0x540E0005, // 001A LDINT R3 6 - 0x1C080403, // 001B EQ R2 R2 R3 - 0x740A0003, // 001C JMPT R2 #0021 - 0x88080300, // 001D GETMBR R2 R1 K0 - 0x540E0006, // 001E LDINT R3 7 - 0x1C080403, // 001F EQ R2 R2 R3 - 0x780A0002, // 0020 JMPF R2 #0024 - 0x540A0006, // 0021 LDINT R2 7 - 0x80040400, // 0022 RET 1 R2 - 0x70020018, // 0023 JMP #003D - 0x88080300, // 0024 GETMBR R2 R1 K0 - 0x1C080501, // 0025 EQ R2 R2 K1 - 0x740A0002, // 0026 JMPT R2 #002A - 0x88080300, // 0027 GETMBR R2 R1 K0 - 0x1C080502, // 0028 EQ R2 R2 K2 - 0x780A0001, // 0029 JMPF R2 #002C - 0x80060400, // 002A RET 1 K2 - 0x70020010, // 002B JMP #003D - 0x88080300, // 002C GETMBR R2 R1 K0 - 0x540E0003, // 002D LDINT R3 4 - 0x1C080403, // 002E EQ R2 R2 R3 - 0x780A0002, // 002F JMPF R2 #0033 - 0x540A000B, // 0030 LDINT R2 12 - 0x80040400, // 0031 RET 1 R2 - 0x70020009, // 0032 JMP #003D - 0x88080300, // 0033 GETMBR R2 R1 K0 - 0x540E0004, // 0034 LDINT R3 5 - 0x1C080403, // 0035 EQ R2 R2 R3 - 0x740A0003, // 0036 JMPT R2 #003B - 0x88080300, // 0037 GETMBR R2 R1 K0 - 0x540E000D, // 0038 LDINT R3 14 - 0x1C080403, // 0039 EQ R2 R2 R3 - 0x780A0001, // 003A JMPF R2 #003D - 0x540A000B, // 003B LDINT R2 12 - 0x80040400, // 003C RET 1 R2 - 0x540A000B, // 003D LDINT R2 12 - 0x80040400, // 003E RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_right_bracket -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ +be_local_closure(class_SimpleDSLTranspiler_expect_right_brace, /* name */ be_nested_proto( 5, /* nstack */ 1, /* argc */ @@ -10495,9 +8051,9 @@ be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ /* K1 */ be_nested_str_weak(type), /* K2 */ be_nested_str_weak(next), /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X7D_X27), }), - be_str_weak(expect_right_bracket), + be_str_weak(expect_right_brace), &be_const_str_solidified, ( &(const binstruction[16]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 @@ -10506,7 +8062,7 @@ be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ 0x20080202, // 0003 NE R2 R1 R2 0x780A0006, // 0004 JMPF R2 #000C 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001C, // 0006 LDINT R3 29 + 0x540E001A, // 0006 LDINT R3 27 0x1C080403, // 0007 EQ R2 R2 R3 0x780A0002, // 0008 JMPF R2 #000C 0x8C080102, // 0009 GETMET R2 R0 K2 @@ -10523,11 +8079,11 @@ be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ /******************************************************************** -** Solidified function: validate_user_name +** Solidified function: _process_named_arguments_for_animation ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* name */ be_nested_proto( - 15, /* nstack */ + 8, /* nstack */ 3, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -10535,101 +8091,1768 @@ be_local_closure(class_SimpleDSLTranspiler_validate_user_name, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[13]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(symbol_table), - /* K2 */ be_nested_str_weak(get), - /* K3 */ be_nested_str_weak(is_builtin), - /* K4 */ be_nested_str_weak(type), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(Cannot_X20redefine_X20predefined_X20color_X20_X27_X25s_X27_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K7 */ be_nested_str_weak(Cannot_X20redefine_X20built_X2Din_X20symbol_X20_X27_X25s_X27_X20_X28type_X3A_X20_X25s_X29_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K8 */ be_nested_str_weak(Symbol_X20_X27_X25s_X27_X20is_X20already_X20defined_X20as_X20_X25s_X2E_X20Cannot_X20redefine_X20as_X20_X25s_X2E), - /* K9 */ be_nested_str_weak(Token), - /* K10 */ be_nested_str_weak(statement_keywords), - /* K11 */ be_nested_str_weak(Cannot_X20use_X20DSL_X20keyword_X20_X27_X25s_X27_X20as_X20_X25s_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_custom_X27_X20or_X20_X27my__X25s_X27), - /* K12 */ be_nested_str_weak(stop_iteration), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(_process_named_arguments_unified), + /* K1 */ be_nested_str_weak(CONTEXT_ANIMATION), }), - be_str_weak(validate_user_name), + be_str_weak(_process_named_arguments_for_animation), &be_const_str_solidified, - ( &(const binstruction[77]) { /* code */ + ( &(const binstruction[ 6]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x5C180400, // 0002 MOVE R6 R2 + 0x881C0101, // 0003 GETMBR R7 R0 K1 + 0x7C0C0800, // 0004 CALL R3 4 + 0x80000000, // 0005 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_value_provider_reference +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_reference, /* name */ + be_nested_proto( + 12, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(symbol_exists), + /* K2 */ be_nested_str_weak(error), + /* K3 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X2E_X20Make_X20sure_X20the_X20value_X20provider_X20or_X20animation_X20is_X20defined_X20before_X20use_X2E), + /* K4 */ be_nested_str_weak(get), + /* K5 */ be_nested_str_weak(type), + /* K6 */ be_nested_str_weak(_X27_X25s_X27_X20in_X20_X25s_X20statement_X20is_X20not_X20a_X20value_X20provider_X20or_X20animation_X20instance_X2E_X20Only_X20value_X20provider_X20instances_X20_X28like_X20oscillators_X29_X20and_X20animation_X20instances_X20can_X20be_X20restarted_X2E), + /* K7 */ be_nested_str_weak(Could_X20not_X20validate_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X3A_X20_X25s), + }), + be_str_weak(_validate_value_provider_reference), + &be_const_str_solidified, + ( &(const binstruction[65]) { /* code */ + 0xA8020030, // 0000 EXBLK 0 #0032 + 0x880C0100, // 0001 GETMBR R3 R0 K0 + 0x8C0C0701, // 0002 GETMET R3 R3 K1 + 0x5C140200, // 0003 MOVE R5 R1 + 0x7C0C0400, // 0004 CALL R3 2 + 0x740E0009, // 0005 JMPT R3 #0010 + 0x8C0C0102, // 0006 GETMET R3 R0 K2 + 0x60140018, // 0007 GETGBL R5 G24 + 0x58180003, // 0008 LDCONST R6 K3 + 0x5C1C0200, // 0009 MOVE R7 R1 + 0x5C200400, // 000A MOVE R8 R2 + 0x7C140600, // 000B CALL R5 3 + 0x7C0C0400, // 000C CALL R3 2 + 0x500C0000, // 000D LDBOOL R3 0 0 + 0xA8040001, // 000E EXBLK 1 1 + 0x80040600, // 000F RET 1 R3 + 0x880C0100, // 0010 GETMBR R3 R0 K0 + 0x8C0C0704, // 0011 GETMET R3 R3 K4 + 0x5C140200, // 0012 MOVE R5 R1 + 0x7C0C0400, // 0013 CALL R3 2 + 0x4C100000, // 0014 LDNIL R4 + 0x20100604, // 0015 NE R4 R3 R4 + 0x78120015, // 0016 JMPF R4 #002D + 0x88100705, // 0017 GETMBR R4 R3 K5 + 0x54160006, // 0018 LDINT R5 7 + 0x1C100805, // 0019 EQ R4 R4 R5 + 0x74120003, // 001A JMPT R4 #001F + 0x88100705, // 001B GETMBR R4 R3 K5 + 0x54160008, // 001C LDINT R5 9 + 0x1C100805, // 001D EQ R4 R4 R5 + 0x78120003, // 001E JMPF R4 #0023 + 0x50100200, // 001F LDBOOL R4 1 0 + 0xA8040001, // 0020 EXBLK 1 1 + 0x80040800, // 0021 RET 1 R4 + 0x70020009, // 0022 JMP #002D + 0x8C100102, // 0023 GETMET R4 R0 K2 + 0x60180018, // 0024 GETGBL R6 G24 + 0x581C0006, // 0025 LDCONST R7 K6 + 0x5C200200, // 0026 MOVE R8 R1 + 0x5C240400, // 0027 MOVE R9 R2 + 0x7C180600, // 0028 CALL R6 3 + 0x7C100400, // 0029 CALL R4 2 + 0x50100000, // 002A LDBOOL R4 0 0 + 0xA8040001, // 002B EXBLK 1 1 + 0x80040800, // 002C RET 1 R4 + 0x50100200, // 002D LDBOOL R4 1 0 + 0xA8040001, // 002E EXBLK 1 1 + 0x80040800, // 002F RET 1 R4 + 0xA8040001, // 0030 EXBLK 1 1 + 0x7002000D, // 0031 JMP #0040 + 0xAC0C0002, // 0032 CATCH R3 0 2 + 0x7002000A, // 0033 JMP #003F + 0x8C140102, // 0034 GETMET R5 R0 K2 + 0x601C0018, // 0035 GETGBL R7 G24 + 0x58200007, // 0036 LDCONST R8 K7 + 0x5C240200, // 0037 MOVE R9 R1 + 0x5C280400, // 0038 MOVE R10 R2 + 0x5C2C0800, // 0039 MOVE R11 R4 + 0x7C1C0800, // 003A CALL R7 4 + 0x7C140400, // 003B CALL R5 2 + 0x50140000, // 003C LDBOOL R5 0 0 + 0x80040A00, // 003D RET 1 R5 + 0x70020000, // 003E JMP #0040 + 0xB0080000, // 003F RAISE 2 R0 R0 + 0x80000000, // 0040 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_palette_color +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_palette_color, /* name */ + be_nested_proto( + 9, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[14]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(error), + /* K3 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette), + /* K4 */ be_nested_str_weak(0xFFFFFFFF), + /* K5 */ be_nested_str_weak(type), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(convert_color), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_const_int(1), + /* K10 */ be_nested_str_weak(is_color_name), + /* K11 */ be_nested_str_weak(get_named_color_value), + /* K12 */ be_nested_str_weak(Unknown_X20color_X20_X27_X25s_X27_X2E_X20Palettes_X20only_X20accept_X20hex_X20colors_X20_X280xRRGGBB_X29_X20or_X20predefined_X20color_X20names_X20_X28like_X20_X27red_X27_X2C_X20_X27blue_X27_X2C_X20_X27green_X27_X29_X2C_X20but_X20not_X20custom_X20colors_X20defined_X20previously_X2E_X20For_X20dynamic_X20palettes_X20with_X20custom_X20colors_X2C_X20use_X20user_X20functions_X20instead_X2E), + /* K13 */ be_nested_str_weak(Expected_X20color_X20value_X20in_X20palette_X2E_X20Use_X20hex_X20colors_X20_X280xRRGGBB_X29_X20or_X20predefined_X20color_X20names_X20_X28like_X20_X27red_X27_X2C_X20_X27blue_X27_X2C_X20_X27green_X27_X29_X2E), + }), + be_str_weak(process_palette_color), + &be_const_str_solidified, + ( &(const binstruction[45]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080101, // 0001 GETMET R2 R0 K1 + 0x7C080200, // 0002 CALL R2 1 + 0x4C0C0000, // 0003 LDNIL R3 + 0x1C0C0403, // 0004 EQ R3 R2 R3 + 0x780E0003, // 0005 JMPF R3 #000A + 0x8C0C0102, // 0006 GETMET R3 R0 K2 + 0x58140003, // 0007 LDCONST R5 K3 + 0x7C0C0400, // 0008 CALL R3 2 + 0x80060800, // 0009 RET 1 K4 + 0x880C0505, // 000A GETMBR R3 R2 K5 + 0x54120003, // 000B LDINT R4 4 + 0x1C0C0604, // 000C EQ R3 R3 R4 + 0x780E0005, // 000D JMPF R3 #0014 + 0x8C0C0106, // 000E GETMET R3 R0 K6 + 0x7C0C0200, // 000F CALL R3 1 + 0x8C0C0107, // 0010 GETMET R3 R0 K7 + 0x88140508, // 0011 GETMBR R5 R2 K8 + 0x7C0C0400, // 0012 CALL R3 2 + 0x80040600, // 0013 RET 1 R3 + 0x880C0505, // 0014 GETMBR R3 R2 K5 + 0x1C0C0709, // 0015 EQ R3 R3 K9 + 0x780E0011, // 0016 JMPF R3 #0029 + 0x880C0508, // 0017 GETMBR R3 R2 K8 + 0x8C100106, // 0018 GETMET R4 R0 K6 + 0x7C100200, // 0019 CALL R4 1 + 0x8C10030A, // 001A GETMET R4 R1 K10 + 0x5C180600, // 001B MOVE R6 R3 + 0x7C100400, // 001C CALL R4 2 + 0x78120003, // 001D JMPF R4 #0022 + 0x8C10010B, // 001E GETMET R4 R0 K11 + 0x5C180600, // 001F MOVE R6 R3 + 0x7C100400, // 0020 CALL R4 2 + 0x80040800, // 0021 RET 1 R4 + 0x8C100102, // 0022 GETMET R4 R0 K2 + 0x60180018, // 0023 GETGBL R6 G24 + 0x581C000C, // 0024 LDCONST R7 K12 + 0x5C200600, // 0025 MOVE R8 R3 + 0x7C180400, // 0026 CALL R6 2 + 0x7C100400, // 0027 CALL R4 2 + 0x80060800, // 0028 RET 1 K4 + 0x8C0C0102, // 0029 GETMET R3 R0 K2 + 0x5814000D, // 002A LDCONST R5 K13 + 0x7C0C0400, // 002B CALL R3 2 + 0x80060800, // 002C RET 1 K4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: warning +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_warning, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(line), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(warnings), + /* K4 */ be_nested_str_weak(push), + /* K5 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), + }), + be_str_weak(warning), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x8C080100, // 0005 GETMET R2 R0 K0 + 0x7C080200, // 0006 CALL R2 1 + 0x88080501, // 0007 GETMBR R2 R2 K1 + 0x70020000, // 0008 JMP #000A + 0x58080002, // 0009 LDCONST R2 K2 + 0x880C0103, // 000A GETMBR R3 R0 K3 + 0x8C0C0704, // 000B GETMET R3 R3 K4 + 0x60140018, // 000C GETGBL R5 G24 + 0x58180005, // 000D LDCONST R6 K5 + 0x5C1C0400, // 000E MOVE R7 R2 + 0x5C200200, // 000F MOVE R8 R1 + 0x7C140600, // 0010 CALL R5 3 + 0x7C0C0400, // 0011 CALL R3 2 + 0x80000000, // 0012 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: 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 - 0x88100101, // 0001 GETMBR R4 R0 K1 - 0x8C100902, // 0002 GETMET R4 R4 K2 + 0x60100009, // 0001 GETGBL R4 G9 + 0x6014000A, // 0002 GETGBL R5 G10 0x5C180200, // 0003 MOVE R6 R1 - 0x7C100400, // 0004 CALL R4 2 - 0x4C140000, // 0005 LDNIL R5 - 0x1C140805, // 0006 EQ R5 R4 R5 - 0x78160000, // 0007 JMPF R5 #0009 - 0x70020028, // 0008 JMP #0032 - 0x88140903, // 0009 GETMBR R5 R4 K3 - 0x7816000E, // 000A JMPF R5 #001A - 0x88140904, // 000B GETMBR R5 R4 K4 - 0x541A000A, // 000C LDINT R6 11 - 0x1C140A06, // 000D EQ R5 R5 R6 - 0x7816000A, // 000E JMPF R5 #001A - 0x8C140105, // 000F GETMET R5 R0 K5 - 0x601C0018, // 0010 GETGBL R7 G24 - 0x58200006, // 0011 LDCONST R8 K6 - 0x5C240200, // 0012 MOVE R9 R1 - 0x5C280200, // 0013 MOVE R10 R1 - 0x5C2C0200, // 0014 MOVE R11 R1 - 0x7C1C0800, // 0015 CALL R7 4 - 0x7C140400, // 0016 CALL R5 2 - 0x50140000, // 0017 LDBOOL R5 0 0 + 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: get_indent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_indent, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(_X20_X20), + /* K1 */ be_nested_str_weak(indent_level), + /* K2 */ be_const_int(1), + }), + be_str_weak(get_indent), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040101, // 0000 GETMBR R1 R0 K1 + 0x00040302, // 0001 ADD R1 R1 K2 + 0x08060001, // 0002 MUL R1 K0 R1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_value, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[19]) { /* constants */ + /* K0 */ be_nested_str_weak(process_additive_expression), + /* K1 */ be_nested_str_weak(CONTEXT_VARIABLE), + /* K2 */ be_nested_str_weak(CONTEXT_PROPERTY), + /* K3 */ be_nested_str_weak(needs_closure), + /* K4 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), + /* K5 */ be_nested_str_weak(needs_function), + /* K6 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20_X25s_X20end), + /* K7 */ be_nested_str_weak(expr), + /* K8 */ be_nested_str_weak(ExpressionResult), + /* K9 */ be_nested_str_weak(function_call), + /* K10 */ be_nested_str_weak(return_type), + /* K11 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20def_X20_X28engine_X29_X20return_X20_X25s_X20end_X29), + /* K12 */ be_nested_str_weak(has_computation), + /* K13 */ be_nested_str_weak(_unwrap_resolve), + /* K14 */ be_nested_str_weak(symbol_table), + /* K15 */ be_nested_str_weak(get), + /* K16 */ be_nested_str_weak(closure_value), + /* K17 */ be_nested_str_weak(type), + /* K18 */ be_nested_str_weak(instance), + }), + be_str_weak(process_value), + &be_const_str_solidified, + ( &(const binstruction[66]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x5C100200, // 0001 MOVE R4 R1 + 0x50140200, // 0002 LDBOOL R5 1 0 + 0x50180000, // 0003 LDBOOL R6 0 0 + 0x7C080800, // 0004 CALL R2 4 + 0x880C0101, // 0005 GETMBR R3 R0 K1 + 0x1C0C0203, // 0006 EQ R3 R1 R3 + 0x740E0002, // 0007 JMPT R3 #000B + 0x880C0102, // 0008 GETMBR R3 R0 K2 + 0x1C0C0203, // 0009 EQ R3 R1 R3 + 0x780E0002, // 000A JMPF R3 #000E + 0x8C0C0503, // 000B GETMET R3 R2 K3 + 0x7C0C0200, // 000C CALL R3 1 + 0x740E0005, // 000D JMPT R3 #0014 + 0x880C0104, // 000E GETMBR R3 R0 K4 + 0x1C0C0203, // 000F EQ R3 R1 R3 + 0x780E002E, // 0010 JMPF R3 #0040 + 0x8C0C0505, // 0011 GETMET R3 R2 K5 + 0x7C0C0200, // 0012 CALL R3 1 + 0x780E002B, // 0013 JMPF R3 #0040 + 0x880C0104, // 0014 GETMBR R3 R0 K4 + 0x1C0C0203, // 0015 EQ R3 R1 R3 + 0x780E000A, // 0016 JMPF R3 #0022 + 0x600C0018, // 0017 GETGBL R3 G24 + 0x58100006, // 0018 LDCONST R4 K6 + 0x88140507, // 0019 GETMBR R5 R2 K7 + 0x7C0C0400, // 001A CALL R3 2 + 0x88100108, // 001B GETMBR R4 R0 K8 + 0x8C100909, // 001C GETMET R4 R4 K9 + 0x5C180600, // 001D MOVE R6 R3 + 0x881C050A, // 001E GETMBR R7 R2 K10 + 0x7C100600, // 001F CALL R4 3 + 0x80040800, // 0020 RET 1 R4 + 0x7002001C, // 0021 JMP #003F + 0x600C0018, // 0022 GETGBL R3 G24 + 0x5810000B, // 0023 LDCONST R4 K11 + 0x88140507, // 0024 GETMBR R5 R2 K7 + 0x7C0C0400, // 0025 CALL R3 2 + 0x8810050A, // 0026 GETMBR R4 R2 K10 + 0x54160008, // 0027 LDINT R5 9 + 0x1C100805, // 0028 EQ R4 R4 R5 + 0x78120002, // 0029 JMPF R4 #002D + 0x8810050C, // 002A GETMBR R4 R2 K12 + 0x74120000, // 002B JMPT R4 #002D + 0x880C0507, // 002C GETMBR R3 R2 K7 + 0x8C10010D, // 002D GETMET R4 R0 K13 + 0x88180507, // 002E GETMBR R6 R2 K7 + 0x7C100400, // 002F CALL R4 2 + 0x4C140000, // 0030 LDNIL R5 + 0x20140805, // 0031 NE R5 R4 R5 + 0x78160000, // 0032 JMPF R5 #0034 + 0x5C0C0800, // 0033 MOVE R3 R4 + 0x8814010E, // 0034 GETMBR R5 R0 K14 + 0x8C140B0F, // 0035 GETMET R5 R5 K15 + 0x581C0010, // 0036 LDCONST R7 K16 + 0x7C140400, // 0037 CALL R5 2 + 0x88180108, // 0038 GETMBR R6 R0 K8 + 0x8C180D09, // 0039 GETMET R6 R6 K9 + 0x5C200600, // 003A MOVE R8 R3 + 0x88240B11, // 003B GETMBR R9 R5 K17 + 0x88280B12, // 003C GETMBR R10 R5 K18 + 0x7C180800, // 003D CALL R6 4 + 0x80040C00, // 003E RET 1 R6 + 0x70020000, // 003F JMP #0041 + 0x80040400, // 0040 RET 1 R2 + 0x80000000, // 0041 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_nested_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 10, /* nstack */ + 3, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 4), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(push), + /* K1 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), + }), + be_str_weak(_anonymous_), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x680C0000, // 0000 GETUPV R3 U0 + 0x8C0C0700, // 0001 GETMET R3 R3 K0 + 0x60140018, // 0002 GETGBL R5 G24 + 0x58180001, // 0003 LDCONST R6 K1 + 0x5C1C0000, // 0004 MOVE R7 R0 + 0x5C200200, // 0005 MOVE R8 R1 + 0x5C240400, // 0006 MOVE R9 R2 + 0x7C140800, // 0007 CALL R5 4 + 0x7C0C0400, // 0008 CALL R3 2 + 0x80000000, // 0009 RET 0 + }) + ), + }), + 1, /* has constants */ + ( &(const bvalue[32]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(1), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20function_X20name), + /* K9 */ be_nested_str_weak(nil), + /* K10 */ be_nested_str_weak(symbol_table), + /* K11 */ be_nested_str_weak(get), + /* K12 */ be_nested_str_weak(process_function_arguments), + /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K14 */ be_nested_str_weak(get_reference), + /* K15 */ be_nested_str_weak(log), + /* K16 */ be_nested_str_weak(process_log_call), + /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), + /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K19 */ be_nested_str_weak(engine), + /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K21 */ be_nested_str_weak(_validate_animation_factory_exists), + /* K22 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), + /* K23 */ be_nested_str_weak(skip_function_arguments), + /* K24 */ be_nested_str_weak(expect_left_paren), + /* K25 */ be_nested_str_weak(_process_parameters_core), + /* K26 */ be_nested_str_weak(generic), + /* K27 */ be_nested_str_weak(expect_right_paren), + /* K28 */ be_nested_str_weak(_X0A), + /* K29 */ be_nested_str_weak(stop_iteration), + /* K30 */ be_nested_str_weak(_X28def_X20_X28engine_X29_X0A_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29_X0A_X25s_X0A_X20_X20return_X20provider_X0Aend_X29_X28engine_X29), + /* K31 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + }), + be_str_weak(process_nested_function_call), + &be_const_str_solidified, + ( &(const binstruction[143]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x58080001, // 0002 LDCONST R2 K1 + 0x4C0C0000, // 0003 LDNIL R3 + 0x200C0203, // 0004 NE R3 R1 R3 + 0x780E0009, // 0005 JMPF R3 #0010 + 0x880C0302, // 0006 GETMBR R3 R1 K2 + 0x1C0C0703, // 0007 EQ R3 R3 K3 + 0x740E0002, // 0008 JMPT R3 #000C + 0x880C0302, // 0009 GETMBR R3 R1 K2 + 0x1C0C0704, // 000A EQ R3 R3 K4 + 0x780E0003, // 000B JMPF R3 #0010 + 0x88080305, // 000C GETMBR R2 R1 K5 + 0x8C0C0106, // 000D GETMET R3 R0 K6 + 0x7C0C0200, // 000E CALL R3 1 + 0x70020003, // 000F JMP #0014 + 0x8C0C0107, // 0010 GETMET R3 R0 K7 + 0x58140008, // 0011 LDCONST R5 K8 + 0x7C0C0400, // 0012 CALL R3 2 + 0x80061200, // 0013 RET 1 K9 + 0x880C010A, // 0014 GETMBR R3 R0 K10 + 0x8C0C070B, // 0015 GETMET R3 R3 K11 + 0x5C140400, // 0016 MOVE R5 R2 + 0x7C0C0400, // 0017 CALL R3 2 + 0x4C100000, // 0018 LDNIL R4 + 0x20100604, // 0019 NE R4 R3 R4 + 0x7812000D, // 001A JMPF R4 #0029 + 0x88100702, // 001B GETMBR R4 R3 K2 + 0x54160003, // 001C LDINT R5 4 + 0x1C100805, // 001D EQ R4 R4 R5 + 0x78120009, // 001E JMPF R4 #0029 + 0x8C10010C, // 001F GETMET R4 R0 K12 + 0x50180200, // 0020 LDBOOL R6 1 0 + 0x7C100400, // 0021 CALL R4 2 + 0x60140018, // 0022 GETGBL R5 G24 + 0x5818000D, // 0023 LDCONST R6 K13 + 0x8C1C070E, // 0024 GETMET R7 R3 K14 + 0x7C1C0200, // 0025 CALL R7 1 + 0x5C200800, // 0026 MOVE R8 R4 + 0x7C140600, // 0027 CALL R5 3 + 0x80040A00, // 0028 RET 1 R5 + 0x1C10050F, // 0029 EQ R4 R2 K15 + 0x78120008, // 002A JMPF R4 #0034 + 0x8C10010C, // 002B GETMET R4 R0 K12 + 0x50180200, // 002C LDBOOL R6 1 0 + 0x7C100400, // 002D CALL R4 2 + 0x8C140110, // 002E GETMET R5 R0 K16 + 0x5C1C0800, // 002F MOVE R7 R4 + 0x88200111, // 0030 GETMBR R8 R0 K17 + 0x58240001, // 0031 LDCONST R9 K1 + 0x7C140800, // 0032 CALL R5 4 + 0x80040A00, // 0033 RET 1 R5 + 0x4C100000, // 0034 LDNIL R4 + 0x20100604, // 0035 NE R4 R3 R4 + 0x78120015, // 0036 JMPF R4 #004D + 0x88100702, // 0037 GETMBR R4 R3 K2 + 0x5416000D, // 0038 LDINT R5 14 + 0x1C100805, // 0039 EQ R4 R4 R5 + 0x78120011, // 003A JMPF R4 #004D + 0x8C10010C, // 003B GETMET R4 R0 K12 + 0x50180200, // 003C LDBOOL R6 1 0 + 0x7C100400, // 003D CALL R4 2 + 0x20140901, // 003E NE R5 R4 K1 + 0x78160004, // 003F JMPF R5 #0045 + 0x60140018, // 0040 GETGBL R5 G24 + 0x58180012, // 0041 LDCONST R6 K18 + 0x5C1C0800, // 0042 MOVE R7 R4 + 0x7C140400, // 0043 CALL R5 2 + 0x70020000, // 0044 JMP #0046 + 0x58140013, // 0045 LDCONST R5 K19 + 0x60180018, // 0046 GETGBL R6 G24 + 0x581C0014, // 0047 LDCONST R7 K20 + 0x5C200400, // 0048 MOVE R8 R2 + 0x5C240A00, // 0049 MOVE R9 R5 + 0x7C180600, // 004A CALL R6 3 + 0x80040C00, // 004B RET 1 R6 + 0x70020040, // 004C JMP #008E + 0x8C100115, // 004D GETMET R4 R0 K21 + 0x5C180400, // 004E MOVE R6 R2 + 0x7C100400, // 004F CALL R4 2 + 0x74120008, // 0050 JMPT R4 #005A + 0x8C100107, // 0051 GETMET R4 R0 K7 + 0x60180018, // 0052 GETGBL R6 G24 + 0x581C0016, // 0053 LDCONST R7 K22 + 0x5C200400, // 0054 MOVE R8 R2 + 0x7C180400, // 0055 CALL R6 2 + 0x7C100400, // 0056 CALL R4 2 + 0x8C100117, // 0057 GETMET R4 R0 K23 + 0x7C100200, // 0058 CALL R4 1 + 0x80061200, // 0059 RET 1 K9 + 0x8C100118, // 005A GETMET R4 R0 K24 + 0x7C100200, // 005B CALL R4 1 + 0x60100012, // 005C GETGBL R4 G18 + 0x7C100000, // 005D CALL R4 0 + 0x84140000, // 005E CLOSURE R5 P0 + 0x8C180119, // 005F GETMET R6 R0 K25 + 0x5C200400, // 0060 MOVE R8 R2 + 0x5824001A, // 0061 LDCONST R9 K26 + 0x5C280A00, // 0062 MOVE R10 R5 + 0x7C180800, // 0063 CALL R6 4 + 0x8C18011B, // 0064 GETMET R6 R0 K27 + 0x7C180200, // 0065 CALL R6 1 + 0x6018000C, // 0066 GETGBL R6 G12 + 0x5C1C0800, // 0067 MOVE R7 R4 + 0x7C180200, // 0068 CALL R6 1 + 0x24180D04, // 0069 GT R6 R6 K4 + 0x781A001B, // 006A JMPF R6 #0087 + 0x58180001, // 006B LDCONST R6 K1 + 0x601C0010, // 006C GETGBL R7 G16 + 0x6020000C, // 006D GETGBL R8 G12 + 0x5C240800, // 006E MOVE R9 R4 + 0x7C200200, // 006F CALL R8 1 + 0x04201103, // 0070 SUB R8 R8 K3 + 0x40220808, // 0071 CONNECT R8 K4 R8 + 0x7C1C0200, // 0072 CALL R7 1 + 0xA8020007, // 0073 EXBLK 0 #007C + 0x5C200E00, // 0074 MOVE R8 R7 + 0x7C200000, // 0075 CALL R8 0 + 0x24241104, // 0076 GT R9 R8 K4 + 0x78260000, // 0077 JMPF R9 #0079 + 0x00180D1C, // 0078 ADD R6 R6 K28 + 0x94240808, // 0079 GETIDX R9 R4 R8 + 0x00180C09, // 007A ADD R6 R6 R9 + 0x7001FFF7, // 007B JMP #0074 + 0x581C001D, // 007C LDCONST R7 K29 + 0xAC1C0200, // 007D CATCH R7 1 0 + 0xB0080000, // 007E RAISE 2 R0 R0 + 0x601C0018, // 007F GETGBL R7 G24 + 0x5820001E, // 0080 LDCONST R8 K30 + 0x5C240400, // 0081 MOVE R9 R2 + 0x5C280C00, // 0082 MOVE R10 R6 + 0x7C1C0600, // 0083 CALL R7 3 + 0xA0000000, // 0084 CLOSE R0 + 0x80040E00, // 0085 RET 1 R7 + 0x70020005, // 0086 JMP #008D + 0x60180018, // 0087 GETGBL R6 G24 + 0x581C001F, // 0088 LDCONST R7 K31 + 0x5C200400, // 0089 MOVE R8 R2 + 0x7C180400, // 008A CALL R6 2 + 0xA0000000, // 008B CLOSE R0 + 0x80040C00, // 008C RET 1 R6 + 0xA0100000, // 008D CLOSE R4 + 0x80000000, // 008E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: next +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_next, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(pull_lexer), + /* K1 */ be_nested_str_weak(next_token), + }), + be_str_weak(next), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_template_call_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_call_arguments, /* name */ + be_nested_proto( + 13, /* nstack */ + 5, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(error), + /* K1 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20expects_X20_X25s_X20arguments_X20but_X20_X25s_X20were_X20provided_X2E_X20Expected_X20parameters_X3A_X20_X25s), + }), + be_str_weak(_validate_template_call_arguments), + &be_const_str_solidified, + ( &(const binstruction[25]) { /* code */ + 0x6014000C, // 0000 GETGBL R5 G12 + 0x5C180400, // 0001 MOVE R6 R2 + 0x7C140200, // 0002 CALL R5 1 + 0x6018000C, // 0003 GETGBL R6 G12 + 0x5C1C0600, // 0004 MOVE R7 R3 + 0x7C180200, // 0005 CALL R6 1 + 0x20140A06, // 0006 NE R5 R5 R6 + 0x7816000E, // 0007 JMPF R5 #0017 + 0x8C140100, // 0008 GETMET R5 R0 K0 + 0x601C0018, // 0009 GETGBL R7 G24 + 0x58200001, // 000A LDCONST R8 K1 + 0x5C240200, // 000B MOVE R9 R1 + 0x6028000C, // 000C GETGBL R10 G12 + 0x5C2C0600, // 000D MOVE R11 R3 + 0x7C280200, // 000E CALL R10 1 + 0x602C000C, // 000F GETGBL R11 G12 + 0x5C300400, // 0010 MOVE R12 R2 + 0x7C2C0200, // 0011 CALL R11 1 + 0x5C300600, // 0012 MOVE R12 R3 + 0x7C1C0A00, // 0013 CALL R7 5 + 0x7C140400, // 0014 CALL R5 2 + 0x50140000, // 0015 LDBOOL R5 0 0 + 0x80040A00, // 0016 RET 1 R5 + 0x50140200, // 0017 LDBOOL R5 1 0 0x80040A00, // 0018 RET 1 R5 - 0x70020017, // 0019 JMP #0032 - 0x88140903, // 001A GETMBR R5 R4 K3 - 0x7816000B, // 001B JMPF R5 #0028 - 0x8C140105, // 001C GETMET R5 R0 K5 - 0x601C0018, // 001D GETGBL R7 G24 - 0x58200007, // 001E LDCONST R8 K7 - 0x5C240200, // 001F MOVE R9 R1 - 0x88280904, // 0020 GETMBR R10 R4 K4 - 0x5C2C0200, // 0021 MOVE R11 R1 - 0x5C300200, // 0022 MOVE R12 R1 - 0x7C1C0A00, // 0023 CALL R7 5 - 0x7C140400, // 0024 CALL R5 2 - 0x50140000, // 0025 LDBOOL R5 0 0 - 0x80040A00, // 0026 RET 1 R5 - 0x70020009, // 0027 JMP #0032 - 0x8C140105, // 0028 GETMET R5 R0 K5 - 0x601C0018, // 0029 GETGBL R7 G24 - 0x58200008, // 002A LDCONST R8 K8 - 0x5C240200, // 002B MOVE R9 R1 - 0x88280904, // 002C GETMBR R10 R4 K4 - 0x5C2C0400, // 002D MOVE R11 R2 - 0x7C1C0800, // 002E CALL R7 4 - 0x7C140400, // 002F CALL R5 2 - 0x50140000, // 0030 LDBOOL R5 0 0 - 0x80040A00, // 0031 RET 1 R5 - 0x60140010, // 0032 GETGBL R5 G16 - 0x88180709, // 0033 GETMBR R6 R3 K9 - 0x88180D0A, // 0034 GETMBR R6 R6 K10 - 0x7C140200, // 0035 CALL R5 1 - 0xA8020010, // 0036 EXBLK 0 #0048 - 0x5C180A00, // 0037 MOVE R6 R5 - 0x7C180000, // 0038 CALL R6 0 - 0x1C1C0206, // 0039 EQ R7 R1 R6 - 0x781E000B, // 003A JMPF R7 #0047 - 0x8C1C0105, // 003B GETMET R7 R0 K5 - 0x60240018, // 003C GETGBL R9 G24 - 0x5828000B, // 003D LDCONST R10 K11 - 0x5C2C0200, // 003E MOVE R11 R1 - 0x5C300400, // 003F MOVE R12 R2 - 0x5C340200, // 0040 MOVE R13 R1 - 0x5C380200, // 0041 MOVE R14 R1 - 0x7C240A00, // 0042 CALL R9 5 - 0x7C1C0400, // 0043 CALL R7 2 - 0x501C0000, // 0044 LDBOOL R7 0 0 - 0xA8040001, // 0045 EXBLK 1 1 - 0x80040E00, // 0046 RET 1 R7 - 0x7001FFEE, // 0047 JMP #0037 - 0x5814000C, // 0048 LDCONST R5 K12 - 0xAC140200, // 0049 CATCH R5 1 0 - 0xB0080000, // 004A RAISE 2 R0 R0 - 0x50140200, // 004B LDBOOL R5 1 0 - 0x80040A00, // 004C RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_log_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_log_call, /* name */ + be_nested_proto( + 10, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(fluent), + /* K1 */ be_nested_str_weak(def_X20_X28engine_X29_X20log_X28f_X22_X25s_X22_X2C_X203_X29_X20end), + /* K2 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), + /* K3 */ be_nested_str_weak(get_indent), + /* K4 */ be_nested_str_weak(CONTEXT_EXPRESSION), + /* K5 */ be_nested_str_weak(log_X28f_X22_X25s_X22_X2C_X203_X29), + /* K6 */ be_nested_str_weak(log_X28f_X22_X25s_X22_X2C_X203_X29_X25s), + }), + be_str_weak(process_log_call), + &be_const_str_solidified, + ( &(const binstruction[31]) { /* code */ + 0x1C100500, // 0000 EQ R4 R2 K0 + 0x7812000C, // 0001 JMPF R4 #000F + 0x60100018, // 0002 GETGBL R4 G24 + 0x58140001, // 0003 LDCONST R5 K1 + 0x5C180200, // 0004 MOVE R6 R1 + 0x7C100400, // 0005 CALL R4 2 + 0x60140018, // 0006 GETGBL R5 G24 + 0x58180002, // 0007 LDCONST R6 K2 + 0x8C1C0103, // 0008 GETMET R7 R0 K3 + 0x7C1C0200, // 0009 CALL R7 1 + 0x5C200800, // 000A MOVE R8 R4 + 0x5C240600, // 000B MOVE R9 R3 + 0x7C140800, // 000C CALL R5 4 + 0x80040A00, // 000D RET 1 R5 + 0x7002000E, // 000E JMP #001E + 0x88100104, // 000F GETMBR R4 R0 K4 + 0x1C100404, // 0010 EQ R4 R2 R4 + 0x78120005, // 0011 JMPF R4 #0018 + 0x60100018, // 0012 GETGBL R4 G24 + 0x58140005, // 0013 LDCONST R5 K5 + 0x5C180200, // 0014 MOVE R6 R1 + 0x7C100400, // 0015 CALL R4 2 + 0x80040800, // 0016 RET 1 R4 + 0x70020005, // 0017 JMP #001E + 0x60100018, // 0018 GETGBL R4 G24 + 0x58140006, // 0019 LDCONST R5 K6 + 0x5C180200, // 001A MOVE R6 R1 + 0x5C1C0600, // 001B MOVE R7 R3 + 0x7C100600, // 001C CALL R4 3 + 0x80040800, // 001D RET 1 R4 + 0x80000000, // 001E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_standalone_log +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ + be_nested_proto( + 9, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[14]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_left_paren), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_const_int(3), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), + /* K7 */ be_nested_str_weak(skip_statement), + /* K8 */ be_nested_str_weak(value), + /* K9 */ be_nested_str_weak(expect_right_paren), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(process_log_call), + /* K12 */ be_nested_str_weak(standalone), + /* K13 */ be_nested_str_weak(add), + }), + be_str_weak(process_standalone_log), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C040102, // 0004 GETMET R1 R0 K2 + 0x7C040200, // 0005 CALL R1 1 + 0x4C080000, // 0006 LDNIL R2 + 0x1C080202, // 0007 EQ R2 R1 R2 + 0x740A0002, // 0008 JMPT R2 #000C + 0x88080303, // 0009 GETMBR R2 R1 K3 + 0x20080504, // 000A NE R2 R2 K4 + 0x780A0005, // 000B JMPF R2 #0012 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x58100006, // 000D LDCONST R4 K6 + 0x7C080400, // 000E CALL R2 2 + 0x8C080107, // 000F GETMET R2 R0 K7 + 0x7C080200, // 0010 CALL R2 1 + 0x80000400, // 0011 RET 0 + 0x88080308, // 0012 GETMBR R2 R1 K8 + 0x8C0C0100, // 0013 GETMET R3 R0 K0 + 0x7C0C0200, // 0014 CALL R3 1 + 0x8C0C0109, // 0015 GETMET R3 R0 K9 + 0x7C0C0200, // 0016 CALL R3 1 + 0x8C0C010A, // 0017 GETMET R3 R0 K10 + 0x7C0C0200, // 0018 CALL R3 1 + 0x8C10010B, // 0019 GETMET R4 R0 K11 + 0x5C180400, // 001A MOVE R6 R2 + 0x581C000C, // 001B LDCONST R7 K12 + 0x5C200600, // 001C MOVE R8 R3 + 0x7C100800, // 001D CALL R4 4 + 0x8C14010D, // 001E GETMET R5 R0 K13 + 0x5C1C0800, // 001F MOVE R7 R4 + 0x7C140400, // 0020 CALL R5 2 + 0x80000000, // 0021 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_symbol_table_report +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_symbol_table_report, /* name */ + be_nested_proto( + 27, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 4]) { + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 0, /* 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(_XE2_X9C_X93), + /* K1 */ be_const_int(1), + /* K2 */ be_nested_str_weak(_XE2_X9A_XA0_XEF_XB8_X8F), + /* K3 */ be_const_int(2), + /* K4 */ be_nested_str_weak(_XE2_X9A_XA0), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(keys), + /* K7 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(display_width), + &be_const_str_solidified, + ( &(const binstruction[58]) { /* code */ + 0x60040013, // 0000 GETGBL R1 G19 + 0x7C040000, // 0001 CALL R1 0 + 0x98060101, // 0002 SETIDX R1 K0 K1 + 0x98060503, // 0003 SETIDX R1 K2 K3 + 0x98060901, // 0004 SETIDX R1 K4 K1 + 0x58080005, // 0005 LDCONST R2 K5 + 0x580C0005, // 0006 LDCONST R3 K5 + 0x6010000C, // 0007 GETGBL R4 G12 + 0x5C140000, // 0008 MOVE R5 R0 + 0x7C100200, // 0009 CALL R4 1 + 0x14100604, // 000A LT R4 R3 R4 + 0x7812002C, // 000B JMPF R4 #0039 + 0x50100000, // 000C LDBOOL R4 0 0 + 0x60140010, // 000D GETGBL R5 G16 + 0x8C180306, // 000E GETMET R6 R1 K6 + 0x7C180200, // 000F CALL R6 1 + 0x7C140200, // 0010 CALL R5 1 + 0xA802001E, // 0011 EXBLK 0 #0031 + 0x5C180A00, // 0012 MOVE R6 R5 + 0x7C180000, // 0013 CALL R6 0 + 0x601C000C, // 0014 GETGBL R7 G12 + 0x5C200C00, // 0015 MOVE R8 R6 + 0x7C1C0200, // 0016 CALL R7 1 + 0x001C0607, // 0017 ADD R7 R3 R7 + 0x6020000C, // 0018 GETGBL R8 G12 + 0x5C240000, // 0019 MOVE R9 R0 + 0x7C200200, // 001A CALL R8 1 + 0x181C0E08, // 001B LE R7 R7 R8 + 0x781E0010, // 001C JMPF R7 #002E + 0x601C000C, // 001D GETGBL R7 G12 + 0x5C200C00, // 001E MOVE R8 R6 + 0x7C1C0200, // 001F CALL R7 1 + 0x001C0607, // 0020 ADD R7 R3 R7 + 0x041C0F01, // 0021 SUB R7 R7 K1 + 0x401C0607, // 0022 CONNECT R7 R3 R7 + 0x941C0007, // 0023 GETIDX R7 R0 R7 + 0x1C1C0E06, // 0024 EQ R7 R7 R6 + 0x781E0007, // 0025 JMPF R7 #002E + 0x941C0206, // 0026 GETIDX R7 R1 R6 + 0x00080407, // 0027 ADD R2 R2 R7 + 0x601C000C, // 0028 GETGBL R7 G12 + 0x5C200C00, // 0029 MOVE R8 R6 + 0x7C1C0200, // 002A CALL R7 1 + 0x000C0607, // 002B ADD R3 R3 R7 + 0x50100200, // 002C LDBOOL R4 1 0 + 0x70020000, // 002D JMP #002F + 0x7001FFE2, // 002E JMP #0012 + 0xA8040001, // 002F EXBLK 1 1 + 0x70020002, // 0030 JMP #0034 + 0x58140007, // 0031 LDCONST R5 K7 + 0xAC140200, // 0032 CATCH R5 1 0 + 0xB0080000, // 0033 RAISE 2 R0 R0 + 0x5C140800, // 0034 MOVE R5 R4 + 0x74160001, // 0035 JMPT R5 #0038 + 0x00080501, // 0036 ADD R2 R2 K1 + 0x000C0701, // 0037 ADD R3 R3 K1 + 0x7001FFCD, // 0038 JMP #0007 + 0x80040400, // 0039 RET 1 R2 + }) + ), + be_nested_proto( + 8, /* nstack */ + 0, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 5), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_const_int(1), + /* K1 */ be_nested_str_weak(name), + /* K2 */ be_const_int(0), + }), + be_str_weak(_sort_symbol_data), + &be_const_str_solidified, + ( &(const binstruction[33]) { /* code */ + 0x6000000C, // 0000 GETGBL R0 G12 + 0x68040000, // 0001 GETUPV R1 U0 + 0x7C000200, // 0002 CALL R0 1 + 0x18040100, // 0003 LE R1 R0 K0 + 0x78060000, // 0004 JMPF R1 #0006 + 0x80000200, // 0005 RET 0 + 0x58040000, // 0006 LDCONST R1 K0 + 0x14080200, // 0007 LT R2 R1 R0 + 0x780A0016, // 0008 JMPF R2 #0020 + 0x68080000, // 0009 GETUPV R2 U0 + 0x94080401, // 000A GETIDX R2 R2 R1 + 0x940C0501, // 000B GETIDX R3 R2 K1 + 0x5C100200, // 000C MOVE R4 R1 + 0x24140902, // 000D GT R5 R4 K2 + 0x7816000C, // 000E JMPF R5 #001C + 0x04140900, // 000F SUB R5 R4 K0 + 0x68180000, // 0010 GETUPV R6 U0 + 0x94140C05, // 0011 GETIDX R5 R6 R5 + 0x94140B01, // 0012 GETIDX R5 R5 K1 + 0x24140A03, // 0013 GT R5 R5 R3 + 0x78160006, // 0014 JMPF R5 #001C + 0x68140000, // 0015 GETUPV R5 U0 + 0x04180900, // 0016 SUB R6 R4 K0 + 0x681C0000, // 0017 GETUPV R7 U0 + 0x94180E06, // 0018 GETIDX R6 R7 R6 + 0x98140806, // 0019 SETIDX R5 R4 R6 + 0x04100900, // 001A SUB R4 R4 K0 + 0x7001FFF0, // 001B JMP #000D + 0x68140000, // 001C GETUPV R5 U0 + 0x98140802, // 001D SETIDX R5 R4 R2 + 0x00040300, // 001E ADD R1 R1 K0 + 0x7001FFE6, // 001F JMP #0007 + 0x80000000, // 0020 RET 0 + }) + ), + be_nested_proto( + 4, /* nstack */ + 2, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 4), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_const_int(0), + /* K1 */ be_nested_str_weak(_X20), + }), + be_str_weak(pad_string), + &be_const_str_solidified, + ( &(const binstruction[10]) { /* code */ + 0x68080000, // 0000 GETUPV R2 U0 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x04080202, // 0003 SUB R2 R1 R2 + 0x180C0500, // 0004 LE R3 R2 K0 + 0x780E0000, // 0005 JMPF R3 #0007 + 0x80040000, // 0006 RET 1 R0 + 0x080E0202, // 0007 MUL R3 K1 R2 + 0x000C0003, // 0008 ADD R3 R0 R3 + 0x80040600, // 0009 RET 1 R3 + }) + ), + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 4), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_const_int(0), + /* K1 */ be_const_int(2), + /* K2 */ be_nested_str_weak(_X20), + }), + be_str_weak(center_string), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x68080000, // 0000 GETUPV R2 U0 + 0x5C0C0000, // 0001 MOVE R3 R0 + 0x7C080200, // 0002 CALL R2 1 + 0x04080202, // 0003 SUB R2 R1 R2 + 0x180C0500, // 0004 LE R3 R2 K0 + 0x780E0000, // 0005 JMPF R3 #0007 + 0x80040000, // 0006 RET 1 R0 + 0x0C0C0501, // 0007 DIV R3 R2 K1 + 0x04100403, // 0008 SUB R4 R2 R3 + 0x08160403, // 0009 MUL R5 K2 R3 + 0x00140A00, // 000A ADD R5 R5 R0 + 0x081A0404, // 000B MUL R6 K2 R4 + 0x00140A06, // 000C ADD R5 R5 R6 + 0x80040A00, // 000D RET 1 R5 + }) + ), + }), + 1, /* has constants */ + ( &(const bvalue[34]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(_X23_X23_X20Symbol_X20Table_X0A_X0A), + /* K2 */ be_nested_str_weak(symbol_table), + /* K3 */ be_nested_str_weak(list_symbols), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(No_X20symbols_X20defined_X0A_X0A), + /* K6 */ be_nested_str_weak(split), + /* K7 */ be_nested_str_weak(_X3A_X20), + /* K8 */ be_const_int(2), + /* K9 */ be_const_int(1), + /* K10 */ be_nested_str_weak(get), + /* K11 */ be_nested_str_weak(is_builtin), + /* K12 */ be_nested_str_weak(_XE2_X9C_X93), + /* K13 */ be_nested_str_weak(), + /* K14 */ be_nested_str_weak(is_dangerous_call), + /* K15 */ be_nested_str_weak(_XE2_X9A_XA0_XEF_XB8_X8F), + /* K16 */ be_nested_str_weak(takes_args), + /* K17 */ be_nested_str_weak(_X20_XE2_X9C_X93_X20), + /* K18 */ be_nested_str_weak(_X60_X25s_X60), + /* K19 */ be_nested_str_weak(push), + /* K20 */ be_nested_str_weak(name), + /* K21 */ be_nested_str_weak(typ), + /* K22 */ be_nested_str_weak(builtin), + /* K23 */ be_nested_str_weak(dangerous), + /* K24 */ be_nested_str_weak(stop_iteration), + /* K25 */ be_nested_str_weak(_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X0A), + /* K26 */ be_nested_str_weak(Symbol), + /* K27 */ be_nested_str_weak(Type), + /* K28 */ be_nested_str_weak(Builtin), + /* K29 */ be_nested_str_weak(Dangerous), + /* K30 */ be_nested_str_weak(Takes_X20Args), + /* K31 */ be_nested_str_weak(_X7C_X25s_X7C_X25s_X7C_X25s_X7C_X25s_X7C_X25s_X7C_X0A), + /* K32 */ be_nested_str_weak(_X2D), + /* K33 */ be_nested_str_weak(_X0A), + }), + be_str_weak(get_symbol_table_report), + &be_const_str_solidified, + ( &(const binstruction[202]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x58080001, // 0001 LDCONST R2 K1 + 0x880C0102, // 0002 GETMBR R3 R0 K2 + 0x8C0C0703, // 0003 GETMET R3 R3 K3 + 0x7C0C0200, // 0004 CALL R3 1 + 0x6010000C, // 0005 GETGBL R4 G12 + 0x5C140600, // 0006 MOVE R5 R3 + 0x7C100200, // 0007 CALL R4 1 + 0x1C100904, // 0008 EQ R4 R4 K4 + 0x78120001, // 0009 JMPF R4 #000C + 0x00080505, // 000A ADD R2 R2 K5 + 0x80040400, // 000B RET 1 R2 + 0x84100000, // 000C CLOSURE R4 P0 + 0x60140012, // 000D GETGBL R5 G18 + 0x7C140000, // 000E CALL R5 0 + 0x541A0005, // 000F LDINT R6 6 + 0x541E0003, // 0010 LDINT R7 4 + 0x54220006, // 0011 LDINT R8 7 + 0x54260008, // 0012 LDINT R9 9 + 0x542A0009, // 0013 LDINT R10 10 + 0x602C0010, // 0014 GETGBL R11 G16 + 0x5C300600, // 0015 MOVE R12 R3 + 0x7C2C0200, // 0016 CALL R11 1 + 0xA802005E, // 0017 EXBLK 0 #0077 + 0x5C301600, // 0018 MOVE R12 R11 + 0x7C300000, // 0019 CALL R12 0 + 0x8C340306, // 001A GETMET R13 R1 K6 + 0x5C3C1800, // 001B MOVE R15 R12 + 0x58400007, // 001C LDCONST R16 K7 + 0x7C340600, // 001D CALL R13 3 + 0x6038000C, // 001E GETGBL R14 G12 + 0x5C3C1A00, // 001F MOVE R15 R13 + 0x7C380200, // 0020 CALL R14 1 + 0x28381D08, // 0021 GE R14 R14 K8 + 0x783A0052, // 0022 JMPF R14 #0076 + 0x94381B04, // 0023 GETIDX R14 R13 K4 + 0x943C1B09, // 0024 GETIDX R15 R13 K9 + 0x88400102, // 0025 GETMBR R16 R0 K2 + 0x8C40210A, // 0026 GETMET R16 R16 K10 + 0x5C481C00, // 0027 MOVE R18 R14 + 0x7C400400, // 0028 CALL R16 2 + 0x4C440000, // 0029 LDNIL R17 + 0x20442011, // 002A NE R17 R16 R17 + 0x78460049, // 002B JMPF R17 #0076 + 0x8844210B, // 002C GETMBR R17 R16 K11 + 0x78460001, // 002D JMPF R17 #0030 + 0x5844000C, // 002E LDCONST R17 K12 + 0x70020000, // 002F JMP #0031 + 0x5844000D, // 0030 LDCONST R17 K13 + 0x8C48210E, // 0031 GETMET R18 R16 K14 + 0x7C480200, // 0032 CALL R18 1 + 0x784A0001, // 0033 JMPF R18 #0036 + 0x5848000F, // 0034 LDCONST R18 K15 + 0x70020000, // 0035 JMP #0037 + 0x5848000D, // 0036 LDCONST R18 K13 + 0x884C2110, // 0037 GETMBR R19 R16 K16 + 0x784E0001, // 0038 JMPF R19 #003B + 0x584C0011, // 0039 LDCONST R19 K17 + 0x70020000, // 003A JMP #003C + 0x584C000D, // 003B LDCONST R19 K13 + 0x60500018, // 003C GETGBL R20 G24 + 0x58540012, // 003D LDCONST R21 K18 + 0x5C581C00, // 003E MOVE R22 R14 + 0x7C500400, // 003F CALL R20 2 + 0x5C540800, // 0040 MOVE R21 R4 + 0x5C582800, // 0041 MOVE R22 R20 + 0x7C540200, // 0042 CALL R21 1 + 0x24542A06, // 0043 GT R21 R21 R6 + 0x78560003, // 0044 JMPF R21 #0049 + 0x5C540800, // 0045 MOVE R21 R4 + 0x5C582800, // 0046 MOVE R22 R20 + 0x7C540200, // 0047 CALL R21 1 + 0x5C182A00, // 0048 MOVE R6 R21 + 0x5C540800, // 0049 MOVE R21 R4 + 0x5C581E00, // 004A MOVE R22 R15 + 0x7C540200, // 004B CALL R21 1 + 0x24542A07, // 004C GT R21 R21 R7 + 0x78560003, // 004D JMPF R21 #0052 + 0x5C540800, // 004E MOVE R21 R4 + 0x5C581E00, // 004F MOVE R22 R15 + 0x7C540200, // 0050 CALL R21 1 + 0x5C1C2A00, // 0051 MOVE R7 R21 + 0x5C540800, // 0052 MOVE R21 R4 + 0x5C582200, // 0053 MOVE R22 R17 + 0x7C540200, // 0054 CALL R21 1 + 0x24542A08, // 0055 GT R21 R21 R8 + 0x78560003, // 0056 JMPF R21 #005B + 0x5C540800, // 0057 MOVE R21 R4 + 0x5C582200, // 0058 MOVE R22 R17 + 0x7C540200, // 0059 CALL R21 1 + 0x5C202A00, // 005A MOVE R8 R21 + 0x5C540800, // 005B MOVE R21 R4 + 0x5C582400, // 005C MOVE R22 R18 + 0x7C540200, // 005D CALL R21 1 + 0x24542A09, // 005E GT R21 R21 R9 + 0x78560003, // 005F JMPF R21 #0064 + 0x5C540800, // 0060 MOVE R21 R4 + 0x5C582400, // 0061 MOVE R22 R18 + 0x7C540200, // 0062 CALL R21 1 + 0x5C242A00, // 0063 MOVE R9 R21 + 0x5C540800, // 0064 MOVE R21 R4 + 0x5C582600, // 0065 MOVE R22 R19 + 0x7C540200, // 0066 CALL R21 1 + 0x24542A0A, // 0067 GT R21 R21 R10 + 0x78560003, // 0068 JMPF R21 #006D + 0x5C540800, // 0069 MOVE R21 R4 + 0x5C582600, // 006A MOVE R22 R19 + 0x7C540200, // 006B CALL R21 1 + 0x5C282A00, // 006C MOVE R10 R21 + 0x8C540B13, // 006D GETMET R21 R5 K19 + 0x605C0013, // 006E GETGBL R23 G19 + 0x7C5C0000, // 006F CALL R23 0 + 0x985E2814, // 0070 SETIDX R23 K20 R20 + 0x985E2A0F, // 0071 SETIDX R23 K21 R15 + 0x985E2C11, // 0072 SETIDX R23 K22 R17 + 0x985E2E12, // 0073 SETIDX R23 K23 R18 + 0x985E2013, // 0074 SETIDX R23 K16 R19 + 0x7C540400, // 0075 CALL R21 2 + 0x7001FFA0, // 0076 JMP #0018 + 0x582C0018, // 0077 LDCONST R11 K24 + 0xAC2C0200, // 0078 CATCH R11 1 0 + 0xB0080000, // 0079 RAISE 2 R0 R0 + 0x842C0001, // 007A CLOSURE R11 P1 + 0x5C301600, // 007B MOVE R12 R11 + 0x7C300000, // 007C CALL R12 0 + 0x84300002, // 007D CLOSURE R12 P2 + 0x84340003, // 007E CLOSURE R13 P3 + 0x60380018, // 007F GETGBL R14 G24 + 0x583C0019, // 0080 LDCONST R15 K25 + 0x5C401800, // 0081 MOVE R16 R12 + 0x5844001A, // 0082 LDCONST R17 K26 + 0x5C480C00, // 0083 MOVE R18 R6 + 0x7C400400, // 0084 CALL R16 2 + 0x5C441800, // 0085 MOVE R17 R12 + 0x5848001B, // 0086 LDCONST R18 K27 + 0x5C4C0E00, // 0087 MOVE R19 R7 + 0x7C440400, // 0088 CALL R17 2 + 0x5C481800, // 0089 MOVE R18 R12 + 0x584C001C, // 008A LDCONST R19 K28 + 0x5C501000, // 008B MOVE R20 R8 + 0x7C480400, // 008C CALL R18 2 + 0x5C4C1800, // 008D MOVE R19 R12 + 0x5850001D, // 008E LDCONST R20 K29 + 0x5C541200, // 008F MOVE R21 R9 + 0x7C4C0400, // 0090 CALL R19 2 + 0x5C501800, // 0091 MOVE R20 R12 + 0x5854001E, // 0092 LDCONST R21 K30 + 0x5C581400, // 0093 MOVE R22 R10 + 0x7C500400, // 0094 CALL R20 2 + 0x7C380C00, // 0095 CALL R14 6 + 0x603C0018, // 0096 GETGBL R15 G24 + 0x5840001F, // 0097 LDCONST R16 K31 + 0x00440D08, // 0098 ADD R17 R6 K8 + 0x08464011, // 0099 MUL R17 K32 R17 + 0x00480F08, // 009A ADD R18 R7 K8 + 0x084A4012, // 009B MUL R18 K32 R18 + 0x004C1108, // 009C ADD R19 R8 K8 + 0x084E4013, // 009D MUL R19 K32 R19 + 0x00501308, // 009E ADD R20 R9 K8 + 0x08524014, // 009F MUL R20 K32 R20 + 0x00541508, // 00A0 ADD R21 R10 K8 + 0x08564015, // 00A1 MUL R21 K32 R21 + 0x7C3C0C00, // 00A2 CALL R15 6 + 0x0008040E, // 00A3 ADD R2 R2 R14 + 0x0008040F, // 00A4 ADD R2 R2 R15 + 0x60400010, // 00A5 GETGBL R16 G16 + 0x5C440A00, // 00A6 MOVE R17 R5 + 0x7C400200, // 00A7 CALL R16 1 + 0xA802001A, // 00A8 EXBLK 0 #00C4 + 0x5C442000, // 00A9 MOVE R17 R16 + 0x7C440000, // 00AA CALL R17 0 + 0x60480018, // 00AB GETGBL R18 G24 + 0x584C0019, // 00AC LDCONST R19 K25 + 0x5C501800, // 00AD MOVE R20 R12 + 0x94542314, // 00AE GETIDX R21 R17 K20 + 0x5C580C00, // 00AF MOVE R22 R6 + 0x7C500400, // 00B0 CALL R20 2 + 0x5C541800, // 00B1 MOVE R21 R12 + 0x94582315, // 00B2 GETIDX R22 R17 K21 + 0x5C5C0E00, // 00B3 MOVE R23 R7 + 0x7C540400, // 00B4 CALL R21 2 + 0x5C581A00, // 00B5 MOVE R22 R13 + 0x945C2316, // 00B6 GETIDX R23 R17 K22 + 0x5C601000, // 00B7 MOVE R24 R8 + 0x7C580400, // 00B8 CALL R22 2 + 0x5C5C1A00, // 00B9 MOVE R23 R13 + 0x94602317, // 00BA GETIDX R24 R17 K23 + 0x5C641200, // 00BB MOVE R25 R9 + 0x7C5C0400, // 00BC CALL R23 2 + 0x5C601A00, // 00BD MOVE R24 R13 + 0x94642310, // 00BE GETIDX R25 R17 K16 + 0x5C681400, // 00BF MOVE R26 R10 + 0x7C600400, // 00C0 CALL R24 2 + 0x7C480C00, // 00C1 CALL R18 6 + 0x00080412, // 00C2 ADD R2 R2 R18 + 0x7001FFE4, // 00C3 JMP #00A9 + 0x58400018, // 00C4 LDCONST R16 K24 + 0xAC400200, // 00C5 CATCH R16 1 0 + 0xB0080000, // 00C6 RAISE 2 R0 R0 + 0x00080521, // 00C7 ADD R2 R2 K33 + 0xA0000000, // 00C8 CLOSE R0 + 0x80040400, // 00C9 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_statement, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[39]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(add), + /* K3 */ be_nested_str_weak(value), + /* K4 */ be_nested_str_weak(next), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(strip), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), + /* K9 */ be_nested_str_weak(skip_statement), + /* K10 */ be_nested_str_weak(template), + /* K11 */ be_nested_str_weak(process_template), + /* K12 */ be_nested_str_weak(strip_initialized), + /* K13 */ be_nested_str_weak(generate_default_strip_initialization), + /* K14 */ be_nested_str_weak(color), + /* K15 */ be_nested_str_weak(process_color), + /* K16 */ be_nested_str_weak(palette), + /* K17 */ be_nested_str_weak(process_palette), + /* K18 */ be_nested_str_weak(animation), + /* K19 */ be_nested_str_weak(process_animation), + /* K20 */ be_nested_str_weak(set), + /* K21 */ be_nested_str_weak(process_set), + /* K22 */ be_nested_str_weak(sequence), + /* K23 */ be_nested_str_weak(process_sequence), + /* K24 */ be_nested_str_weak(run), + /* K25 */ be_nested_str_weak(process_run), + /* K26 */ be_nested_str_weak(import), + /* K27 */ be_nested_str_weak(process_import), + /* K28 */ be_nested_str_weak(on), + /* K29 */ be_nested_str_weak(process_event_handler), + /* K30 */ be_nested_str_weak(berry), + /* K31 */ be_nested_str_weak(process_berry_code_block), + /* K32 */ be_nested_str_weak(Unknown_X20keyword_X20_X27_X25s_X27_X2E), + /* K33 */ be_const_int(1), + /* K34 */ be_nested_str_weak(log), + /* K35 */ be_nested_str_weak(peek), + /* K36 */ be_nested_str_weak(process_standalone_log), + /* K37 */ be_nested_str_weak(process_property_assignment), + /* K38 */ be_nested_str_weak(Unexpected_X20token_X20_X27_X25s_X27_X2E), + }), + be_str_weak(process_statement), + &be_const_str_solidified, + ( &(const binstruction[145]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x1C080202, // 0003 EQ R2 R1 R2 + 0x780A0000, // 0004 JMPF R2 #0006 + 0x80000400, // 0005 RET 0 + 0x88080301, // 0006 GETMBR R2 R1 K1 + 0x540E0024, // 0007 LDINT R3 37 + 0x1C080403, // 0008 EQ R2 R2 R3 + 0x780A0005, // 0009 JMPF R2 #0010 + 0x8C080102, // 000A GETMET R2 R0 K2 + 0x88100303, // 000B GETMBR R4 R1 K3 + 0x7C080400, // 000C CALL R2 2 + 0x8C080104, // 000D GETMET R2 R0 K4 + 0x7C080200, // 000E CALL R2 1 + 0x80000400, // 000F RET 0 + 0x88080301, // 0010 GETMBR R2 R1 K1 + 0x540E0022, // 0011 LDINT R3 35 + 0x1C080403, // 0012 EQ R2 R2 R3 + 0x780A0002, // 0013 JMPF R2 #0017 + 0x8C080104, // 0014 GETMET R2 R0 K4 + 0x7C080200, // 0015 CALL R2 1 + 0x80000400, // 0016 RET 0 + 0x88080301, // 0017 GETMBR R2 R1 K1 + 0x1C080505, // 0018 EQ R2 R2 K5 + 0x780A0052, // 0019 JMPF R2 #006D + 0x88080303, // 001A GETMBR R2 R1 K3 + 0x1C080506, // 001B EQ R2 R2 K6 + 0x780A0006, // 001C JMPF R2 #0024 + 0x8C080107, // 001D GETMET R2 R0 K7 + 0x58100008, // 001E LDCONST R4 K8 + 0x7C080400, // 001F CALL R2 2 + 0x8C080109, // 0020 GETMET R2 R0 K9 + 0x7C080200, // 0021 CALL R2 1 + 0x80000400, // 0022 RET 0 + 0x70020047, // 0023 JMP #006C + 0x88080303, // 0024 GETMBR R2 R1 K3 + 0x1C08050A, // 0025 EQ R2 R2 K10 + 0x780A0002, // 0026 JMPF R2 #002A + 0x8C08010B, // 0027 GETMET R2 R0 K11 + 0x7C080200, // 0028 CALL R2 1 + 0x70020041, // 0029 JMP #006C + 0x8808010C, // 002A GETMBR R2 R0 K12 + 0x740A0001, // 002B JMPT R2 #002E + 0x8C08010D, // 002C GETMET R2 R0 K13 + 0x7C080200, // 002D CALL R2 1 + 0x88080303, // 002E GETMBR R2 R1 K3 + 0x1C08050E, // 002F EQ R2 R2 K14 + 0x780A0002, // 0030 JMPF R2 #0034 + 0x8C08010F, // 0031 GETMET R2 R0 K15 + 0x7C080200, // 0032 CALL R2 1 + 0x70020037, // 0033 JMP #006C + 0x88080303, // 0034 GETMBR R2 R1 K3 + 0x1C080510, // 0035 EQ R2 R2 K16 + 0x780A0002, // 0036 JMPF R2 #003A + 0x8C080111, // 0037 GETMET R2 R0 K17 + 0x7C080200, // 0038 CALL R2 1 + 0x70020031, // 0039 JMP #006C + 0x88080303, // 003A GETMBR R2 R1 K3 + 0x1C080512, // 003B EQ R2 R2 K18 + 0x780A0002, // 003C JMPF R2 #0040 + 0x8C080113, // 003D GETMET R2 R0 K19 + 0x7C080200, // 003E CALL R2 1 + 0x7002002B, // 003F JMP #006C + 0x88080303, // 0040 GETMBR R2 R1 K3 + 0x1C080514, // 0041 EQ R2 R2 K20 + 0x780A0002, // 0042 JMPF R2 #0046 + 0x8C080115, // 0043 GETMET R2 R0 K21 + 0x7C080200, // 0044 CALL R2 1 + 0x70020025, // 0045 JMP #006C + 0x88080303, // 0046 GETMBR R2 R1 K3 + 0x1C080516, // 0047 EQ R2 R2 K22 + 0x780A0002, // 0048 JMPF R2 #004C + 0x8C080117, // 0049 GETMET R2 R0 K23 + 0x7C080200, // 004A CALL R2 1 + 0x7002001F, // 004B JMP #006C + 0x88080303, // 004C GETMBR R2 R1 K3 + 0x1C080518, // 004D EQ R2 R2 K24 + 0x780A0002, // 004E JMPF R2 #0052 + 0x8C080119, // 004F GETMET R2 R0 K25 + 0x7C080200, // 0050 CALL R2 1 + 0x70020019, // 0051 JMP #006C + 0x88080303, // 0052 GETMBR R2 R1 K3 + 0x1C08051A, // 0053 EQ R2 R2 K26 + 0x780A0002, // 0054 JMPF R2 #0058 + 0x8C08011B, // 0055 GETMET R2 R0 K27 + 0x7C080200, // 0056 CALL R2 1 + 0x70020013, // 0057 JMP #006C + 0x88080303, // 0058 GETMBR R2 R1 K3 + 0x1C08051C, // 0059 EQ R2 R2 K28 + 0x780A0002, // 005A JMPF R2 #005E + 0x8C08011D, // 005B GETMET R2 R0 K29 + 0x7C080200, // 005C CALL R2 1 + 0x7002000D, // 005D JMP #006C + 0x88080303, // 005E GETMBR R2 R1 K3 + 0x1C08051E, // 005F EQ R2 R2 K30 + 0x780A0002, // 0060 JMPF R2 #0064 + 0x8C08011F, // 0061 GETMET R2 R0 K31 + 0x7C080200, // 0062 CALL R2 1 + 0x70020007, // 0063 JMP #006C + 0x8C080107, // 0064 GETMET R2 R0 K7 + 0x60100018, // 0065 GETGBL R4 G24 + 0x58140020, // 0066 LDCONST R5 K32 + 0x88180303, // 0067 GETMBR R6 R1 K3 + 0x7C100400, // 0068 CALL R4 2 + 0x7C080400, // 0069 CALL R2 2 + 0x8C080109, // 006A GETMET R2 R0 K9 + 0x7C080200, // 006B CALL R2 1 + 0x70020022, // 006C JMP #0090 + 0x88080301, // 006D GETMBR R2 R1 K1 + 0x1C080521, // 006E EQ R2 R2 K33 + 0x780A0017, // 006F JMPF R2 #0088 + 0x8808010C, // 0070 GETMBR R2 R0 K12 + 0x740A0001, // 0071 JMPT R2 #0074 + 0x8C08010D, // 0072 GETMET R2 R0 K13 + 0x7C080200, // 0073 CALL R2 1 + 0x88080303, // 0074 GETMBR R2 R1 K3 + 0x1C080522, // 0075 EQ R2 R2 K34 + 0x780A000D, // 0076 JMPF R2 #0085 + 0x8C080123, // 0077 GETMET R2 R0 K35 + 0x7C080200, // 0078 CALL R2 1 + 0x4C0C0000, // 0079 LDNIL R3 + 0x20080403, // 007A NE R2 R2 R3 + 0x780A0008, // 007B JMPF R2 #0085 + 0x8C080123, // 007C GETMET R2 R0 K35 + 0x7C080200, // 007D CALL R2 1 + 0x88080501, // 007E GETMBR R2 R2 K1 + 0x540E0017, // 007F LDINT R3 24 + 0x1C080403, // 0080 EQ R2 R2 R3 + 0x780A0002, // 0081 JMPF R2 #0085 + 0x8C080124, // 0082 GETMET R2 R0 K36 + 0x7C080200, // 0083 CALL R2 1 + 0x70020001, // 0084 JMP #0087 + 0x8C080125, // 0085 GETMET R2 R0 K37 + 0x7C080200, // 0086 CALL R2 1 + 0x70020007, // 0087 JMP #0090 + 0x8C080107, // 0088 GETMET R2 R0 K7 + 0x60100018, // 0089 GETGBL R4 G24 + 0x58140026, // 008A LDCONST R5 K38 + 0x88180303, // 008B GETMBR R6 R1 K3 + 0x7C100400, // 008C CALL R4 2 + 0x7C080400, // 008D CALL R2 2 + 0x8C080109, // 008E GETMET R2 R0 K9 + 0x7C080200, // 008F CALL R2 1 + 0x80000000, // 0090 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_set +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_set, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[17]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(variable), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_assign), + /* K6 */ be_nested_str_weak(process_value), + /* K7 */ be_nested_str_weak(CONTEXT_VARIABLE), + /* K8 */ be_nested_str_weak(collect_inline_comment), + /* K9 */ be_nested_str_weak(_create_symbol_by_return_type), + /* K10 */ be_nested_str_weak(return_type), + /* K11 */ be_nested_str_weak(instance_for_validation), + /* K12 */ be_nested_str_weak(get_reference), + /* K13 */ be_nested_str_weak(_X25s_), + /* K14 */ be_nested_str_weak(add), + /* K15 */ be_nested_str_weak(var_X20_X25s_X20_X3D_X20_X25s_X25s), + /* K16 */ be_nested_str_weak(expr), + }), + be_str_weak(process_set), + &be_const_str_solidified, + ( &(const binstruction[43]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x5C100200, // 0005 MOVE R4 R1 + 0x58140003, // 0006 LDCONST R5 K3 + 0x7C080600, // 0007 CALL R2 3 + 0x740A0002, // 0008 JMPT R2 #000C + 0x8C080104, // 0009 GETMET R2 R0 K4 + 0x7C080200, // 000A CALL R2 1 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x88100107, // 000F GETMBR R4 R0 K7 + 0x7C080400, // 0010 CALL R2 2 + 0x8C0C0108, // 0011 GETMET R3 R0 K8 + 0x7C0C0200, // 0012 CALL R3 1 + 0x8C100109, // 0013 GETMET R4 R0 K9 + 0x5C180200, // 0014 MOVE R6 R1 + 0x881C050A, // 0015 GETMBR R7 R2 K10 + 0x8820050B, // 0016 GETMBR R8 R2 K11 + 0x7C100800, // 0017 CALL R4 4 + 0x4C140000, // 0018 LDNIL R5 + 0x20140805, // 0019 NE R5 R4 R5 + 0x78160002, // 001A JMPF R5 #001E + 0x8C14090C, // 001B GETMET R5 R4 K12 + 0x7C140200, // 001C CALL R5 1 + 0x70020003, // 001D JMP #0022 + 0x60140018, // 001E GETGBL R5 G24 + 0x5818000D, // 001F LDCONST R6 K13 + 0x5C1C0200, // 0020 MOVE R7 R1 + 0x7C140400, // 0021 CALL R5 2 + 0x8C18010E, // 0022 GETMET R6 R0 K14 + 0x60200018, // 0023 GETGBL R8 G24 + 0x5824000F, // 0024 LDCONST R9 K15 + 0x5C280A00, // 0025 MOVE R10 R5 + 0x882C0510, // 0026 GETMBR R11 R2 K16 + 0x5C300600, // 0027 MOVE R12 R3 + 0x7C200800, // 0028 CALL R8 4 + 0x7C180400, // 0029 CALL R6 2 + 0x80000000, // 002A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence_assignment_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_identifier), + /* K1 */ be_nested_str_weak(expect_dot), + /* K2 */ be_nested_str_weak(expect_assign), + /* K3 */ be_nested_str_weak(process_value), + /* K4 */ be_nested_str_weak(CONTEXT_PROPERTY), + /* K5 */ be_nested_str_weak(collect_inline_comment), + /* K6 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2E_X25s_X20_X3D_X20_X25s_X20end), + /* K7 */ be_nested_str_weak(expr), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), + /* K10 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_sequence_assignment_fluent), + &be_const_str_solidified, + ( &(const binstruction[29]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C080101, // 0002 GETMET R2 R0 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x8C080100, // 0004 GETMET R2 R0 K0 + 0x7C080200, // 0005 CALL R2 1 + 0x8C0C0102, // 0006 GETMET R3 R0 K2 + 0x7C0C0200, // 0007 CALL R3 1 + 0x8C0C0103, // 0008 GETMET R3 R0 K3 + 0x88140104, // 0009 GETMBR R5 R0 K4 + 0x7C0C0400, // 000A CALL R3 2 + 0x8C100105, // 000B GETMET R4 R0 K5 + 0x7C100200, // 000C CALL R4 1 + 0x60140018, // 000D GETGBL R5 G24 + 0x58180006, // 000E LDCONST R6 K6 + 0x5C1C0200, // 000F MOVE R7 R1 + 0x5C200400, // 0010 MOVE R8 R2 + 0x88240707, // 0011 GETMBR R9 R3 K7 + 0x7C140800, // 0012 CALL R5 4 + 0x8C180108, // 0013 GETMET R6 R0 K8 + 0x60200018, // 0014 GETGBL R8 G24 + 0x58240009, // 0015 LDCONST R9 K9 + 0x8C28010A, // 0016 GETMET R10 R0 K10 + 0x7C280200, // 0017 CALL R10 1 + 0x5C2C0A00, // 0018 MOVE R11 R5 + 0x5C300800, // 0019 MOVE R12 R4 + 0x7C200800, // 001A CALL R8 4 + 0x7C180400, // 001B CALL R6 2 + 0x80000000, // 001C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_named_color_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_named_color_value, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(get_reference), + }), + be_str_weak(get_named_color_value), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x80040400, // 0004 RET 1 R2 }) ) ); @@ -11199,105 +10422,11 @@ be_local_closure(class_SimpleDSLTranspiler_process_primary_expression, /* name /******************************************************************** -** Solidified function: process_unary_expression +** Solidified function: error ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_unary_expression, /* name */ +be_local_closure(class_SimpleDSLTranspiler_error, /* name */ be_nested_proto( - 14, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(error), - /* K2 */ be_nested_str_weak(Expected_X20value), - /* K3 */ be_nested_str_weak(ExpressionResult), - /* K4 */ be_nested_str_weak(literal), - /* K5 */ be_nested_str_weak(nil), - /* K6 */ be_nested_str_weak(type), - /* K7 */ be_nested_str_weak(next), - /* K8 */ be_nested_str_weak(process_unary_expression), - /* K9 */ be_nested_str_weak(_X28_X2D_X25s_X29), - /* K10 */ be_nested_str_weak(expr), - /* K11 */ be_nested_str_weak(has_dynamic), - /* K12 */ be_nested_str_weak(has_dangerous), - /* K13 */ be_nested_str_weak(return_type), - /* K14 */ be_nested_str_weak(instance_for_validation), - /* K15 */ be_nested_str_weak(process_primary_expression), - }), - be_str_weak(process_unary_expression), - &be_const_str_solidified, - ( &(const binstruction[54]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x4C140000, // 0002 LDNIL R5 - 0x1C140805, // 0003 EQ R5 R4 R5 - 0x78160007, // 0004 JMPF R5 #000D - 0x8C140101, // 0005 GETMET R5 R0 K1 - 0x581C0002, // 0006 LDCONST R7 K2 - 0x7C140400, // 0007 CALL R5 2 - 0x88140103, // 0008 GETMBR R5 R0 K3 - 0x8C140B04, // 0009 GETMET R5 R5 K4 - 0x581C0005, // 000A LDCONST R7 K5 - 0x7C140400, // 000B CALL R5 2 - 0x80040A00, // 000C RET 1 R5 - 0x88140906, // 000D GETMBR R5 R4 K6 - 0x541A0009, // 000E LDINT R6 10 - 0x1C140A06, // 000F EQ R5 R5 R6 - 0x78160012, // 0010 JMPF R5 #0024 - 0x8C140107, // 0011 GETMET R5 R0 K7 - 0x7C140200, // 0012 CALL R5 1 - 0x8C140108, // 0013 GETMET R5 R0 K8 - 0x5C1C0200, // 0014 MOVE R7 R1 - 0x50200000, // 0015 LDBOOL R8 0 0 - 0x5C240600, // 0016 MOVE R9 R3 - 0x7C140800, // 0017 CALL R5 4 - 0x8C180103, // 0018 GETMET R6 R0 K3 - 0x60200018, // 0019 GETGBL R8 G24 - 0x58240009, // 001A LDCONST R9 K9 - 0x88280B0A, // 001B GETMBR R10 R5 K10 - 0x7C200400, // 001C CALL R8 2 - 0x88240B0B, // 001D GETMBR R9 R5 K11 - 0x88280B0C, // 001E GETMBR R10 R5 K12 - 0x502C0200, // 001F LDBOOL R11 1 0 - 0x88300B0D, // 0020 GETMBR R12 R5 K13 - 0x88340B0E, // 0021 GETMBR R13 R5 K14 - 0x7C180E00, // 0022 CALL R6 7 - 0x80040C00, // 0023 RET 1 R6 - 0x88140906, // 0024 GETMBR R5 R4 K6 - 0x541A0008, // 0025 LDINT R6 9 - 0x1C140A06, // 0026 EQ R5 R5 R6 - 0x78160007, // 0027 JMPF R5 #0030 - 0x8C140107, // 0028 GETMET R5 R0 K7 - 0x7C140200, // 0029 CALL R5 1 - 0x8C140108, // 002A GETMET R5 R0 K8 - 0x5C1C0200, // 002B MOVE R7 R1 - 0x50200000, // 002C LDBOOL R8 0 0 - 0x5C240600, // 002D MOVE R9 R3 - 0x7C140800, // 002E CALL R5 4 - 0x80040A00, // 002F RET 1 R5 - 0x8C14010F, // 0030 GETMET R5 R0 K15 - 0x5C1C0200, // 0031 MOVE R7 R1 - 0x5C200400, // 0032 MOVE R8 R2 - 0x5C240600, // 0033 MOVE R9 R3 - 0x7C140800, // 0034 CALL R5 4 - 0x80040A00, // 0035 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_function_arguments -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ - be_nested_proto( - 9, /* nstack */ + 7, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -11305,893 +10434,33 @@ be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[20]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(at_end), - /* K2 */ be_nested_str_weak(check_right_paren), - /* K3 */ be_nested_str_weak(skip_whitespace), - /* K4 */ be_nested_str_weak(process_additive_expression), - /* K5 */ be_nested_str_weak(CONTEXT_ARGUMENT), - /* K6 */ be_nested_str_weak(expr), - /* K7 */ be_nested_str_weak(process_value), - /* K8 */ be_nested_str_weak(push), - /* K9 */ be_nested_str_weak(current), - /* K10 */ be_nested_str_weak(type), - /* K11 */ be_nested_str_weak(next), - /* K12 */ be_nested_str_weak(error), - /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), - /* K14 */ be_nested_str_weak(expect_right_paren), - /* K15 */ be_nested_str_weak(), - /* K16 */ be_const_int(0), - /* K17 */ be_const_int(1), - /* K18 */ be_nested_str_weak(_X2C_X20), - /* K19 */ be_nested_str_weak(stop_iteration), + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(line), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), + /* K4 */ be_nested_str_weak(dsl_compilation_error), }), - be_str_weak(process_function_arguments), + be_str_weak(error), &be_const_str_solidified, - ( &(const binstruction[81]) { /* code */ + ( &(const binstruction[17]) { /* code */ 0x8C080100, // 0000 GETMET R2 R0 K0 0x7C080200, // 0001 CALL R2 1 - 0x60080012, // 0002 GETGBL R2 G18 - 0x7C080000, // 0003 CALL R2 0 - 0x8C0C0101, // 0004 GETMET R3 R0 K1 - 0x7C0C0200, // 0005 CALL R3 1 - 0x740E0032, // 0006 JMPT R3 #003A - 0x8C0C0102, // 0007 GETMET R3 R0 K2 - 0x7C0C0200, // 0008 CALL R3 1 - 0x740E002F, // 0009 JMPT R3 #003A - 0x8C0C0103, // 000A GETMET R3 R0 K3 - 0x7C0C0200, // 000B CALL R3 1 - 0x8C0C0102, // 000C GETMET R3 R0 K2 - 0x7C0C0200, // 000D CALL R3 1 - 0x780E0000, // 000E JMPF R3 #0010 - 0x70020029, // 000F JMP #003A - 0x4C0C0000, // 0010 LDNIL R3 - 0x78060006, // 0011 JMPF R1 #0019 - 0x8C100104, // 0012 GETMET R4 R0 K4 - 0x88180105, // 0013 GETMBR R6 R0 K5 - 0x501C0200, // 0014 LDBOOL R7 1 0 - 0x50200200, // 0015 LDBOOL R8 1 0 - 0x7C100800, // 0016 CALL R4 4 - 0x880C0906, // 0017 GETMBR R3 R4 K6 - 0x70020003, // 0018 JMP #001D - 0x8C100107, // 0019 GETMET R4 R0 K7 - 0x88180105, // 001A GETMBR R6 R0 K5 - 0x7C100400, // 001B CALL R4 2 - 0x880C0906, // 001C GETMBR R3 R4 K6 - 0x8C100508, // 001D GETMET R4 R2 K8 - 0x5C180600, // 001E MOVE R6 R3 - 0x7C100400, // 001F CALL R4 2 - 0x8C100103, // 0020 GETMET R4 R0 K3 - 0x7C100200, // 0021 CALL R4 1 - 0x8C100109, // 0022 GETMET R4 R0 K9 - 0x7C100200, // 0023 CALL R4 1 - 0x4C140000, // 0024 LDNIL R5 - 0x20100805, // 0025 NE R4 R4 R5 - 0x7812000A, // 0026 JMPF R4 #0032 - 0x8C100109, // 0027 GETMET R4 R0 K9 - 0x7C100200, // 0028 CALL R4 1 - 0x8810090A, // 0029 GETMBR R4 R4 K10 - 0x5416001D, // 002A LDINT R5 30 - 0x1C100805, // 002B EQ R4 R4 R5 - 0x78120004, // 002C JMPF R4 #0032 - 0x8C10010B, // 002D GETMET R4 R0 K11 - 0x7C100200, // 002E CALL R4 1 - 0x8C100103, // 002F GETMET R4 R0 K3 - 0x7C100200, // 0030 CALL R4 1 - 0x70020006, // 0031 JMP #0039 - 0x8C100102, // 0032 GETMET R4 R0 K2 - 0x7C100200, // 0033 CALL R4 1 - 0x74120003, // 0034 JMPT R4 #0039 - 0x8C10010C, // 0035 GETMET R4 R0 K12 - 0x5818000D, // 0036 LDCONST R6 K13 - 0x7C100400, // 0037 CALL R4 2 - 0x70020000, // 0038 JMP #003A - 0x7001FFC9, // 0039 JMP #0004 - 0x8C0C010E, // 003A GETMET R3 R0 K14 - 0x7C0C0200, // 003B CALL R3 1 - 0x580C000F, // 003C LDCONST R3 K15 - 0x60100010, // 003D GETGBL R4 G16 - 0x6014000C, // 003E GETGBL R5 G12 - 0x5C180400, // 003F MOVE R6 R2 - 0x7C140200, // 0040 CALL R5 1 - 0x04140B11, // 0041 SUB R5 R5 K17 - 0x40162005, // 0042 CONNECT R5 K16 R5 - 0x7C100200, // 0043 CALL R4 1 - 0xA8020007, // 0044 EXBLK 0 #004D - 0x5C140800, // 0045 MOVE R5 R4 - 0x7C140000, // 0046 CALL R5 0 - 0x24180B10, // 0047 GT R6 R5 K16 - 0x781A0000, // 0048 JMPF R6 #004A - 0x000C0712, // 0049 ADD R3 R3 K18 - 0x94180405, // 004A GETIDX R6 R2 R5 - 0x000C0606, // 004B ADD R3 R3 R6 - 0x7001FFF7, // 004C JMP #0045 - 0x58100013, // 004D LDCONST R4 K19 - 0xAC100200, // 004E CATCH R4 1 0 - 0xB0080000, // 004F RAISE 2 R0 R0 - 0x80040600, // 0050 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: transpile_template_body -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_transpile_template_body, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[12]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(process_statement), - /* K2 */ be_nested_str_weak(run_statements), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(name), - /* K5 */ be_nested_str_weak(comment), - /* K6 */ be_nested_str_weak(add), - /* K7 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), - /* K8 */ be_nested_str_weak(stop_iteration), - /* K9 */ be_nested_str_weak(join_output), - /* K10 */ be_nested_str_weak(error), - /* K11 */ be_nested_str_weak(Template_X20body_X20transpilation_X20failed_X3A_X20_X25s), - }), - be_str_weak(transpile_template_body), - &be_const_str_solidified, - ( &(const binstruction[48]) { /* code */ - 0xA8020023, // 0000 EXBLK 0 #0025 - 0x8C040100, // 0001 GETMET R1 R0 K0 - 0x7C040200, // 0002 CALL R1 1 - 0x74060002, // 0003 JMPT R1 #0007 - 0x8C040101, // 0004 GETMET R1 R0 K1 - 0x7C040200, // 0005 CALL R1 1 - 0x7001FFF9, // 0006 JMP #0001 - 0x6004000C, // 0007 GETGBL R1 G12 - 0x88080102, // 0008 GETMBR R2 R0 K2 - 0x7C040200, // 0009 CALL R1 1 - 0x24040303, // 000A GT R1 R1 K3 - 0x78060012, // 000B JMPF R1 #001F - 0x60040010, // 000C GETGBL R1 G16 - 0x88080102, // 000D GETMBR R2 R0 K2 - 0x7C040200, // 000E CALL R1 1 - 0xA802000B, // 000F EXBLK 0 #001C - 0x5C080200, // 0010 MOVE R2 R1 - 0x7C080000, // 0011 CALL R2 0 - 0x940C0504, // 0012 GETIDX R3 R2 K4 - 0x94100505, // 0013 GETIDX R4 R2 K5 - 0x8C140106, // 0014 GETMET R5 R0 K6 - 0x601C0018, // 0015 GETGBL R7 G24 - 0x58200007, // 0016 LDCONST R8 K7 - 0x5C240600, // 0017 MOVE R9 R3 - 0x5C280800, // 0018 MOVE R10 R4 - 0x7C1C0600, // 0019 CALL R7 3 - 0x7C140400, // 001A CALL R5 2 - 0x7001FFF3, // 001B JMP #0010 - 0x58040008, // 001C LDCONST R1 K8 - 0xAC040200, // 001D CATCH R1 1 0 - 0xB0080000, // 001E RAISE 2 R0 R0 - 0x8C040109, // 001F GETMET R1 R0 K9 - 0x7C040200, // 0020 CALL R1 1 - 0xA8040001, // 0021 EXBLK 1 1 - 0x80040200, // 0022 RET 1 R1 - 0xA8040001, // 0023 EXBLK 1 1 - 0x70020009, // 0024 JMP #002F - 0xAC040002, // 0025 CATCH R1 0 2 - 0x70020006, // 0026 JMP #002E - 0x8C0C010A, // 0027 GETMET R3 R0 K10 - 0x60140018, // 0028 GETGBL R5 G24 - 0x5818000B, // 0029 LDCONST R6 K11 - 0x5C1C0400, // 002A MOVE R7 R2 - 0x7C140400, // 002B CALL R5 2 - 0x7C0C0400, // 002C CALL R3 2 - 0x70020000, // 002D JMP #002F - 0xB0080000, // 002E RAISE 2 R0 R0 - 0x80000000, // 002F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_indent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_indent, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(_X20_X20), - /* K1 */ be_nested_str_weak(indent_level), - /* K2 */ be_const_int(1), - }), - be_str_weak(get_indent), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x88040101, // 0000 GETMBR R1 R0 K1 - 0x00040302, // 0001 ADD R1 R1 K2 - 0x08060001, // 0002 MUL R1 K0 R1 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_log_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_log_statement_fluent, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_left_paren), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_const_int(3), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(log_X28_X29_X20function_X20requires_X20a_X20string_X20message), - /* K7 */ be_nested_str_weak(skip_statement), - /* K8 */ be_nested_str_weak(value), - /* K9 */ be_nested_str_weak(expect_right_paren), - /* K10 */ be_nested_str_weak(collect_inline_comment), - /* K11 */ be_nested_str_weak(process_log_call), - /* K12 */ be_nested_str_weak(fluent), - /* K13 */ be_nested_str_weak(add), - }), - be_str_weak(process_log_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C040102, // 0004 GETMET R1 R0 K2 - 0x7C040200, // 0005 CALL R1 1 - 0x4C080000, // 0006 LDNIL R2 - 0x1C080202, // 0007 EQ R2 R1 R2 - 0x740A0002, // 0008 JMPT R2 #000C - 0x88080303, // 0009 GETMBR R2 R1 K3 - 0x20080504, // 000A NE R2 R2 K4 - 0x780A0005, // 000B JMPF R2 #0012 - 0x8C080105, // 000C GETMET R2 R0 K5 - 0x58100006, // 000D LDCONST R4 K6 - 0x7C080400, // 000E CALL R2 2 - 0x8C080107, // 000F GETMET R2 R0 K7 - 0x7C080200, // 0010 CALL R2 1 - 0x80000400, // 0011 RET 0 - 0x88080308, // 0012 GETMBR R2 R1 K8 - 0x8C0C0100, // 0013 GETMET R3 R0 K0 - 0x7C0C0200, // 0014 CALL R3 1 - 0x8C0C0109, // 0015 GETMET R3 R0 K9 - 0x7C0C0200, // 0016 CALL R3 1 - 0x8C0C010A, // 0017 GETMET R3 R0 K10 - 0x7C0C0200, // 0018 CALL R3 1 - 0x8C10010B, // 0019 GETMET R4 R0 K11 - 0x5C180400, // 001A MOVE R6 R2 - 0x581C000C, // 001B LDCONST R7 K12 - 0x5C200600, // 001C MOVE R8 R3 - 0x7C100800, // 001D CALL R4 4 - 0x8C14010D, // 001E GETMET R5 R0 K13 - 0x5C1C0800, // 001F MOVE R7 R4 - 0x7C140400, // 0020 CALL R5 2 - 0x80000000, // 0021 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_value -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_value, /* name */ - be_nested_proto( - 11, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[19]) { /* constants */ - /* K0 */ be_nested_str_weak(process_additive_expression), - /* K1 */ be_nested_str_weak(CONTEXT_VARIABLE), - /* K2 */ be_nested_str_weak(CONTEXT_PROPERTY), - /* K3 */ be_nested_str_weak(needs_closure), - /* K4 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), - /* K5 */ be_nested_str_weak(needs_function), - /* K6 */ be_nested_str_weak(def_X20_X28engine_X29_X20return_X20_X25s_X20end), - /* K7 */ be_nested_str_weak(expr), - /* K8 */ be_nested_str_weak(ExpressionResult), - /* K9 */ be_nested_str_weak(function_call), - /* K10 */ be_nested_str_weak(return_type), - /* K11 */ be_nested_str_weak(animation_X2Ecreate_closure_value_X28engine_X2C_X20def_X20_X28engine_X29_X20return_X20_X25s_X20end_X29), - /* K12 */ be_nested_str_weak(has_computation), - /* K13 */ be_nested_str_weak(_unwrap_resolve), - /* K14 */ be_nested_str_weak(symbol_table), - /* K15 */ be_nested_str_weak(get), - /* K16 */ be_nested_str_weak(closure_value), - /* K17 */ be_nested_str_weak(type), - /* K18 */ be_nested_str_weak(instance), - }), - be_str_weak(process_value), - &be_const_str_solidified, - ( &(const binstruction[66]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x5C100200, // 0001 MOVE R4 R1 - 0x50140200, // 0002 LDBOOL R5 1 0 - 0x50180000, // 0003 LDBOOL R6 0 0 - 0x7C080800, // 0004 CALL R2 4 - 0x880C0101, // 0005 GETMBR R3 R0 K1 - 0x1C0C0203, // 0006 EQ R3 R1 R3 - 0x740E0002, // 0007 JMPT R3 #000B - 0x880C0102, // 0008 GETMBR R3 R0 K2 - 0x1C0C0203, // 0009 EQ R3 R1 R3 - 0x780E0002, // 000A JMPF R3 #000E - 0x8C0C0503, // 000B GETMET R3 R2 K3 - 0x7C0C0200, // 000C CALL R3 1 - 0x740E0005, // 000D JMPT R3 #0014 - 0x880C0104, // 000E GETMBR R3 R0 K4 - 0x1C0C0203, // 000F EQ R3 R1 R3 - 0x780E002E, // 0010 JMPF R3 #0040 - 0x8C0C0505, // 0011 GETMET R3 R2 K5 - 0x7C0C0200, // 0012 CALL R3 1 - 0x780E002B, // 0013 JMPF R3 #0040 - 0x880C0104, // 0014 GETMBR R3 R0 K4 - 0x1C0C0203, // 0015 EQ R3 R1 R3 - 0x780E000A, // 0016 JMPF R3 #0022 - 0x600C0018, // 0017 GETGBL R3 G24 - 0x58100006, // 0018 LDCONST R4 K6 - 0x88140507, // 0019 GETMBR R5 R2 K7 - 0x7C0C0400, // 001A CALL R3 2 - 0x88100108, // 001B GETMBR R4 R0 K8 - 0x8C100909, // 001C GETMET R4 R4 K9 - 0x5C180600, // 001D MOVE R6 R3 - 0x881C050A, // 001E GETMBR R7 R2 K10 - 0x7C100600, // 001F CALL R4 3 - 0x80040800, // 0020 RET 1 R4 - 0x7002001C, // 0021 JMP #003F - 0x600C0018, // 0022 GETGBL R3 G24 - 0x5810000B, // 0023 LDCONST R4 K11 - 0x88140507, // 0024 GETMBR R5 R2 K7 - 0x7C0C0400, // 0025 CALL R3 2 - 0x8810050A, // 0026 GETMBR R4 R2 K10 - 0x54160008, // 0027 LDINT R5 9 - 0x1C100805, // 0028 EQ R4 R4 R5 - 0x78120002, // 0029 JMPF R4 #002D - 0x8810050C, // 002A GETMBR R4 R2 K12 - 0x74120000, // 002B JMPT R4 #002D - 0x880C0507, // 002C GETMBR R3 R2 K7 - 0x8C10010D, // 002D GETMET R4 R0 K13 - 0x88180507, // 002E GETMBR R6 R2 K7 - 0x7C100400, // 002F CALL R4 2 - 0x4C140000, // 0030 LDNIL R5 - 0x20140805, // 0031 NE R5 R4 R5 - 0x78160000, // 0032 JMPF R5 #0034 - 0x5C0C0800, // 0033 MOVE R3 R4 - 0x8814010E, // 0034 GETMBR R5 R0 K14 - 0x8C140B0F, // 0035 GETMET R5 R5 K15 - 0x581C0010, // 0036 LDCONST R7 K16 - 0x7C140400, // 0037 CALL R5 2 - 0x88180108, // 0038 GETMBR R6 R0 K8 - 0x8C180D09, // 0039 GETMET R6 R6 K9 - 0x5C200600, // 003A MOVE R8 R3 - 0x88240B11, // 003B GETMBR R9 R5 K17 - 0x88280B12, // 003C GETMBR R10 R5 K18 - 0x7C180800, // 003D CALL R6 4 - 0x80040C00, // 003E RET 1 R6 - 0x70020000, // 003F JMP #0041 - 0x80040400, // 0040 RET 1 R2 - 0x80000000, // 0041 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_simple_value_assignment -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_simple_value_assignment, /* name */ - be_nested_proto( - 16, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_const_int(1), - /* K3 */ be_nested_str_weak(peek), - /* K4 */ be_nested_str_weak(value), - /* K5 */ be_nested_str_weak(process_value), - /* K6 */ be_nested_str_weak(collect_inline_comment), - /* K7 */ be_nested_str_weak(add), - /* K8 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), - /* K9 */ be_nested_str_weak(expr), - /* K10 */ be_nested_str_weak(symbol_table), - /* K11 */ be_nested_str_weak(contains), - /* K12 */ be_nested_str_weak(get), - /* K13 */ be_nested_str_weak(instance), - }), - be_str_weak(_process_simple_value_assignment), - &be_const_str_solidified, - ( &(const binstruction[73]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x4C140000, // 0002 LDNIL R5 - 0x20140805, // 0003 NE R5 R4 R5 - 0x7816000D, // 0004 JMPF R5 #0013 - 0x88140901, // 0005 GETMBR R5 R4 K1 - 0x1C140B02, // 0006 EQ R5 R5 K2 - 0x7816000A, // 0007 JMPF R5 #0013 - 0x8C140103, // 0008 GETMET R5 R0 K3 - 0x7C140200, // 0009 CALL R5 1 - 0x4C180000, // 000A LDNIL R6 - 0x1C140A06, // 000B EQ R5 R5 R6 - 0x74160006, // 000C JMPT R5 #0014 - 0x8C140103, // 000D GETMET R5 R0 K3 - 0x7C140200, // 000E CALL R5 1 - 0x88140B01, // 000F GETMBR R5 R5 K1 - 0x541A0017, // 0010 LDINT R6 24 - 0x20140A06, // 0011 NE R5 R5 R6 - 0x74160000, // 0012 JMPT R5 #0014 - 0x50140001, // 0013 LDBOOL R5 0 1 - 0x50140200, // 0014 LDBOOL R5 1 0 - 0x78160001, // 0015 JMPF R5 #0018 - 0x88180904, // 0016 GETMBR R6 R4 K4 - 0x70020000, // 0017 JMP #0019 - 0x4C180000, // 0018 LDNIL R6 - 0x8C1C0105, // 0019 GETMET R7 R0 K5 - 0x5C240400, // 001A MOVE R9 R2 - 0x7C1C0400, // 001B CALL R7 2 - 0x8C200106, // 001C GETMET R8 R0 K6 - 0x7C200200, // 001D CALL R8 1 - 0x8C240107, // 001E GETMET R9 R0 K7 - 0x602C0018, // 001F GETGBL R11 G24 - 0x58300008, // 0020 LDCONST R12 K8 - 0x5C340200, // 0021 MOVE R13 R1 - 0x88380F09, // 0022 GETMBR R14 R7 K9 - 0x5C3C1000, // 0023 MOVE R15 R8 - 0x7C2C0800, // 0024 CALL R11 4 - 0x7C240400, // 0025 CALL R9 2 - 0x7816001C, // 0026 JMPF R5 #0044 - 0x4C240000, // 0027 LDNIL R9 - 0x20240C09, // 0028 NE R9 R6 R9 - 0x78260019, // 0029 JMPF R9 #0044 - 0x8824010A, // 002A GETMBR R9 R0 K10 - 0x8C24130B, // 002B GETMET R9 R9 K11 - 0x5C2C0C00, // 002C MOVE R11 R6 - 0x7C240400, // 002D CALL R9 2 - 0x78260014, // 002E JMPF R9 #0044 - 0x8824010A, // 002F GETMBR R9 R0 K10 - 0x8C24130C, // 0030 GETMET R9 R9 K12 - 0x5C2C0C00, // 0031 MOVE R11 R6 - 0x7C240400, // 0032 CALL R9 2 - 0x4C280000, // 0033 LDNIL R10 - 0x2028120A, // 0034 NE R10 R9 R10 - 0x782A0008, // 0035 JMPF R10 #003F - 0x8828130D, // 0036 GETMBR R10 R9 K13 - 0x4C2C0000, // 0037 LDNIL R11 - 0x2028140B, // 0038 NE R10 R10 R11 - 0x782A0004, // 0039 JMPF R10 #003F - 0x5C280600, // 003A MOVE R10 R3 - 0x5C2C0200, // 003B MOVE R11 R1 - 0x8830130D, // 003C GETMBR R12 R9 K13 - 0x7C280400, // 003D CALL R10 2 - 0x70020003, // 003E JMP #0043 - 0x5C280600, // 003F MOVE R10 R3 - 0x5C2C0200, // 0040 MOVE R11 R1 - 0x4C300000, // 0041 LDNIL R12 - 0x7C280400, // 0042 CALL R10 2 - 0x70020003, // 0043 JMP #0048 - 0x5C240600, // 0044 MOVE R9 R3 - 0x5C280200, // 0045 MOVE R10 R1 - 0x4C2C0000, // 0046 LDNIL R11 - 0x7C240400, // 0047 CALL R9 2 - 0x80000000, // 0048 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_unified -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_unified, /* name */ - be_nested_proto( - 10, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 11, /* nstack */ - 3, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 2]) { /* upvals */ - be_local_const_upval(1, 0), - be_local_const_upval(1, 1), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(add), - /* K1 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), - }), - be_str_weak(_anonymous_), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x680C0000, // 0000 GETUPV R3 U0 - 0x8C0C0700, // 0001 GETMET R3 R3 K0 - 0x60140018, // 0002 GETGBL R5 G24 - 0x58180001, // 0003 LDCONST R6 K1 - 0x681C0001, // 0004 GETUPV R7 U1 - 0x5C200000, // 0005 MOVE R8 R0 - 0x5C240200, // 0006 MOVE R9 R1 - 0x5C280400, // 0007 MOVE R10 R2 - 0x7C140A00, // 0008 CALL R5 5 - 0x7C0C0400, // 0009 CALL R3 2 - 0x80000000, // 000A RET 0 - }) - ), - }), - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_left_paren), - /* K1 */ be_nested_str_weak(_process_parameters_core), - /* K2 */ be_nested_str_weak(expect_right_paren), - }), - be_str_weak(_process_named_arguments_unified), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x8C100100, // 0000 GETMET R4 R0 K0 - 0x7C100200, // 0001 CALL R4 1 - 0x84100000, // 0002 CLOSURE R4 P0 - 0x8C140101, // 0003 GETMET R5 R0 K1 - 0x5C1C0400, // 0004 MOVE R7 R2 - 0x5C200600, // 0005 MOVE R8 R3 - 0x5C240800, // 0006 MOVE R9 R4 - 0x7C140800, // 0007 CALL R5 4 - 0x8C140102, // 0008 GETMET R5 R0 K2 - 0x7C140200, // 0009 CALL R5 1 - 0xA0000000, // 000A CLOSE R0 - 0x80000000, // 000B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _validate_value_provider_reference -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_value_provider_reference, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(symbol_exists), - /* K2 */ be_nested_str_weak(error), - /* K3 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X2E_X20Make_X20sure_X20the_X20value_X20provider_X20or_X20animation_X20is_X20defined_X20before_X20use_X2E), - /* K4 */ be_nested_str_weak(get), - /* K5 */ be_nested_str_weak(type), - /* K6 */ be_nested_str_weak(_X27_X25s_X27_X20in_X20_X25s_X20statement_X20is_X20not_X20a_X20value_X20provider_X20or_X20animation_X20instance_X2E_X20Only_X20value_X20provider_X20instances_X20_X28like_X20oscillators_X29_X20and_X20animation_X20instances_X20can_X20be_X20restarted_X2E), - /* K7 */ be_nested_str_weak(Could_X20not_X20validate_X20_X27_X25s_X27_X20in_X20_X25s_X20statement_X3A_X20_X25s), - }), - be_str_weak(_validate_value_provider_reference), - &be_const_str_solidified, - ( &(const binstruction[65]) { /* code */ - 0xA8020030, // 0000 EXBLK 0 #0032 - 0x880C0100, // 0001 GETMBR R3 R0 K0 - 0x8C0C0701, // 0002 GETMET R3 R3 K1 - 0x5C140200, // 0003 MOVE R5 R1 - 0x7C0C0400, // 0004 CALL R3 2 - 0x740E0009, // 0005 JMPT R3 #0010 - 0x8C0C0102, // 0006 GETMET R3 R0 K2 - 0x60140018, // 0007 GETGBL R5 G24 - 0x58180003, // 0008 LDCONST R6 K3 - 0x5C1C0200, // 0009 MOVE R7 R1 - 0x5C200400, // 000A MOVE R8 R2 - 0x7C140600, // 000B CALL R5 3 - 0x7C0C0400, // 000C CALL R3 2 - 0x500C0000, // 000D LDBOOL R3 0 0 - 0xA8040001, // 000E EXBLK 1 1 - 0x80040600, // 000F RET 1 R3 - 0x880C0100, // 0010 GETMBR R3 R0 K0 - 0x8C0C0704, // 0011 GETMET R3 R3 K4 - 0x5C140200, // 0012 MOVE R5 R1 - 0x7C0C0400, // 0013 CALL R3 2 - 0x4C100000, // 0014 LDNIL R4 - 0x20100604, // 0015 NE R4 R3 R4 - 0x78120015, // 0016 JMPF R4 #002D - 0x88100705, // 0017 GETMBR R4 R3 K5 - 0x54160006, // 0018 LDINT R5 7 - 0x1C100805, // 0019 EQ R4 R4 R5 - 0x74120003, // 001A JMPT R4 #001F - 0x88100705, // 001B GETMBR R4 R3 K5 - 0x54160008, // 001C LDINT R5 9 - 0x1C100805, // 001D EQ R4 R4 R5 - 0x78120003, // 001E JMPF R4 #0023 - 0x50100200, // 001F LDBOOL R4 1 0 - 0xA8040001, // 0020 EXBLK 1 1 - 0x80040800, // 0021 RET 1 R4 - 0x70020009, // 0022 JMP #002D - 0x8C100102, // 0023 GETMET R4 R0 K2 - 0x60180018, // 0024 GETGBL R6 G24 - 0x581C0006, // 0025 LDCONST R7 K6 - 0x5C200200, // 0026 MOVE R8 R1 - 0x5C240400, // 0027 MOVE R9 R2 - 0x7C180600, // 0028 CALL R6 3 - 0x7C100400, // 0029 CALL R4 2 - 0x50100000, // 002A LDBOOL R4 0 0 - 0xA8040001, // 002B EXBLK 1 1 - 0x80040800, // 002C RET 1 R4 - 0x50100200, // 002D LDBOOL R4 1 0 - 0xA8040001, // 002E EXBLK 1 1 - 0x80040800, // 002F RET 1 R4 - 0xA8040001, // 0030 EXBLK 1 1 - 0x7002000D, // 0031 JMP #0040 - 0xAC0C0002, // 0032 CATCH R3 0 2 - 0x7002000A, // 0033 JMP #003F - 0x8C140102, // 0034 GETMET R5 R0 K2 - 0x601C0018, // 0035 GETGBL R7 G24 - 0x58200007, // 0036 LDCONST R8 K7 - 0x5C240200, // 0037 MOVE R9 R1 - 0x5C280400, // 0038 MOVE R10 R2 - 0x5C2C0800, // 0039 MOVE R11 R4 - 0x7C1C0800, // 003A CALL R7 4 - 0x7C140400, // 003B CALL R5 2 - 0x50140000, // 003C LDBOOL R5 0 0 - 0x80040A00, // 003D RET 1 R5 - 0x70020000, // 003E JMP #0040 - 0xB0080000, // 003F RAISE 2 R0 R0 - 0x80000000, // 0040 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_whitespace_including_newlines -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(next), - }), - be_str_weak(skip_whitespace_including_newlines), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x74060011, // 0002 JMPT R1 #0015 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x4C080000, // 0005 LDNIL R2 - 0x20080202, // 0006 NE R2 R1 R2 - 0x780A000A, // 0007 JMPF R2 #0013 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0x540E0024, // 0009 LDINT R3 37 - 0x1C080403, // 000A EQ R2 R2 R3 - 0x740A0003, // 000B JMPT R2 #0010 - 0x88080302, // 000C GETMBR R2 R1 K2 - 0x540E0022, // 000D LDINT R3 35 - 0x1C080403, // 000E EQ R2 R2 R3 - 0x780A0002, // 000F JMPF R2 #0013 - 0x8C080103, // 0010 GETMET R2 R0 K3 - 0x7C080200, // 0011 CALL R2 1 - 0x70020000, // 0012 JMP #0014 - 0x70020000, // 0013 JMP #0015 - 0x7001FFEA, // 0014 JMP #0000 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_restart_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent, /* name */ - be_nested_proto( - 12, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[11]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(value), - /* K2 */ be_nested_str_weak(next), - /* K3 */ be_nested_str_weak(expect_identifier), - /* K4 */ be_nested_str_weak(_validate_value_provider_reference), - /* K5 */ be_nested_str_weak(skip_statement), - /* K6 */ be_nested_str_weak(collect_inline_comment), - /* K7 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s__X2Estart_X28engine_X2Etime_ms_X29_X20end), - /* K8 */ be_nested_str_weak(add), - /* K9 */ be_nested_str_weak(_X25s_X2Epush_closure_step_X28_X25s_X29_X25s), - /* K10 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_restart_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[31]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x88040301, // 0002 GETMBR R1 R1 K1 - 0x8C080102, // 0003 GETMET R2 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x8C080103, // 0005 GETMET R2 R0 K3 + 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 - 0x8C0C0104, // 0007 GETMET R3 R0 K4 - 0x5C140400, // 0008 MOVE R5 R2 - 0x5C180200, // 0009 MOVE R6 R1 - 0x7C0C0600, // 000A CALL R3 3 - 0x740E0002, // 000B JMPT R3 #000F - 0x8C0C0105, // 000C GETMET R3 R0 K5 - 0x7C0C0200, // 000D CALL R3 1 - 0x80000600, // 000E RET 0 - 0x8C0C0106, // 000F GETMET R3 R0 K6 - 0x7C0C0200, // 0010 CALL R3 1 - 0x60100018, // 0011 GETGBL R4 G24 - 0x58140007, // 0012 LDCONST R5 K7 - 0x5C180400, // 0013 MOVE R6 R2 - 0x7C100400, // 0014 CALL R4 2 - 0x8C140108, // 0015 GETMET R5 R0 K8 - 0x601C0018, // 0016 GETGBL R7 G24 - 0x58200009, // 0017 LDCONST R8 K9 - 0x8C24010A, // 0018 GETMET R9 R0 K10 - 0x7C240200, // 0019 CALL R9 1 - 0x5C280800, // 001A MOVE R10 R4 - 0x5C2C0600, // 001B MOVE R11 R3 - 0x7C1C0800, // 001C CALL R7 4 - 0x7C140400, // 001D CALL R5 2 - 0x80000000, // 001E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_berry_code_block -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_berry_code_block, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_const_int(3), - /* K4 */ be_nested_str_weak(error), - /* K5 */ be_nested_str_weak(Expected_X20string_X20literal_X20after_X20_X27berry_X27_X20keyword_X2E_X20Use_X20berry_X20_X22_X22_X22_X3Ccode_X3E_X22_X22_X22_X20or_X20berry_X20_X27_X27_X27_X3Ccode_X3E_X27_X27_X27), - /* K6 */ be_nested_str_weak(skip_statement), - /* K7 */ be_nested_str_weak(value), - /* K8 */ be_nested_str_weak(collect_inline_comment), - /* K9 */ be_nested_str_weak(add), - /* K10 */ be_nested_str_weak(_X23_X20Berry_X20code_X20block_X25s), - /* K11 */ be_nested_str_weak(string), - /* K12 */ be_nested_str_weak(split), - /* K13 */ be_nested_str_weak(_X0A), - /* K14 */ be_nested_str_weak(stop_iteration), - /* K15 */ be_nested_str_weak(_X23_X20End_X20berry_X20code_X20block), - }), - be_str_weak(process_berry_code_block), - &be_const_str_solidified, - ( &(const binstruction[49]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x4C080000, // 0004 LDNIL R2 - 0x1C080202, // 0005 EQ R2 R1 R2 - 0x740A0002, // 0006 JMPT R2 #000A - 0x88080302, // 0007 GETMBR R2 R1 K2 - 0x20080503, // 0008 NE R2 R2 K3 - 0x780A0005, // 0009 JMPF R2 #0010 - 0x8C080104, // 000A GETMET R2 R0 K4 - 0x58100005, // 000B LDCONST R4 K5 - 0x7C080400, // 000C CALL R2 2 - 0x8C080106, // 000D GETMET R2 R0 K6 - 0x7C080200, // 000E CALL R2 1 - 0x80000400, // 000F RET 0 - 0x88080307, // 0010 GETMBR R2 R1 K7 - 0x8C0C0100, // 0011 GETMET R3 R0 K0 - 0x7C0C0200, // 0012 CALL R3 1 - 0x8C0C0108, // 0013 GETMET R3 R0 K8 - 0x7C0C0200, // 0014 CALL R3 1 - 0x8C100109, // 0015 GETMET R4 R0 K9 - 0x60180018, // 0016 GETGBL R6 G24 - 0x581C000A, // 0017 LDCONST R7 K10 - 0x5C200600, // 0018 MOVE R8 R3 - 0x7C180400, // 0019 CALL R6 2 - 0x7C100400, // 001A CALL R4 2 - 0xA4121600, // 001B IMPORT R4 K11 - 0x8C14090C, // 001C GETMET R5 R4 K12 - 0x5C1C0400, // 001D MOVE R7 R2 - 0x5820000D, // 001E LDCONST R8 K13 - 0x7C140600, // 001F CALL R5 3 - 0x60180010, // 0020 GETGBL R6 G16 - 0x5C1C0A00, // 0021 MOVE R7 R5 - 0x7C180200, // 0022 CALL R6 1 - 0xA8020005, // 0023 EXBLK 0 #002A - 0x5C1C0C00, // 0024 MOVE R7 R6 - 0x7C1C0000, // 0025 CALL R7 0 - 0x8C200109, // 0026 GETMET R8 R0 K9 - 0x5C280E00, // 0027 MOVE R10 R7 - 0x7C200400, // 0028 CALL R8 2 - 0x7001FFF9, // 0029 JMP #0024 - 0x5818000E, // 002A LDCONST R6 K14 - 0xAC180200, // 002B CATCH R6 1 0 - 0xB0080000, // 002C RAISE 2 R0 R0 - 0x8C180109, // 002D GETMET R6 R0 K9 - 0x5820000F, // 002E LDCONST R8 K15 - 0x7C180400, // 002F CALL R6 2 - 0x80000000, // 0030 RET 0 + 0x88080501, // 0007 GETMBR R2 R2 K1 + 0x70020000, // 0008 JMP #000A + 0x58080002, // 0009 LDCONST R2 K2 + 0x600C0018, // 000A GETGBL R3 G24 + 0x58100003, // 000B LDCONST R4 K3 + 0x5C140400, // 000C MOVE R5 R2 + 0x5C180200, // 000D MOVE R6 R1 + 0x7C0C0600, // 000E CALL R3 3 + 0xB0060803, // 000F RAISE 1 K4 R3 + 0x80000000, // 0010 RET 0 }) ) ); @@ -12244,150 +10513,11 @@ be_local_closure(class_SimpleDSLTranspiler_expect_dot, /* name */ /******************************************************************** -** Solidified function: process_function_call +** Solidified function: process_template ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_template, /* name */ be_nested_proto( 11, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[23]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_const_int(1), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20function_X20name), - /* K9 */ be_nested_str_weak(nil), - /* K10 */ be_nested_str_weak(symbol_table), - /* K11 */ be_nested_str_weak(get), - /* K12 */ be_nested_str_weak(process_function_arguments), - /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K14 */ be_nested_str_weak(get_reference), - /* K15 */ be_nested_str_weak(log), - /* K16 */ be_nested_str_weak(process_log_call), - /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), - /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K19 */ be_nested_str_weak(engine), - /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K21 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), - /* K22 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - }), - be_str_weak(process_function_call), - &be_const_str_solidified, - ( &(const binstruction[92]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x580C0001, // 0002 LDCONST R3 K1 - 0x4C100000, // 0003 LDNIL R4 - 0x20100404, // 0004 NE R4 R2 R4 - 0x78120009, // 0005 JMPF R4 #0010 - 0x88100502, // 0006 GETMBR R4 R2 K2 - 0x1C100903, // 0007 EQ R4 R4 K3 - 0x74120002, // 0008 JMPT R4 #000C - 0x88100502, // 0009 GETMBR R4 R2 K2 - 0x1C100904, // 000A EQ R4 R4 K4 - 0x78120003, // 000B JMPF R4 #0010 - 0x880C0505, // 000C GETMBR R3 R2 K5 - 0x8C100106, // 000D GETMET R4 R0 K6 - 0x7C100200, // 000E CALL R4 1 - 0x70020003, // 000F JMP #0014 - 0x8C100107, // 0010 GETMET R4 R0 K7 - 0x58180008, // 0011 LDCONST R6 K8 - 0x7C100400, // 0012 CALL R4 2 - 0x80061200, // 0013 RET 1 K9 - 0x8810010A, // 0014 GETMBR R4 R0 K10 - 0x8C10090B, // 0015 GETMET R4 R4 K11 - 0x5C180600, // 0016 MOVE R6 R3 - 0x7C100400, // 0017 CALL R4 2 - 0x4C140000, // 0018 LDNIL R5 - 0x20140805, // 0019 NE R5 R4 R5 - 0x7816000D, // 001A JMPF R5 #0029 - 0x88140902, // 001B GETMBR R5 R4 K2 - 0x541A0003, // 001C LDINT R6 4 - 0x1C140A06, // 001D EQ R5 R5 R6 - 0x78160009, // 001E JMPF R5 #0029 - 0x8C14010C, // 001F GETMET R5 R0 K12 - 0x501C0000, // 0020 LDBOOL R7 0 0 - 0x7C140400, // 0021 CALL R5 2 - 0x60180018, // 0022 GETGBL R6 G24 - 0x581C000D, // 0023 LDCONST R7 K13 - 0x8C20090E, // 0024 GETMET R8 R4 K14 - 0x7C200200, // 0025 CALL R8 1 - 0x5C240A00, // 0026 MOVE R9 R5 - 0x7C180600, // 0027 CALL R6 3 - 0x80040C00, // 0028 RET 1 R6 - 0x1C14070F, // 0029 EQ R5 R3 K15 - 0x78160008, // 002A JMPF R5 #0034 - 0x8C14010C, // 002B GETMET R5 R0 K12 - 0x501C0000, // 002C LDBOOL R7 0 0 - 0x7C140400, // 002D CALL R5 2 - 0x8C180110, // 002E GETMET R6 R0 K16 - 0x5C200A00, // 002F MOVE R8 R5 - 0x88240111, // 0030 GETMBR R9 R0 K17 - 0x58280001, // 0031 LDCONST R10 K1 - 0x7C180800, // 0032 CALL R6 4 - 0x80040C00, // 0033 RET 1 R6 - 0x8C14010C, // 0034 GETMET R5 R0 K12 - 0x501C0000, // 0035 LDBOOL R7 0 0 - 0x7C140400, // 0036 CALL R5 2 - 0x4C180000, // 0037 LDNIL R6 - 0x20180806, // 0038 NE R6 R4 R6 - 0x781A0012, // 0039 JMPF R6 #004D - 0x88180902, // 003A GETMBR R6 R4 K2 - 0x541E000D, // 003B LDINT R7 14 - 0x1C180C07, // 003C EQ R6 R6 R7 - 0x781A000E, // 003D JMPF R6 #004D - 0x20180B01, // 003E NE R6 R5 K1 - 0x781A0004, // 003F JMPF R6 #0045 - 0x60180018, // 0040 GETGBL R6 G24 - 0x581C0012, // 0041 LDCONST R7 K18 - 0x5C200A00, // 0042 MOVE R8 R5 - 0x7C180400, // 0043 CALL R6 2 - 0x70020000, // 0044 JMP #0046 - 0x58180013, // 0045 LDCONST R6 K19 - 0x601C0018, // 0046 GETGBL R7 G24 - 0x58200014, // 0047 LDCONST R8 K20 - 0x5C240600, // 0048 MOVE R9 R3 - 0x5C280C00, // 0049 MOVE R10 R6 - 0x7C1C0600, // 004A CALL R7 3 - 0x80040E00, // 004B RET 1 R7 - 0x7002000D, // 004C JMP #005B - 0x20180B01, // 004D NE R6 R5 K1 - 0x781A0006, // 004E JMPF R6 #0056 - 0x60180018, // 004F GETGBL R6 G24 - 0x581C0015, // 0050 LDCONST R7 K21 - 0x5C200600, // 0051 MOVE R8 R3 - 0x5C240A00, // 0052 MOVE R9 R5 - 0x7C180600, // 0053 CALL R6 3 - 0x80040C00, // 0054 RET 1 R6 - 0x70020004, // 0055 JMP #005B - 0x60180018, // 0056 GETGBL R6 G24 - 0x581C0016, // 0057 LDCONST R7 K22 - 0x5C200600, // 0058 MOVE R8 R3 - 0x7C180400, // 0059 CALL R6 2 - 0x80040C00, // 005A RET 1 R6 - 0x80000000, // 005B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_left_brace -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_left_brace, /* name */ - be_nested_proto( - 5, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -12395,78 +10525,156 @@ be_local_closure(class_SimpleDSLTranspiler_expect_left_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(next), - /* K3 */ be_nested_str_weak(error), - /* K4 */ be_nested_str_weak(Expected_X20_X27_X7B_X27), + ( &(const bvalue[22]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(template), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(expect_left_brace), + /* K6 */ be_nested_str_weak(at_end), + /* K7 */ be_nested_str_weak(check_right_brace), + /* K8 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K9 */ be_nested_str_weak(current), + /* K10 */ be_nested_str_weak(type), + /* K11 */ be_const_int(0), + /* K12 */ be_nested_str_weak(value), + /* K13 */ be_nested_str_weak(param), + /* K14 */ be_nested_str_weak(_validate_template_parameter_name), + /* K15 */ be_nested_str_weak(_validate_template_parameter_type), + /* K16 */ be_nested_str_weak(push), + /* K17 */ be_nested_str_weak(generate_template_function_direct), + /* K18 */ be_nested_str_weak(params), + /* K19 */ be_nested_str_weak(param_types), + /* K20 */ be_nested_str_weak(symbol_table), + /* K21 */ be_nested_str_weak(create_template), }), - be_str_weak(expect_left_brace), + be_str_weak(process_template), &be_const_str_solidified, - ( &(const binstruction[16]) { /* code */ + ( &(const binstruction[123]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0006, // 0004 JMPF R2 #000C - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0019, // 0006 LDINT R3 26 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0002, // 0008 JMPF R2 #000C - 0x8C080102, // 0009 GETMET R2 R0 K2 + 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 - 0x70020002, // 000B JMP #000F - 0x8C080103, // 000C GETMET R2 R0 K3 - 0x58100004, // 000D LDCONST R4 K4 - 0x7C080400, // 000E CALL R2 2 - 0x80000000, // 000F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: error -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_error, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(line), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(Line_X20_X25s_X3A_X20_X25s), - /* K4 */ be_nested_str_weak(dsl_compilation_error), - }), - be_str_weak(error), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x20080403, // 0003 NE R2 R2 R3 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x8C080100, // 0005 GETMET R2 R0 K0 - 0x7C080200, // 0006 CALL R2 1 - 0x88080501, // 0007 GETMBR R2 R2 K1 - 0x70020000, // 0008 JMP #000A - 0x58080002, // 0009 LDCONST R2 K2 - 0x600C0018, // 000A GETGBL R3 G24 - 0x58100003, // 000B LDCONST R4 K3 - 0x5C140400, // 000C MOVE R5 R2 - 0x5C180200, // 000D MOVE R6 R1 - 0x7C0C0600, // 000E CALL R3 3 - 0xB0060803, // 000F RAISE 1 K4 R3 - 0x80000000, // 0010 RET 0 + 0x80000400, // 000B RET 0 + 0x8C080105, // 000C GETMET R2 R0 K5 + 0x7C080200, // 000D CALL R2 1 + 0x60080012, // 000E GETGBL R2 G18 + 0x7C080000, // 000F CALL R2 0 + 0x600C0013, // 0010 GETGBL R3 G19 + 0x7C0C0000, // 0011 CALL R3 0 + 0x60100013, // 0012 GETGBL R4 G19 + 0x7C100000, // 0013 CALL R4 0 + 0x8C140106, // 0014 GETMET R5 R0 K6 + 0x7C140200, // 0015 CALL R5 1 + 0x74160054, // 0016 JMPT R5 #006C + 0x8C140107, // 0017 GETMET R5 R0 K7 + 0x7C140200, // 0018 CALL R5 1 + 0x74160051, // 0019 JMPT R5 #006C + 0x8C140108, // 001A GETMET R5 R0 K8 + 0x7C140200, // 001B CALL R5 1 + 0x8C140107, // 001C GETMET R5 R0 K7 + 0x7C140200, // 001D CALL R5 1 + 0x78160000, // 001E JMPF R5 #0020 + 0x7002004B, // 001F JMP #006C + 0x8C140109, // 0020 GETMET R5 R0 K9 + 0x7C140200, // 0021 CALL R5 1 + 0x4C180000, // 0022 LDNIL R6 + 0x20180A06, // 0023 NE R6 R5 R6 + 0x781A0044, // 0024 JMPF R6 #006A + 0x88180B0A, // 0025 GETMBR R6 R5 K10 + 0x1C180D0B, // 0026 EQ R6 R6 K11 + 0x781A0041, // 0027 JMPF R6 #006A + 0x88180B0C, // 0028 GETMBR R6 R5 K12 + 0x1C180D0D, // 0029 EQ R6 R6 K13 + 0x781A003E, // 002A JMPF R6 #006A + 0x8C180100, // 002B GETMET R6 R0 K0 + 0x7C180200, // 002C CALL R6 1 + 0x8C180101, // 002D GETMET R6 R0 K1 + 0x7C180200, // 002E CALL R6 1 + 0x8C1C010E, // 002F GETMET R7 R0 K14 + 0x5C240C00, // 0030 MOVE R9 R6 + 0x5C280800, // 0031 MOVE R10 R4 + 0x7C1C0600, // 0032 CALL R7 3 + 0x741E0002, // 0033 JMPT R7 #0037 + 0x8C1C0104, // 0034 GETMET R7 R0 K4 + 0x7C1C0200, // 0035 CALL R7 1 + 0x80000E00, // 0036 RET 0 + 0x4C1C0000, // 0037 LDNIL R7 + 0x8C200109, // 0038 GETMET R8 R0 K9 + 0x7C200200, // 0039 CALL R8 1 + 0x4C240000, // 003A LDNIL R9 + 0x20201009, // 003B NE R8 R8 R9 + 0x78220015, // 003C JMPF R8 #0053 + 0x8C200109, // 003D GETMET R8 R0 K9 + 0x7C200200, // 003E CALL R8 1 + 0x8820110A, // 003F GETMBR R8 R8 K10 + 0x1C20110B, // 0040 EQ R8 R8 K11 + 0x78220010, // 0041 JMPF R8 #0053 + 0x8C200109, // 0042 GETMET R8 R0 K9 + 0x7C200200, // 0043 CALL R8 1 + 0x8820110C, // 0044 GETMBR R8 R8 K12 + 0x1C20110A, // 0045 EQ R8 R8 K10 + 0x7822000B, // 0046 JMPF R8 #0053 + 0x8C200100, // 0047 GETMET R8 R0 K0 + 0x7C200200, // 0048 CALL R8 1 + 0x8C200101, // 0049 GETMET R8 R0 K1 + 0x7C200200, // 004A CALL R8 1 + 0x5C1C1000, // 004B MOVE R7 R8 + 0x8C20010F, // 004C GETMET R8 R0 K15 + 0x5C280E00, // 004D MOVE R10 R7 + 0x7C200400, // 004E CALL R8 2 + 0x74220002, // 004F JMPT R8 #0053 + 0x8C200104, // 0050 GETMET R8 R0 K4 + 0x7C200200, // 0051 CALL R8 1 + 0x80001000, // 0052 RET 0 + 0x8C200510, // 0053 GETMET R8 R2 K16 + 0x5C280C00, // 0054 MOVE R10 R6 + 0x7C200400, // 0055 CALL R8 2 + 0x50200200, // 0056 LDBOOL R8 1 0 + 0x98100C08, // 0057 SETIDX R4 R6 R8 + 0x4C200000, // 0058 LDNIL R8 + 0x20200E08, // 0059 NE R8 R7 R8 + 0x78220000, // 005A JMPF R8 #005C + 0x980C0C07, // 005B SETIDX R3 R6 R7 + 0x8C200109, // 005C GETMET R8 R0 K9 + 0x7C200200, // 005D CALL R8 1 + 0x4C240000, // 005E LDNIL R9 + 0x20201009, // 005F NE R8 R8 R9 + 0x78220007, // 0060 JMPF R8 #0069 + 0x8C200109, // 0061 GETMET R8 R0 K9 + 0x7C200200, // 0062 CALL R8 1 + 0x8820110A, // 0063 GETMBR R8 R8 K10 + 0x54260022, // 0064 LDINT R9 35 + 0x1C201009, // 0065 EQ R8 R8 R9 + 0x78220001, // 0066 JMPF R8 #0069 + 0x8C200100, // 0067 GETMET R8 R0 K0 + 0x7C200200, // 0068 CALL R8 1 + 0x70020000, // 0069 JMP #006B + 0x70020000, // 006A JMP #006C + 0x7001FFA7, // 006B JMP #0014 + 0x8C140111, // 006C GETMET R5 R0 K17 + 0x5C1C0200, // 006D MOVE R7 R1 + 0x5C200400, // 006E MOVE R8 R2 + 0x5C240600, // 006F MOVE R9 R3 + 0x7C140800, // 0070 CALL R5 4 + 0x60140013, // 0071 GETGBL R5 G19 + 0x7C140000, // 0072 CALL R5 0 + 0x98162402, // 0073 SETIDX R5 K18 R2 + 0x98162603, // 0074 SETIDX R5 K19 R3 + 0x88180114, // 0075 GETMBR R6 R0 K20 + 0x8C180D15, // 0076 GETMET R6 R6 K21 + 0x5C200200, // 0077 MOVE R8 R1 + 0x5C240A00, // 0078 MOVE R9 R5 + 0x7C180600, // 0079 CALL R6 3 + 0x80000000, // 007A RET 0 }) ) ); @@ -12539,127 +10747,12 @@ be_local_closure(class_SimpleDSLTranspiler_skip_function_arguments, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: collect_inline_comment -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_nested_str_weak(_X20_X20), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(next), - /* K5 */ be_nested_str_weak(), - }), - be_str_weak(collect_inline_comment), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0008, // 0004 JMPF R2 #000E - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0024, // 0006 LDINT R3 37 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0004, // 0008 JMPF R2 #000E - 0x88080303, // 0009 GETMBR R2 R1 K3 - 0x000A0402, // 000A ADD R2 K2 R2 - 0x8C0C0104, // 000B GETMET R3 R0 K4 - 0x7C0C0200, // 000C CALL R3 1 - 0x80040400, // 000D RET 1 R2 - 0x80060A00, // 000E RET 1 K5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: can_use_as_identifier -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_can_use_as_identifier, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ - /* K0 */ be_nested_str_weak(color), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(palette), - /* K3 */ be_nested_str_weak(startup), - /* K4 */ be_nested_str_weak(shutdown), - /* K5 */ be_nested_str_weak(button_press), - /* K6 */ be_nested_str_weak(button_hold), - /* K7 */ be_nested_str_weak(motion_detected), - /* K8 */ be_nested_str_weak(brightness_change), - /* K9 */ be_nested_str_weak(timer), - /* K10 */ be_nested_str_weak(time), - /* K11 */ be_nested_str_weak(sound_peak), - /* K12 */ be_nested_str_weak(network_message), - /* K13 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(can_use_as_identifier), - &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x60080012, // 0000 GETGBL R2 G18 - 0x7C080000, // 0001 CALL R2 0 - 0x400C0500, // 0002 CONNECT R3 R2 K0 - 0x400C0501, // 0003 CONNECT R3 R2 K1 - 0x400C0502, // 0004 CONNECT R3 R2 K2 - 0x400C0503, // 0005 CONNECT R3 R2 K3 - 0x400C0504, // 0006 CONNECT R3 R2 K4 - 0x400C0505, // 0007 CONNECT R3 R2 K5 - 0x400C0506, // 0008 CONNECT R3 R2 K6 - 0x400C0507, // 0009 CONNECT R3 R2 K7 - 0x400C0508, // 000A CONNECT R3 R2 K8 - 0x400C0509, // 000B CONNECT R3 R2 K9 - 0x400C050A, // 000C CONNECT R3 R2 K10 - 0x400C050B, // 000D CONNECT R3 R2 K11 - 0x400C050C, // 000E CONNECT R3 R2 K12 - 0x600C0010, // 000F GETGBL R3 G16 - 0x5C100400, // 0010 MOVE R4 R2 - 0x7C0C0200, // 0011 CALL R3 1 - 0xA8020007, // 0012 EXBLK 0 #001B - 0x5C100600, // 0013 MOVE R4 R3 - 0x7C100000, // 0014 CALL R4 0 - 0x1C140204, // 0015 EQ R5 R1 R4 - 0x78160002, // 0016 JMPF R5 #001A - 0x50140200, // 0017 LDBOOL R5 1 0 - 0xA8040001, // 0018 EXBLK 1 1 - 0x80040A00, // 0019 RET 1 R5 - 0x7001FFF7, // 001A JMP #0013 - 0x580C000D, // 001B LDCONST R3 K13 - 0xAC0C0200, // 001C CATCH R3 1 0 - 0xB0080000, // 001D RAISE 2 R0 R0 - 0x500C0000, // 001E LDBOOL R3 0 0 - 0x80040600, // 001F RET 1 R3 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: at_end ********************************************************************/ be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ be_nested_proto( - 4, /* nstack */ + 3, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -12667,35 +10760,17 @@ be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(pull_lexer), + /* K1 */ be_nested_str_weak(at_end), }), be_str_weak(at_end), &be_const_str_solidified, - ( &(const binstruction[20]) { /* code */ + ( &(const binstruction[ 4]) { /* code */ 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x6008000C, // 0001 GETGBL R2 G12 - 0x880C0101, // 0002 GETMBR R3 R0 K1 - 0x7C080200, // 0003 CALL R2 1 - 0x28040202, // 0004 GE R1 R1 R2 - 0x7406000B, // 0005 JMPT R1 #0012 - 0x8C040102, // 0006 GETMET R1 R0 K2 - 0x7C040200, // 0007 CALL R1 1 - 0x4C080000, // 0008 LDNIL R2 - 0x20040202, // 0009 NE R1 R1 R2 - 0x78060005, // 000A JMPF R1 #0011 - 0x8C040102, // 000B GETMET R1 R0 K2 - 0x7C040200, // 000C CALL R1 1 - 0x88040303, // 000D GETMBR R1 R1 K3 - 0x540A0025, // 000E LDINT R2 38 - 0x1C040202, // 000F EQ R1 R1 R2 - 0x74060000, // 0010 JMPT R1 #0012 - 0x50040001, // 0011 LDBOOL R1 0 1 - 0x50040200, // 0012 LDBOOL R1 1 0 - 0x80040200, // 0013 RET 1 R1 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 }) ) ); @@ -12703,9 +10778,9 @@ be_local_closure(class_SimpleDSLTranspiler_at_end, /* name */ /******************************************************************** -** Solidified function: process_statement +** Solidified function: process_sequence_statement ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_statement, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_statement, /* name */ be_nested_proto( 7, /* nstack */ 1, /* argc */ @@ -12715,748 +10790,140 @@ be_local_closure(class_SimpleDSLTranspiler_process_statement, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[39]) { /* constants */ + ( &(const bvalue[24]) { /* constants */ /* K0 */ be_nested_str_weak(current), /* K1 */ be_nested_str_weak(type), /* K2 */ be_nested_str_weak(add), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(next), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(strip), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(_X27strip_X27_X20directive_X20is_X20temporarily_X20disabled_X2E_X20Strip_X20configuration_X20is_X20handled_X20automatically_X2E), - /* K9 */ be_nested_str_weak(skip_statement), - /* K10 */ be_nested_str_weak(template), - /* K11 */ be_nested_str_weak(process_template), - /* K12 */ be_nested_str_weak(strip_initialized), - /* K13 */ be_nested_str_weak(generate_default_strip_initialization), - /* K14 */ be_nested_str_weak(color), - /* K15 */ be_nested_str_weak(process_color), - /* K16 */ be_nested_str_weak(palette), - /* K17 */ be_nested_str_weak(process_palette), - /* K18 */ be_nested_str_weak(animation), - /* K19 */ be_nested_str_weak(process_animation), - /* K20 */ be_nested_str_weak(set), - /* K21 */ be_nested_str_weak(process_set), - /* K22 */ be_nested_str_weak(sequence), - /* K23 */ be_nested_str_weak(process_sequence), - /* K24 */ be_nested_str_weak(run), - /* K25 */ be_nested_str_weak(process_run), - /* K26 */ be_nested_str_weak(import), - /* K27 */ be_nested_str_weak(process_import), - /* K28 */ be_nested_str_weak(on), - /* K29 */ be_nested_str_weak(process_event_handler), - /* K30 */ be_nested_str_weak(berry), - /* K31 */ be_nested_str_weak(process_berry_code_block), - /* K32 */ be_nested_str_weak(Unknown_X20keyword_X20_X27_X25s_X27_X2E), - /* K33 */ be_const_int(1), - /* K34 */ be_nested_str_weak(log), - /* K35 */ be_nested_str_weak(peek), - /* K36 */ be_nested_str_weak(process_standalone_log), - /* K37 */ be_nested_str_weak(process_property_assignment), - /* K38 */ be_nested_str_weak(Unexpected_X20token_X20_X27_X25s_X27_X2E), + /* K3 */ be_nested_str_weak(get_indent), + /* K4 */ be_nested_str_weak(value), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_const_int(0), + /* K7 */ be_nested_str_weak(play), + /* K8 */ be_nested_str_weak(process_play_statement_fluent), + /* K9 */ be_nested_str_weak(wait), + /* K10 */ be_nested_str_weak(process_wait_statement_fluent), + /* K11 */ be_const_int(1), + /* K12 */ be_nested_str_weak(log), + /* K13 */ be_nested_str_weak(process_log_statement_fluent), + /* K14 */ be_nested_str_weak(restart), + /* K15 */ be_nested_str_weak(process_restart_statement_fluent), + /* K16 */ be_nested_str_weak(repeat), + /* K17 */ be_nested_str_weak(process_repeat_statement_fluent), + /* K18 */ be_nested_str_weak(peek), + /* K19 */ be_nested_str_weak(process_sequence_assignment_fluent), + /* K20 */ be_nested_str_weak(error), + /* K21 */ be_nested_str_weak(Unknown_X20command_X20_X27_X25s_X27_X20in_X20sequence_X2E_X20Valid_X20sequence_X20commands_X20are_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments_X20_X28object_X2Eproperty_X20_X3D_X20value_X29), + /* K22 */ be_nested_str_weak(skip_statement), + /* K23 */ be_nested_str_weak(Invalid_X20statement_X20in_X20sequence_X2E_X20Expected_X3A_X20play_X2C_X20wait_X2C_X20repeat_X2C_X20restart_X2C_X20log_X2C_X20or_X20property_X20assignments), }), - be_str_weak(process_statement), + be_str_weak(process_sequence_statement), &be_const_str_solidified, - ( &(const binstruction[149]) { /* code */ + ( &(const binstruction[105]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 0x4C080000, // 0002 LDNIL R2 0x1C080202, // 0003 EQ R2 R1 R2 - 0x740A0003, // 0004 JMPT R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E0025, // 0006 LDINT R3 38 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x780A0000, // 0008 JMPF R2 #000A - 0x80000400, // 0009 RET 0 - 0x88080301, // 000A GETMBR R2 R1 K1 - 0x540E0024, // 000B LDINT R3 37 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x780A0005, // 000D JMPF R2 #0014 - 0x8C080102, // 000E GETMET R2 R0 K2 - 0x88100303, // 000F GETMBR R4 R1 K3 - 0x7C080400, // 0010 CALL R2 2 - 0x8C080104, // 0011 GETMET R2 R0 K4 - 0x7C080200, // 0012 CALL R2 1 - 0x80000400, // 0013 RET 0 - 0x88080301, // 0014 GETMBR R2 R1 K1 - 0x540E0022, // 0015 LDINT R3 35 - 0x1C080403, // 0016 EQ R2 R2 R3 - 0x780A0002, // 0017 JMPF R2 #001B - 0x8C080104, // 0018 GETMET R2 R0 K4 - 0x7C080200, // 0019 CALL R2 1 - 0x80000400, // 001A RET 0 - 0x88080301, // 001B GETMBR R2 R1 K1 - 0x1C080505, // 001C EQ R2 R2 K5 - 0x780A0052, // 001D JMPF R2 #0071 - 0x88080303, // 001E GETMBR R2 R1 K3 - 0x1C080506, // 001F EQ R2 R2 K6 - 0x780A0006, // 0020 JMPF R2 #0028 - 0x8C080107, // 0021 GETMET R2 R0 K7 - 0x58100008, // 0022 LDCONST R4 K8 - 0x7C080400, // 0023 CALL R2 2 - 0x8C080109, // 0024 GETMET R2 R0 K9 - 0x7C080200, // 0025 CALL R2 1 - 0x80000400, // 0026 RET 0 - 0x70020047, // 0027 JMP #0070 - 0x88080303, // 0028 GETMBR R2 R1 K3 - 0x1C08050A, // 0029 EQ R2 R2 K10 - 0x780A0002, // 002A JMPF R2 #002E - 0x8C08010B, // 002B GETMET R2 R0 K11 - 0x7C080200, // 002C CALL R2 1 - 0x70020041, // 002D JMP #0070 - 0x8808010C, // 002E GETMBR R2 R0 K12 - 0x740A0001, // 002F JMPT R2 #0032 - 0x8C08010D, // 0030 GETMET R2 R0 K13 - 0x7C080200, // 0031 CALL R2 1 - 0x88080303, // 0032 GETMBR R2 R1 K3 - 0x1C08050E, // 0033 EQ R2 R2 K14 - 0x780A0002, // 0034 JMPF R2 #0038 - 0x8C08010F, // 0035 GETMET R2 R0 K15 - 0x7C080200, // 0036 CALL R2 1 - 0x70020037, // 0037 JMP #0070 - 0x88080303, // 0038 GETMBR R2 R1 K3 - 0x1C080510, // 0039 EQ R2 R2 K16 + 0x780A0000, // 0004 JMPF R2 #0006 + 0x80000400, // 0005 RET 0 + 0x88080301, // 0006 GETMBR R2 R1 K1 + 0x540E0024, // 0007 LDINT R3 37 + 0x1C080403, // 0008 EQ R2 R2 R3 + 0x780A0008, // 0009 JMPF R2 #0013 + 0x8C080102, // 000A GETMET R2 R0 K2 + 0x8C100103, // 000B GETMET R4 R0 K3 + 0x7C100200, // 000C CALL R4 1 + 0x88140304, // 000D GETMBR R5 R1 K4 + 0x00100805, // 000E ADD R4 R4 R5 + 0x7C080400, // 000F CALL R2 2 + 0x8C080105, // 0010 GETMET R2 R0 K5 + 0x7C080200, // 0011 CALL R2 1 + 0x80000400, // 0012 RET 0 + 0x88080301, // 0013 GETMBR R2 R1 K1 + 0x540E0022, // 0014 LDINT R3 35 + 0x1C080403, // 0015 EQ R2 R2 R3 + 0x780A0002, // 0016 JMPF R2 #001A + 0x8C080105, // 0017 GETMET R2 R0 K5 + 0x7C080200, // 0018 CALL R2 1 + 0x80000400, // 0019 RET 0 + 0x88080301, // 001A GETMBR R2 R1 K1 + 0x1C080506, // 001B EQ R2 R2 K6 + 0x780A0005, // 001C JMPF R2 #0023 + 0x88080304, // 001D GETMBR R2 R1 K4 + 0x1C080507, // 001E EQ R2 R2 K7 + 0x780A0002, // 001F JMPF R2 #0023 + 0x8C080108, // 0020 GETMET R2 R0 K8 + 0x7C080200, // 0021 CALL R2 1 + 0x70020044, // 0022 JMP #0068 + 0x88080301, // 0023 GETMBR R2 R1 K1 + 0x1C080506, // 0024 EQ R2 R2 K6 + 0x780A0005, // 0025 JMPF R2 #002C + 0x88080304, // 0026 GETMBR R2 R1 K4 + 0x1C080509, // 0027 EQ R2 R2 K9 + 0x780A0002, // 0028 JMPF R2 #002C + 0x8C08010A, // 0029 GETMET R2 R0 K10 + 0x7C080200, // 002A CALL R2 1 + 0x7002003B, // 002B JMP #0068 + 0x88080301, // 002C GETMBR R2 R1 K1 + 0x1C08050B, // 002D EQ R2 R2 K11 + 0x780A0005, // 002E JMPF R2 #0035 + 0x88080304, // 002F GETMBR R2 R1 K4 + 0x1C08050C, // 0030 EQ R2 R2 K12 + 0x780A0002, // 0031 JMPF R2 #0035 + 0x8C08010D, // 0032 GETMET R2 R0 K13 + 0x7C080200, // 0033 CALL R2 1 + 0x70020032, // 0034 JMP #0068 + 0x88080301, // 0035 GETMBR R2 R1 K1 + 0x1C080506, // 0036 EQ R2 R2 K6 + 0x780A0005, // 0037 JMPF R2 #003E + 0x88080304, // 0038 GETMBR R2 R1 K4 + 0x1C08050E, // 0039 EQ R2 R2 K14 0x780A0002, // 003A JMPF R2 #003E - 0x8C080111, // 003B GETMET R2 R0 K17 + 0x8C08010F, // 003B GETMET R2 R0 K15 0x7C080200, // 003C CALL R2 1 - 0x70020031, // 003D JMP #0070 - 0x88080303, // 003E GETMBR R2 R1 K3 - 0x1C080512, // 003F EQ R2 R2 K18 - 0x780A0002, // 0040 JMPF R2 #0044 - 0x8C080113, // 0041 GETMET R2 R0 K19 - 0x7C080200, // 0042 CALL R2 1 - 0x7002002B, // 0043 JMP #0070 - 0x88080303, // 0044 GETMBR R2 R1 K3 - 0x1C080514, // 0045 EQ R2 R2 K20 - 0x780A0002, // 0046 JMPF R2 #004A - 0x8C080115, // 0047 GETMET R2 R0 K21 - 0x7C080200, // 0048 CALL R2 1 - 0x70020025, // 0049 JMP #0070 - 0x88080303, // 004A GETMBR R2 R1 K3 - 0x1C080516, // 004B EQ R2 R2 K22 - 0x780A0002, // 004C JMPF R2 #0050 - 0x8C080117, // 004D GETMET R2 R0 K23 - 0x7C080200, // 004E CALL R2 1 - 0x7002001F, // 004F JMP #0070 - 0x88080303, // 0050 GETMBR R2 R1 K3 - 0x1C080518, // 0051 EQ R2 R2 K24 - 0x780A0002, // 0052 JMPF R2 #0056 - 0x8C080119, // 0053 GETMET R2 R0 K25 - 0x7C080200, // 0054 CALL R2 1 - 0x70020019, // 0055 JMP #0070 - 0x88080303, // 0056 GETMBR R2 R1 K3 - 0x1C08051A, // 0057 EQ R2 R2 K26 - 0x780A0002, // 0058 JMPF R2 #005C - 0x8C08011B, // 0059 GETMET R2 R0 K27 - 0x7C080200, // 005A CALL R2 1 - 0x70020013, // 005B JMP #0070 - 0x88080303, // 005C GETMBR R2 R1 K3 - 0x1C08051C, // 005D EQ R2 R2 K28 - 0x780A0002, // 005E JMPF R2 #0062 - 0x8C08011D, // 005F GETMET R2 R0 K29 - 0x7C080200, // 0060 CALL R2 1 - 0x7002000D, // 0061 JMP #0070 - 0x88080303, // 0062 GETMBR R2 R1 K3 - 0x1C08051E, // 0063 EQ R2 R2 K30 - 0x780A0002, // 0064 JMPF R2 #0068 - 0x8C08011F, // 0065 GETMET R2 R0 K31 - 0x7C080200, // 0066 CALL R2 1 - 0x70020007, // 0067 JMP #0070 - 0x8C080107, // 0068 GETMET R2 R0 K7 - 0x60100018, // 0069 GETGBL R4 G24 - 0x58140020, // 006A LDCONST R5 K32 - 0x88180303, // 006B GETMBR R6 R1 K3 - 0x7C100400, // 006C CALL R4 2 - 0x7C080400, // 006D CALL R2 2 - 0x8C080109, // 006E GETMET R2 R0 K9 - 0x7C080200, // 006F CALL R2 1 - 0x70020022, // 0070 JMP #0094 - 0x88080301, // 0071 GETMBR R2 R1 K1 - 0x1C080521, // 0072 EQ R2 R2 K33 - 0x780A0017, // 0073 JMPF R2 #008C - 0x8808010C, // 0074 GETMBR R2 R0 K12 - 0x740A0001, // 0075 JMPT R2 #0078 - 0x8C08010D, // 0076 GETMET R2 R0 K13 - 0x7C080200, // 0077 CALL R2 1 - 0x88080303, // 0078 GETMBR R2 R1 K3 - 0x1C080522, // 0079 EQ R2 R2 K34 - 0x780A000D, // 007A JMPF R2 #0089 - 0x8C080123, // 007B GETMET R2 R0 K35 - 0x7C080200, // 007C CALL R2 1 - 0x4C0C0000, // 007D LDNIL R3 - 0x20080403, // 007E NE R2 R2 R3 - 0x780A0008, // 007F JMPF R2 #0089 - 0x8C080123, // 0080 GETMET R2 R0 K35 - 0x7C080200, // 0081 CALL R2 1 - 0x88080501, // 0082 GETMBR R2 R2 K1 - 0x540E0017, // 0083 LDINT R3 24 - 0x1C080403, // 0084 EQ R2 R2 R3 - 0x780A0002, // 0085 JMPF R2 #0089 - 0x8C080124, // 0086 GETMET R2 R0 K36 - 0x7C080200, // 0087 CALL R2 1 - 0x70020001, // 0088 JMP #008B - 0x8C080125, // 0089 GETMET R2 R0 K37 - 0x7C080200, // 008A CALL R2 1 - 0x70020007, // 008B JMP #0094 - 0x8C080107, // 008C GETMET R2 R0 K7 - 0x60100018, // 008D GETGBL R4 G24 - 0x58140026, // 008E LDCONST R5 K38 - 0x88180303, // 008F GETMBR R6 R1 K3 - 0x7C100400, // 0090 CALL R4 2 - 0x7C080400, // 0091 CALL R2 2 - 0x8C080109, // 0092 GETMET R2 R0 K9 - 0x7C080200, // 0093 CALL R2 1 - 0x80000000, // 0094 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_property_assignment -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* name */ - be_nested_proto( - 14, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[31]) { /* constants */ - /* K0 */ be_nested_str_weak(expect_identifier), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(log), - /* K4 */ be_nested_str_weak(process_function_arguments), - /* K5 */ be_nested_str_weak(collect_inline_comment), - /* K6 */ be_nested_str_weak(process_log_call), - /* K7 */ be_nested_str_weak(standalone), - /* K8 */ be_nested_str_weak(add), - /* K9 */ be_nested_str_weak(symbol_table), - /* K10 */ be_nested_str_weak(get), - /* K11 */ be_nested_str_weak(), - /* K12 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K13 */ be_nested_str_weak(engine), - /* K14 */ be_nested_str_weak(_X25s_template_X28_X25s_X29_X25s), - /* K15 */ be_nested_str_weak(has_template_calls), - /* K16 */ be_nested_str_weak(error), - /* K17 */ be_nested_str_weak(Standalone_X20function_X20calls_X20are_X20only_X20supported_X20for_X20templates_X2E_X20_X27_X25s_X27_X20is_X20not_X20a_X20template_X2E), - /* K18 */ be_nested_str_weak(skip_statement), - /* K19 */ be_nested_str_weak(next), - /* K20 */ be_nested_str_weak(contains), - /* K21 */ be_nested_str_weak(instance), - /* K22 */ be_nested_str_weak(_validate_single_parameter), - /* K23 */ 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), - /* K24 */ be_nested_str_weak(expect_assign), - /* K25 */ be_nested_str_weak(process_value), - /* K26 */ be_nested_str_weak(CONTEXT_PROPERTY), - /* K27 */ be_nested_str_weak(get_reference), - /* K28 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), - /* K29 */ be_nested_str_weak(expr), - /* K30 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), - }), - be_str_weak(process_property_assignment), - &be_const_str_solidified, - ( &(const binstruction[156]) { /* 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 - 0x780A0041, // 0006 JMPF R2 #0049 - 0x8C080101, // 0007 GETMET R2 R0 K1 - 0x7C080200, // 0008 CALL R2 1 - 0x88080502, // 0009 GETMBR R2 R2 K2 - 0x540E0017, // 000A LDINT R3 24 - 0x1C080403, // 000B EQ R2 R2 R3 - 0x780A003B, // 000C JMPF R2 #0049 - 0x1C080303, // 000D EQ R2 R1 K3 - 0x780A000D, // 000E JMPF R2 #001D - 0x8C080104, // 000F GETMET R2 R0 K4 - 0x50100000, // 0010 LDBOOL R4 0 0 - 0x7C080400, // 0011 CALL R2 2 - 0x8C0C0105, // 0012 GETMET R3 R0 K5 - 0x7C0C0200, // 0013 CALL R3 1 - 0x8C100106, // 0014 GETMET R4 R0 K6 - 0x5C180400, // 0015 MOVE R6 R2 - 0x581C0007, // 0016 LDCONST R7 K7 - 0x5C200600, // 0017 MOVE R8 R3 - 0x7C100800, // 0018 CALL R4 4 - 0x8C140108, // 0019 GETMET R5 R0 K8 - 0x5C1C0800, // 001A MOVE R7 R4 - 0x7C140400, // 001B CALL R5 2 - 0x80000A00, // 001C RET 0 - 0x88080109, // 001D GETMBR R2 R0 K9 - 0x8C08050A, // 001E GETMET R2 R2 K10 - 0x5C100200, // 001F MOVE R4 R1 - 0x7C080400, // 0020 CALL R2 2 - 0x4C0C0000, // 0021 LDNIL R3 - 0x200C0403, // 0022 NE R3 R2 R3 - 0x780E001B, // 0023 JMPF R3 #0040 - 0x880C0502, // 0024 GETMBR R3 R2 K2 - 0x5412000D, // 0025 LDINT R4 14 - 0x1C0C0604, // 0026 EQ R3 R3 R4 - 0x780E0017, // 0027 JMPF R3 #0040 - 0x8C0C0104, // 0028 GETMET R3 R0 K4 - 0x50140000, // 0029 LDBOOL R5 0 0 - 0x7C0C0400, // 002A CALL R3 2 - 0x2010070B, // 002B NE R4 R3 K11 - 0x78120004, // 002C JMPF R4 #0032 - 0x60100018, // 002D GETGBL R4 G24 - 0x5814000C, // 002E LDCONST R5 K12 - 0x5C180600, // 002F MOVE R6 R3 - 0x7C100400, // 0030 CALL R4 2 - 0x70020000, // 0031 JMP #0033 - 0x5810000D, // 0032 LDCONST R4 K13 - 0x8C140105, // 0033 GETMET R5 R0 K5 - 0x7C140200, // 0034 CALL R5 1 - 0x8C180108, // 0035 GETMET R6 R0 K8 - 0x60200018, // 0036 GETGBL R8 G24 - 0x5824000E, // 0037 LDCONST R9 K14 - 0x5C280200, // 0038 MOVE R10 R1 - 0x5C2C0800, // 0039 MOVE R11 R4 - 0x5C300A00, // 003A MOVE R12 R5 - 0x7C200800, // 003B CALL R8 4 - 0x7C180400, // 003C CALL R6 2 - 0x50180200, // 003D LDBOOL R6 1 0 - 0x90021E06, // 003E SETMBR R0 K15 R6 - 0x70020007, // 003F JMP #0048 - 0x8C0C0110, // 0040 GETMET R3 R0 K16 - 0x60140018, // 0041 GETGBL R5 G24 - 0x58180011, // 0042 LDCONST R6 K17 - 0x5C1C0200, // 0043 MOVE R7 R1 - 0x7C140400, // 0044 CALL R5 2 - 0x7C0C0400, // 0045 CALL R3 2 - 0x8C0C0112, // 0046 GETMET R3 R0 K18 - 0x7C0C0200, // 0047 CALL R3 1 - 0x80000600, // 0048 RET 0 - 0x8C080101, // 0049 GETMET R2 R0 K1 - 0x7C080200, // 004A CALL R2 1 - 0x4C0C0000, // 004B LDNIL R3 - 0x20080403, // 004C NE R2 R2 R3 - 0x780A0044, // 004D JMPF R2 #0093 - 0x8C080101, // 004E GETMET R2 R0 K1 - 0x7C080200, // 004F CALL R2 1 - 0x88080502, // 0050 GETMBR R2 R2 K2 - 0x540E0020, // 0051 LDINT R3 33 - 0x1C080403, // 0052 EQ R2 R2 R3 - 0x780A003E, // 0053 JMPF R2 #0093 - 0x8C080113, // 0054 GETMET R2 R0 K19 - 0x7C080200, // 0055 CALL R2 1 - 0x8C080100, // 0056 GETMET R2 R0 K0 - 0x7C080200, // 0057 CALL R2 1 - 0x880C0109, // 0058 GETMBR R3 R0 K9 - 0x8C0C0714, // 0059 GETMET R3 R3 K20 - 0x5C140200, // 005A MOVE R5 R1 - 0x7C0C0400, // 005B CALL R3 2 - 0x780E0020, // 005C JMPF R3 #007E - 0x880C0109, // 005D GETMBR R3 R0 K9 - 0x8C0C070A, // 005E GETMET R3 R3 K10 - 0x5C140200, // 005F MOVE R5 R1 - 0x7C0C0400, // 0060 CALL R3 2 - 0x4C100000, // 0061 LDNIL R4 - 0x20100604, // 0062 NE R4 R3 R4 - 0x7812000C, // 0063 JMPF R4 #0071 - 0x88100715, // 0064 GETMBR R4 R3 K21 - 0x4C140000, // 0065 LDNIL R5 - 0x20100805, // 0066 NE R4 R4 R5 - 0x78120008, // 0067 JMPF R4 #0071 - 0x60100005, // 0068 GETGBL R4 G5 - 0x88140715, // 0069 GETMBR R5 R3 K21 - 0x7C100200, // 006A CALL R4 1 - 0x8C140116, // 006B GETMET R5 R0 K22 - 0x5C1C0800, // 006C MOVE R7 R4 - 0x5C200400, // 006D MOVE R8 R2 - 0x88240715, // 006E GETMBR R9 R3 K21 - 0x7C140800, // 006F CALL R5 4 - 0x7002000C, // 0070 JMP #007E - 0x4C100000, // 0071 LDNIL R4 - 0x20100604, // 0072 NE R4 R3 R4 - 0x78120009, // 0073 JMPF R4 #007E - 0x88100702, // 0074 GETMBR R4 R3 K2 - 0x5416000C, // 0075 LDINT R5 13 - 0x1C100805, // 0076 EQ R4 R4 R5 - 0x78120005, // 0077 JMPF R4 #007E - 0x8C100110, // 0078 GETMET R4 R0 K16 - 0x60180018, // 0079 GETGBL R6 G24 - 0x581C0017, // 007A LDCONST R7 K23 - 0x5C200200, // 007B MOVE R8 R1 - 0x7C180400, // 007C CALL R6 2 - 0x7C100400, // 007D CALL R4 2 - 0x8C0C0118, // 007E GETMET R3 R0 K24 - 0x7C0C0200, // 007F CALL R3 1 - 0x8C0C0119, // 0080 GETMET R3 R0 K25 - 0x8814011A, // 0081 GETMBR R5 R0 K26 - 0x7C0C0400, // 0082 CALL R3 2 - 0x8C100105, // 0083 GETMET R4 R0 K5 - 0x7C100200, // 0084 CALL R4 1 - 0x88140109, // 0085 GETMBR R5 R0 K9 - 0x8C140B1B, // 0086 GETMET R5 R5 K27 - 0x5C1C0200, // 0087 MOVE R7 R1 - 0x7C140400, // 0088 CALL R5 2 - 0x8C180108, // 0089 GETMET R6 R0 K8 - 0x60200018, // 008A GETGBL R8 G24 - 0x5824001C, // 008B LDCONST R9 K28 - 0x5C280A00, // 008C MOVE R10 R5 - 0x5C2C0400, // 008D MOVE R11 R2 - 0x8830071D, // 008E GETMBR R12 R3 K29 - 0x5C340800, // 008F MOVE R13 R4 - 0x7C200A00, // 0090 CALL R8 5 - 0x7C180400, // 0091 CALL R6 2 - 0x70020007, // 0092 JMP #009B - 0x8C080110, // 0093 GETMET R2 R0 K16 - 0x60100018, // 0094 GETGBL R4 G24 - 0x5814001E, // 0095 LDCONST R5 K30 - 0x5C180200, // 0096 MOVE R6 R1 - 0x7C100400, // 0097 CALL R4 2 - 0x7C080400, // 0098 CALL R2 2 - 0x8C080112, // 0099 GETMET R2 R0 K18 - 0x7C080200, // 009A CALL R2 1 - 0x80000000, // 009B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_repeat_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[24]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(1), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(forever), - /* K7 */ be_nested_str_weak(_X2D1), - /* K8 */ be_nested_str_weak(process_value), - /* K9 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), - /* K10 */ be_nested_str_weak(expect_keyword), - /* K11 */ be_nested_str_weak(times), - /* K12 */ be_nested_str_weak(expr), - /* K13 */ be_nested_str_weak(expect_left_brace), - /* K14 */ be_nested_str_weak(add), - /* K15 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), - /* K16 */ be_nested_str_weak(get_indent), - /* K17 */ be_nested_str_weak(indent_level), - /* K18 */ be_const_int(1), - /* K19 */ be_nested_str_weak(at_end), - /* K20 */ be_nested_str_weak(check_right_brace), - /* K21 */ be_nested_str_weak(process_sequence_statement), - /* K22 */ be_nested_str_weak(expect_right_brace), - /* K23 */ be_nested_str_weak(_X25s_X29), - }), - be_str_weak(process_repeat_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[60]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x58040001, // 0002 LDCONST R1 K1 - 0x8C080102, // 0003 GETMET R2 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x4C0C0000, // 0005 LDNIL R3 - 0x200C0403, // 0006 NE R3 R2 R3 - 0x780E0009, // 0007 JMPF R3 #0012 - 0x880C0503, // 0008 GETMBR R3 R2 K3 - 0x1C0C0704, // 0009 EQ R3 R3 K4 - 0x780E0006, // 000A JMPF R3 #0012 - 0x880C0505, // 000B GETMBR R3 R2 K5 - 0x1C0C0706, // 000C EQ R3 R3 K6 - 0x780E0003, // 000D JMPF R3 #0012 - 0x8C0C0100, // 000E GETMET R3 R0 K0 - 0x7C0C0200, // 000F CALL R3 1 - 0x58040007, // 0010 LDCONST R1 K7 - 0x70020006, // 0011 JMP #0019 - 0x8C0C0108, // 0012 GETMET R3 R0 K8 - 0x88140109, // 0013 GETMBR R5 R0 K9 - 0x7C0C0400, // 0014 CALL R3 2 - 0x8C10010A, // 0015 GETMET R4 R0 K10 - 0x5818000B, // 0016 LDCONST R6 K11 - 0x7C100400, // 0017 CALL R4 2 - 0x8804070C, // 0018 GETMBR R1 R3 K12 - 0x8C0C010D, // 0019 GETMET R3 R0 K13 - 0x7C0C0200, // 001A CALL R3 1 - 0x8C0C010E, // 001B GETMET R3 R0 K14 - 0x60140018, // 001C GETGBL R5 G24 - 0x5818000F, // 001D LDCONST R6 K15 - 0x8C1C0110, // 001E GETMET R7 R0 K16 - 0x7C1C0200, // 001F CALL R7 1 - 0x5C200200, // 0020 MOVE R8 R1 - 0x7C140600, // 0021 CALL R5 3 - 0x7C0C0400, // 0022 CALL R3 2 - 0x880C0111, // 0023 GETMBR R3 R0 K17 - 0x000C0712, // 0024 ADD R3 R3 K18 - 0x90022203, // 0025 SETMBR R0 K17 R3 - 0x8C0C0113, // 0026 GETMET R3 R0 K19 - 0x7C0C0200, // 0027 CALL R3 1 - 0x740E0005, // 0028 JMPT R3 #002F - 0x8C0C0114, // 0029 GETMET R3 R0 K20 - 0x7C0C0200, // 002A CALL R3 1 - 0x740E0002, // 002B JMPT R3 #002F - 0x8C0C0115, // 002C GETMET R3 R0 K21 - 0x7C0C0200, // 002D CALL R3 1 - 0x7001FFF6, // 002E JMP #0026 - 0x8C0C0116, // 002F GETMET R3 R0 K22 - 0x7C0C0200, // 0030 CALL R3 1 - 0x8C0C010E, // 0031 GETMET R3 R0 K14 - 0x60140018, // 0032 GETGBL R5 G24 - 0x58180017, // 0033 LDCONST R6 K23 - 0x8C1C0110, // 0034 GETMET R7 R0 K16 - 0x7C1C0200, // 0035 CALL R7 1 - 0x7C140400, // 0036 CALL R5 2 - 0x7C0C0400, // 0037 CALL R3 2 - 0x880C0111, // 0038 GETMBR R3 R0 K17 - 0x040C0712, // 0039 SUB R3 R3 K18 - 0x90022203, // 003A SETMBR R0 K17 R3 - 0x80000000, // 003B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_nested_function_call -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 1]) { - be_nested_proto( - 10, /* nstack */ - 3, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 4), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(push), - /* K1 */ be_nested_str_weak(_X20_X20provider_X2E_X25s_X20_X3D_X20_X25s_X25s), - }), - be_str_weak(_anonymous_), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x680C0000, // 0000 GETUPV R3 U0 - 0x8C0C0700, // 0001 GETMET R3 R3 K0 - 0x60140018, // 0002 GETGBL R5 G24 - 0x58180001, // 0003 LDCONST R6 K1 - 0x5C1C0000, // 0004 MOVE R7 R0 - 0x5C200200, // 0005 MOVE R8 R1 - 0x5C240400, // 0006 MOVE R9 R2 - 0x7C140800, // 0007 CALL R5 4 - 0x7C0C0400, // 0008 CALL R3 2 - 0x80000000, // 0009 RET 0 - }) - ), - }), - 1, /* has constants */ - ( &(const bvalue[32]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_const_int(1), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(value), - /* K6 */ be_nested_str_weak(next), - /* K7 */ be_nested_str_weak(error), - /* K8 */ be_nested_str_weak(Expected_X20function_X20name), - /* K9 */ be_nested_str_weak(nil), - /* K10 */ be_nested_str_weak(symbol_table), - /* K11 */ be_nested_str_weak(get), - /* K12 */ be_nested_str_weak(process_function_arguments), - /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), - /* K14 */ be_nested_str_weak(get_reference), - /* K15 */ be_nested_str_weak(log), - /* K16 */ be_nested_str_weak(process_log_call), - /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), - /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), - /* K19 */ be_nested_str_weak(engine), - /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), - /* K21 */ be_nested_str_weak(_validate_animation_factory_exists), - /* K22 */ be_nested_str_weak(Animation_X20factory_X20function_X20_X27_X25s_X27_X20does_X20not_X20exist_X2E_X20Check_X20the_X20function_X20name_X20and_X20ensure_X20it_X27s_X20available_X20in_X20the_X20animation_X20module_X2E), - /* K23 */ be_nested_str_weak(skip_function_arguments), - /* K24 */ be_nested_str_weak(expect_left_paren), - /* K25 */ be_nested_str_weak(_process_parameters_core), - /* K26 */ be_nested_str_weak(generic), - /* K27 */ be_nested_str_weak(expect_right_paren), - /* K28 */ be_nested_str_weak(_X0A), - /* K29 */ be_nested_str_weak(stop_iteration), - /* K30 */ be_nested_str_weak(_X28def_X20_X28engine_X29_X0A_X20_X20var_X20provider_X20_X3D_X20animation_X2E_X25s_X28engine_X29_X0A_X25s_X0A_X20_X20return_X20provider_X0Aend_X29_X28engine_X29), - /* K31 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), - }), - be_str_weak(process_nested_function_call), - &be_const_str_solidified, - ( &(const binstruction[143]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x58080001, // 0002 LDCONST R2 K1 - 0x4C0C0000, // 0003 LDNIL R3 - 0x200C0203, // 0004 NE R3 R1 R3 - 0x780E0009, // 0005 JMPF R3 #0010 - 0x880C0302, // 0006 GETMBR R3 R1 K2 - 0x1C0C0703, // 0007 EQ R3 R3 K3 - 0x740E0002, // 0008 JMPT R3 #000C - 0x880C0302, // 0009 GETMBR R3 R1 K2 - 0x1C0C0704, // 000A EQ R3 R3 K4 - 0x780E0003, // 000B JMPF R3 #0010 - 0x88080305, // 000C GETMBR R2 R1 K5 - 0x8C0C0106, // 000D GETMET R3 R0 K6 - 0x7C0C0200, // 000E CALL R3 1 - 0x70020003, // 000F JMP #0014 - 0x8C0C0107, // 0010 GETMET R3 R0 K7 - 0x58140008, // 0011 LDCONST R5 K8 - 0x7C0C0400, // 0012 CALL R3 2 - 0x80061200, // 0013 RET 1 K9 - 0x880C010A, // 0014 GETMBR R3 R0 K10 - 0x8C0C070B, // 0015 GETMET R3 R3 K11 - 0x5C140400, // 0016 MOVE R5 R2 - 0x7C0C0400, // 0017 CALL R3 2 - 0x4C100000, // 0018 LDNIL R4 - 0x20100604, // 0019 NE R4 R3 R4 - 0x7812000D, // 001A JMPF R4 #0029 - 0x88100702, // 001B GETMBR R4 R3 K2 - 0x54160003, // 001C LDINT R5 4 - 0x1C100805, // 001D EQ R4 R4 R5 - 0x78120009, // 001E JMPF R4 #0029 - 0x8C10010C, // 001F GETMET R4 R0 K12 - 0x50180200, // 0020 LDBOOL R6 1 0 - 0x7C100400, // 0021 CALL R4 2 - 0x60140018, // 0022 GETGBL R5 G24 - 0x5818000D, // 0023 LDCONST R6 K13 - 0x8C1C070E, // 0024 GETMET R7 R3 K14 - 0x7C1C0200, // 0025 CALL R7 1 - 0x5C200800, // 0026 MOVE R8 R4 - 0x7C140600, // 0027 CALL R5 3 - 0x80040A00, // 0028 RET 1 R5 - 0x1C10050F, // 0029 EQ R4 R2 K15 - 0x78120008, // 002A JMPF R4 #0034 - 0x8C10010C, // 002B GETMET R4 R0 K12 - 0x50180200, // 002C LDBOOL R6 1 0 - 0x7C100400, // 002D CALL R4 2 - 0x8C140110, // 002E GETMET R5 R0 K16 - 0x5C1C0800, // 002F MOVE R7 R4 - 0x88200111, // 0030 GETMBR R8 R0 K17 - 0x58240001, // 0031 LDCONST R9 K1 - 0x7C140800, // 0032 CALL R5 4 - 0x80040A00, // 0033 RET 1 R5 - 0x4C100000, // 0034 LDNIL R4 - 0x20100604, // 0035 NE R4 R3 R4 - 0x78120015, // 0036 JMPF R4 #004D - 0x88100702, // 0037 GETMBR R4 R3 K2 - 0x5416000D, // 0038 LDINT R5 14 - 0x1C100805, // 0039 EQ R4 R4 R5 - 0x78120011, // 003A JMPF R4 #004D - 0x8C10010C, // 003B GETMET R4 R0 K12 - 0x50180200, // 003C LDBOOL R6 1 0 - 0x7C100400, // 003D CALL R4 2 - 0x20140901, // 003E NE R5 R4 K1 - 0x78160004, // 003F JMPF R5 #0045 - 0x60140018, // 0040 GETGBL R5 G24 - 0x58180012, // 0041 LDCONST R6 K18 - 0x5C1C0800, // 0042 MOVE R7 R4 - 0x7C140400, // 0043 CALL R5 2 - 0x70020000, // 0044 JMP #0046 - 0x58140013, // 0045 LDCONST R5 K19 - 0x60180018, // 0046 GETGBL R6 G24 - 0x581C0014, // 0047 LDCONST R7 K20 - 0x5C200400, // 0048 MOVE R8 R2 - 0x5C240A00, // 0049 MOVE R9 R5 - 0x7C180600, // 004A CALL R6 3 - 0x80040C00, // 004B RET 1 R6 - 0x70020040, // 004C JMP #008E - 0x8C100115, // 004D GETMET R4 R0 K21 - 0x5C180400, // 004E MOVE R6 R2 - 0x7C100400, // 004F CALL R4 2 - 0x74120008, // 0050 JMPT R4 #005A - 0x8C100107, // 0051 GETMET R4 R0 K7 - 0x60180018, // 0052 GETGBL R6 G24 - 0x581C0016, // 0053 LDCONST R7 K22 - 0x5C200400, // 0054 MOVE R8 R2 - 0x7C180400, // 0055 CALL R6 2 - 0x7C100400, // 0056 CALL R4 2 - 0x8C100117, // 0057 GETMET R4 R0 K23 - 0x7C100200, // 0058 CALL R4 1 - 0x80061200, // 0059 RET 1 K9 - 0x8C100118, // 005A GETMET R4 R0 K24 - 0x7C100200, // 005B CALL R4 1 - 0x60100012, // 005C GETGBL R4 G18 - 0x7C100000, // 005D CALL R4 0 - 0x84140000, // 005E CLOSURE R5 P0 - 0x8C180119, // 005F GETMET R6 R0 K25 - 0x5C200400, // 0060 MOVE R8 R2 - 0x5824001A, // 0061 LDCONST R9 K26 - 0x5C280A00, // 0062 MOVE R10 R5 - 0x7C180800, // 0063 CALL R6 4 - 0x8C18011B, // 0064 GETMET R6 R0 K27 - 0x7C180200, // 0065 CALL R6 1 - 0x6018000C, // 0066 GETGBL R6 G12 - 0x5C1C0800, // 0067 MOVE R7 R4 - 0x7C180200, // 0068 CALL R6 1 - 0x24180D04, // 0069 GT R6 R6 K4 - 0x781A001B, // 006A JMPF R6 #0087 - 0x58180001, // 006B LDCONST R6 K1 - 0x601C0010, // 006C GETGBL R7 G16 - 0x6020000C, // 006D GETGBL R8 G12 - 0x5C240800, // 006E MOVE R9 R4 - 0x7C200200, // 006F CALL R8 1 - 0x04201103, // 0070 SUB R8 R8 K3 - 0x40220808, // 0071 CONNECT R8 K4 R8 - 0x7C1C0200, // 0072 CALL R7 1 - 0xA8020007, // 0073 EXBLK 0 #007C - 0x5C200E00, // 0074 MOVE R8 R7 - 0x7C200000, // 0075 CALL R8 0 - 0x24241104, // 0076 GT R9 R8 K4 - 0x78260000, // 0077 JMPF R9 #0079 - 0x00180D1C, // 0078 ADD R6 R6 K28 - 0x94240808, // 0079 GETIDX R9 R4 R8 - 0x00180C09, // 007A ADD R6 R6 R9 - 0x7001FFF7, // 007B JMP #0074 - 0x581C001D, // 007C LDCONST R7 K29 - 0xAC1C0200, // 007D CATCH R7 1 0 - 0xB0080000, // 007E RAISE 2 R0 R0 - 0x601C0018, // 007F GETGBL R7 G24 - 0x5820001E, // 0080 LDCONST R8 K30 - 0x5C240400, // 0081 MOVE R9 R2 - 0x5C280C00, // 0082 MOVE R10 R6 - 0x7C1C0600, // 0083 CALL R7 3 - 0xA0000000, // 0084 CLOSE R0 - 0x80040E00, // 0085 RET 1 R7 - 0x70020005, // 0086 JMP #008D - 0x60180018, // 0087 GETGBL R6 G24 - 0x581C001F, // 0088 LDCONST R7 K31 - 0x5C200400, // 0089 MOVE R8 R2 - 0x7C180400, // 008A CALL R6 2 - 0xA0000000, // 008B CLOSE R0 - 0x80040C00, // 008C RET 1 R6 - 0xA0100000, // 008D CLOSE R4 - 0x80000000, // 008E RET 0 + 0x70020029, // 003D JMP #0068 + 0x88080301, // 003E GETMBR R2 R1 K1 + 0x1C080506, // 003F EQ R2 R2 K6 + 0x780A0005, // 0040 JMPF R2 #0047 + 0x88080304, // 0041 GETMBR R2 R1 K4 + 0x1C080510, // 0042 EQ R2 R2 K16 + 0x780A0002, // 0043 JMPF R2 #0047 + 0x8C080111, // 0044 GETMET R2 R0 K17 + 0x7C080200, // 0045 CALL R2 1 + 0x70020020, // 0046 JMP #0068 + 0x88080301, // 0047 GETMBR R2 R1 K1 + 0x1C08050B, // 0048 EQ R2 R2 K11 + 0x780A0016, // 0049 JMPF R2 #0061 + 0x8C080112, // 004A GETMET R2 R0 K18 + 0x7C080200, // 004B CALL R2 1 + 0x4C0C0000, // 004C LDNIL R3 + 0x20080403, // 004D NE R2 R2 R3 + 0x780A0008, // 004E JMPF R2 #0058 + 0x8C080112, // 004F GETMET R2 R0 K18 + 0x7C080200, // 0050 CALL R2 1 + 0x88080501, // 0051 GETMBR R2 R2 K1 + 0x540E0020, // 0052 LDINT R3 33 + 0x1C080403, // 0053 EQ R2 R2 R3 + 0x780A0002, // 0054 JMPF R2 #0058 + 0x8C080113, // 0055 GETMET R2 R0 K19 + 0x7C080200, // 0056 CALL R2 1 + 0x70020007, // 0057 JMP #0060 + 0x8C080114, // 0058 GETMET R2 R0 K20 + 0x60100018, // 0059 GETGBL R4 G24 + 0x58140015, // 005A LDCONST R5 K21 + 0x88180304, // 005B GETMBR R6 R1 K4 + 0x7C100400, // 005C CALL R4 2 + 0x7C080400, // 005D CALL R2 2 + 0x8C080116, // 005E GETMET R2 R0 K22 + 0x7C080200, // 005F CALL R2 1 + 0x70020006, // 0060 JMP #0068 + 0x8C080114, // 0061 GETMET R2 R0 K20 + 0x60100018, // 0062 GETGBL R4 G24 + 0x58140017, // 0063 LDCONST R5 K23 + 0x7C100200, // 0064 CALL R4 1 + 0x7C080400, // 0065 CALL R2 2 + 0x8C080116, // 0066 GETMET R2 R0 K22 + 0x7C080200, // 0067 CALL R2 1 + 0x80000000, // 0068 RET 0 }) ) ); @@ -13468,7 +10935,7 @@ be_local_closure(class_SimpleDSLTranspiler_process_nested_function_call, /* na ********************************************************************/ be_local_closure(class_SimpleDSLTranspiler_current, /* name */ be_nested_proto( - 4, /* nstack */ + 3, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -13477,838 +10944,16 @@ be_local_closure(class_SimpleDSLTranspiler_current, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(pos), - /* K1 */ be_nested_str_weak(tokens), + /* K0 */ be_nested_str_weak(pull_lexer), + /* K1 */ be_nested_str_weak(peek_token), }), be_str_weak(current), &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ + ( &(const binstruction[ 4]) { /* 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_import -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(collect_inline_comment), - /* K3 */ be_nested_str_weak(add), - /* K4 */ be_nested_str_weak(import_X20_X25s_X20_X25s), - }), - be_str_weak(process_import), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x7C080200, // 0005 CALL R2 1 - 0x8C0C0103, // 0006 GETMET R3 R0 K3 - 0x60140018, // 0007 GETGBL R5 G24 - 0x58180004, // 0008 LDCONST R6 K4 - 0x5C1C0200, // 0009 MOVE R7 R1 - 0x5C200400, // 000A MOVE R8 R2 - 0x7C140600, // 000B CALL R5 3 - 0x7C0C0400, // 000C CALL R3 2 - 0x80000000, // 000D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: expect_keyword -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(next), - /* K5 */ be_nested_str_weak(error), - /* K6 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), - }), - be_str_weak(expect_keyword), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x4C0C0000, // 0002 LDNIL R3 - 0x200C0403, // 0003 NE R3 R2 R3 - 0x780E0008, // 0004 JMPF R3 #000E - 0x880C0501, // 0005 GETMBR R3 R2 K1 - 0x1C0C0702, // 0006 EQ R3 R3 K2 - 0x780E0005, // 0007 JMPF R3 #000E - 0x880C0503, // 0008 GETMBR R3 R2 K3 - 0x1C0C0601, // 0009 EQ R3 R3 R1 - 0x780E0002, // 000A JMPF R3 #000E - 0x8C0C0104, // 000B GETMET R3 R0 K4 - 0x7C0C0200, // 000C CALL R3 1 - 0x70020005, // 000D JMP #0014 - 0x8C0C0105, // 000E GETMET R3 R0 K5 - 0x60140018, // 000F GETGBL R5 G24 - 0x58180006, // 0010 LDCONST R6 K6 - 0x5C1C0200, // 0011 MOVE R7 R1 - 0x7C140400, // 0012 CALL R5 2 - 0x7C0C0400, // 0013 CALL R3 2 - 0x80000000, // 0014 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: generate_default_strip_initialization -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(strip_initialized), - /* K1 */ be_nested_str_weak(add), - /* K2 */ be_nested_str_weak(_X23_X20Auto_X2Dgenerated_X20strip_X20initialization_X20_X28using_X20Tasmota_X20configuration_X29), - /* K3 */ be_nested_str_weak(var_X20engine_X20_X3D_X20animation_X2Einit_strip_X28_X29), - /* K4 */ be_nested_str_weak(), - }), - be_str_weak(generate_default_strip_initialization), - &be_const_str_solidified, - ( &(const binstruction[15]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x78060000, // 0001 JMPF R1 #0003 - 0x80000200, // 0002 RET 0 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x580C0002, // 0004 LDCONST R3 K2 - 0x7C040400, // 0005 CALL R1 2 - 0x8C040101, // 0006 GETMET R1 R0 K1 - 0x580C0003, // 0007 LDCONST R3 K3 - 0x7C040400, // 0008 CALL R1 2 - 0x8C040101, // 0009 GETMET R1 R0 K1 - 0x580C0004, // 000A LDCONST R3 K4 - 0x7C040400, // 000B CALL R1 2 - 0x50040200, // 000C LDBOOL R1 1 0 - 0x90020001, // 000D SETMBR R0 K0 R1 - 0x80000000, // 000E RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: skip_statement -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_skip_statement, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(at_end), - /* K1 */ be_nested_str_weak(current), - /* K2 */ be_nested_str_weak(type), - /* K3 */ be_nested_str_weak(next), - }), - be_str_weak(skip_statement), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x7406000D, // 0002 JMPT R1 #0011 - 0x8C040101, // 0003 GETMET R1 R0 K1 - 0x7C040200, // 0004 CALL R1 1 - 0x88080302, // 0005 GETMBR R2 R1 K2 - 0x540E0022, // 0006 LDINT R3 35 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0003, // 0008 JMPT R2 #000D - 0x88080302, // 0009 GETMBR R2 R1 K2 - 0x540E0025, // 000A LDINT R3 38 - 0x1C080403, // 000B EQ R2 R2 R3 - 0x780A0000, // 000C JMPF R2 #000E - 0x70020002, // 000D JMP #0011 - 0x8C080103, // 000E GETMET R2 R0 K3 - 0x7C080200, // 000F CALL R2 1 - 0x7001FFEE, // 0010 JMP #0000 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_init, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[12]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(tokens), - /* K2 */ be_nested_str_weak(pos), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(output), - /* K5 */ be_nested_str_weak(warnings), - /* K6 */ be_nested_str_weak(run_statements), - /* K7 */ be_nested_str_weak(strip_initialized), - /* K8 */ be_nested_str_weak(symbol_table), - /* K9 */ be_nested_str_weak(_symbol_table), - /* K10 */ be_nested_str_weak(indent_level), - /* K11 */ be_nested_str_weak(has_template_calls), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[28]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x4C0C0000, // 0001 LDNIL R3 - 0x200C0203, // 0002 NE R3 R1 R3 - 0x780E0001, // 0003 JMPF R3 #0006 - 0x5C0C0200, // 0004 MOVE R3 R1 - 0x70020001, // 0005 JMP #0008 - 0x600C0012, // 0006 GETGBL R3 G18 - 0x7C0C0000, // 0007 CALL R3 0 - 0x90020203, // 0008 SETMBR R0 K1 R3 - 0x90020503, // 0009 SETMBR R0 K2 K3 - 0x600C0012, // 000A GETGBL R3 G18 - 0x7C0C0000, // 000B CALL R3 0 - 0x90020803, // 000C SETMBR R0 K4 R3 - 0x600C0012, // 000D GETGBL R3 G18 - 0x7C0C0000, // 000E CALL R3 0 - 0x90020A03, // 000F SETMBR R0 K5 R3 - 0x600C0012, // 0010 GETGBL R3 G18 - 0x7C0C0000, // 0011 CALL R3 0 - 0x90020C03, // 0012 SETMBR R0 K6 R3 - 0x500C0000, // 0013 LDBOOL R3 0 0 - 0x90020E03, // 0014 SETMBR R0 K7 R3 - 0x8C0C0509, // 0015 GETMET R3 R2 K9 - 0x7C0C0200, // 0016 CALL R3 1 - 0x90021003, // 0017 SETMBR R0 K8 R3 - 0x90021503, // 0018 SETMBR R0 K10 K3 - 0x500C0000, // 0019 LDBOOL R3 0 0 - 0x90021603, // 001A SETMBR R0 K11 R3 - 0x80000000, // 001B RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_play_statement_fluent -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_play_statement_fluent, /* name */ - be_nested_proto( - 13, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[20]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(), - /* K2 */ be_nested_str_weak(current), - /* K3 */ be_nested_str_weak(type), - /* K4 */ be_const_int(1), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(peek), - /* K7 */ be_nested_str_weak(process_nested_function_call), - /* K8 */ be_nested_str_weak(expect_identifier), - /* K9 */ be_nested_str_weak(_validate_object_reference), - /* K10 */ be_nested_str_weak(sequence_X20play), - /* K11 */ be_nested_str_weak(_X25s_), - /* K12 */ be_nested_str_weak(nil), - /* K13 */ be_nested_str_weak(value), - /* K14 */ be_nested_str_weak(for), - /* K15 */ be_nested_str_weak(process_time_value), - /* K16 */ be_nested_str_weak(collect_inline_comment), - /* K17 */ be_nested_str_weak(add), - /* K18 */ be_nested_str_weak(_X25s_X2Epush_play_step_X28_X25s_X2C_X20_X25s_X29_X25s), - /* K19 */ be_nested_str_weak(get_indent), - }), - be_str_weak(process_play_statement_fluent), - &be_const_str_solidified, - ( &(const binstruction[74]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x58040001, // 0002 LDCONST R1 K1 - 0x8C080102, // 0003 GETMET R2 R0 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x4C0C0000, // 0005 LDNIL R3 - 0x200C0403, // 0006 NE R3 R2 R3 - 0x780E0014, // 0007 JMPF R3 #001D - 0x880C0503, // 0008 GETMBR R3 R2 K3 - 0x1C0C0704, // 0009 EQ R3 R3 K4 - 0x740E0002, // 000A JMPT R3 #000E - 0x880C0503, // 000B GETMBR R3 R2 K3 - 0x1C0C0705, // 000C EQ R3 R3 K5 - 0x780E000E, // 000D JMPF R3 #001D - 0x8C0C0106, // 000E GETMET R3 R0 K6 - 0x7C0C0200, // 000F CALL R3 1 - 0x4C100000, // 0010 LDNIL R4 - 0x200C0604, // 0011 NE R3 R3 R4 - 0x780E0009, // 0012 JMPF R3 #001D - 0x8C0C0106, // 0013 GETMET R3 R0 K6 - 0x7C0C0200, // 0014 CALL R3 1 - 0x880C0703, // 0015 GETMBR R3 R3 K3 - 0x54120017, // 0016 LDINT R4 24 - 0x1C0C0604, // 0017 EQ R3 R3 R4 - 0x780E0003, // 0018 JMPF R3 #001D - 0x8C0C0107, // 0019 GETMET R3 R0 K7 - 0x7C0C0200, // 001A CALL R3 1 - 0x5C040600, // 001B MOVE R1 R3 - 0x7002000A, // 001C JMP #0028 - 0x8C0C0108, // 001D GETMET R3 R0 K8 - 0x7C0C0200, // 001E CALL R3 1 - 0x8C100109, // 001F GETMET R4 R0 K9 - 0x5C180600, // 0020 MOVE R6 R3 - 0x581C000A, // 0021 LDCONST R7 K10 - 0x7C100600, // 0022 CALL R4 3 - 0x60100018, // 0023 GETGBL R4 G24 - 0x5814000B, // 0024 LDCONST R5 K11 - 0x5C180600, // 0025 MOVE R6 R3 - 0x7C100400, // 0026 CALL R4 2 - 0x5C040800, // 0027 MOVE R1 R4 - 0x580C000C, // 0028 LDCONST R3 K12 - 0x8C100102, // 0029 GETMET R4 R0 K2 - 0x7C100200, // 002A CALL R4 1 - 0x4C140000, // 002B LDNIL R5 - 0x20100805, // 002C NE R4 R4 R5 - 0x7812000E, // 002D JMPF R4 #003D - 0x8C100102, // 002E GETMET R4 R0 K2 - 0x7C100200, // 002F CALL R4 1 - 0x88100903, // 0030 GETMBR R4 R4 K3 - 0x1C100905, // 0031 EQ R4 R4 K5 - 0x78120009, // 0032 JMPF R4 #003D - 0x8C100102, // 0033 GETMET R4 R0 K2 - 0x7C100200, // 0034 CALL R4 1 - 0x8810090D, // 0035 GETMBR R4 R4 K13 - 0x1C10090E, // 0036 EQ R4 R4 K14 - 0x78120004, // 0037 JMPF R4 #003D - 0x8C100100, // 0038 GETMET R4 R0 K0 - 0x7C100200, // 0039 CALL R4 1 - 0x8C10010F, // 003A GETMET R4 R0 K15 - 0x7C100200, // 003B CALL R4 1 - 0x5C0C0800, // 003C MOVE R3 R4 - 0x8C100110, // 003D GETMET R4 R0 K16 - 0x7C100200, // 003E CALL R4 1 - 0x8C140111, // 003F GETMET R5 R0 K17 - 0x601C0018, // 0040 GETGBL R7 G24 - 0x58200012, // 0041 LDCONST R8 K18 - 0x8C240113, // 0042 GETMET R9 R0 K19 - 0x7C240200, // 0043 CALL R9 1 - 0x5C280200, // 0044 MOVE R10 R1 - 0x5C2C0600, // 0045 MOVE R11 R3 - 0x5C300800, // 0046 MOVE R12 R4 - 0x7C1C0A00, // 0047 CALL R7 5 - 0x7C140400, // 0048 CALL R5 2 - 0x80000000, // 0049 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_run -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_run, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(_validate_object_reference), - /* K3 */ be_nested_str_weak(run), - /* K4 */ be_nested_str_weak(collect_inline_comment), - /* K5 */ be_nested_str_weak(run_statements), - /* K6 */ be_nested_str_weak(push), - /* K7 */ be_nested_str_weak(name), - /* K8 */ be_nested_str_weak(comment), - }), - be_str_weak(process_run), - &be_const_str_solidified, - ( &(const binstruction[18]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x8C040101, // 0002 GETMET R1 R0 K1 - 0x7C040200, // 0003 CALL R1 1 - 0x8C080102, // 0004 GETMET R2 R0 K2 - 0x5C100200, // 0005 MOVE R4 R1 - 0x58140003, // 0006 LDCONST R5 K3 - 0x7C080600, // 0007 CALL R2 3 - 0x8C080104, // 0008 GETMET R2 R0 K4 - 0x7C080200, // 0009 CALL R2 1 - 0x880C0105, // 000A GETMBR R3 R0 K5 - 0x8C0C0706, // 000B GETMET R3 R3 K6 - 0x60140013, // 000C GETGBL R5 G19 - 0x7C140000, // 000D CALL R5 0 - 0x98160E01, // 000E SETIDX R5 K7 R1 - 0x98161002, // 000F SETIDX R5 K8 R2 - 0x7C0C0400, // 0010 CALL R3 2 - 0x80000000, // 0011 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: process_sequence -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[29]) { /* constants */ - /* K0 */ be_nested_str_weak(next), - /* K1 */ be_nested_str_weak(expect_identifier), - /* K2 */ be_nested_str_weak(validate_user_name), - /* K3 */ be_nested_str_weak(sequence), - /* K4 */ be_nested_str_weak(skip_statement), - /* K5 */ be_nested_str_weak(symbol_table), - /* K6 */ be_nested_str_weak(create_sequence), - /* K7 */ be_nested_str_weak(1), - /* K8 */ be_nested_str_weak(current), - /* K9 */ be_nested_str_weak(type), - /* K10 */ be_const_int(0), - /* K11 */ be_nested_str_weak(value), - /* K12 */ be_nested_str_weak(repeat), - /* K13 */ be_nested_str_weak(forever), - /* K14 */ be_nested_str_weak(_X2D1), - /* K15 */ be_nested_str_weak(process_value), - /* K16 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), - /* K17 */ be_nested_str_weak(expect_keyword), - /* K18 */ be_nested_str_weak(times), - /* K19 */ be_nested_str_weak(expr), - /* K20 */ be_const_int(2), - /* K21 */ be_nested_str_weak(expect_left_brace), - /* K22 */ be_nested_str_weak(add), - /* K23 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), - /* K24 */ be_nested_str_weak(at_end), - /* K25 */ be_nested_str_weak(check_right_brace), - /* K26 */ be_nested_str_weak(process_sequence_statement), - /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X29), - /* K28 */ be_nested_str_weak(expect_right_brace), - }), - be_str_weak(process_sequence), - &be_const_str_solidified, - ( &(const binstruction[115]) { /* 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 - 0x8C080506, // 000D GETMET R2 R2 K6 - 0x5C100200, // 000E MOVE R4 R1 - 0x7C080400, // 000F CALL R2 2 - 0x50080000, // 0010 LDBOOL R2 0 0 - 0x580C0007, // 0011 LDCONST R3 K7 - 0x8C100108, // 0012 GETMET R4 R0 K8 - 0x7C100200, // 0013 CALL R4 1 - 0x4C140000, // 0014 LDNIL R5 - 0x20140805, // 0015 NE R5 R4 R5 - 0x78160027, // 0016 JMPF R5 #003F - 0x88140909, // 0017 GETMBR R5 R4 K9 - 0x1C140B0A, // 0018 EQ R5 R5 K10 - 0x78160024, // 0019 JMPF R5 #003F - 0x8814090B, // 001A GETMBR R5 R4 K11 - 0x1C140B0C, // 001B EQ R5 R5 K12 - 0x78160019, // 001C JMPF R5 #0037 - 0x50080200, // 001D LDBOOL R2 1 0 - 0x8C140100, // 001E GETMET R5 R0 K0 - 0x7C140200, // 001F CALL R5 1 - 0x8C140108, // 0020 GETMET R5 R0 K8 - 0x7C140200, // 0021 CALL R5 1 - 0x4C180000, // 0022 LDNIL R6 - 0x20180A06, // 0023 NE R6 R5 R6 - 0x781A0009, // 0024 JMPF R6 #002F - 0x88180B09, // 0025 GETMBR R6 R5 K9 - 0x1C180D0A, // 0026 EQ R6 R6 K10 - 0x781A0006, // 0027 JMPF R6 #002F - 0x88180B0B, // 0028 GETMBR R6 R5 K11 - 0x1C180D0D, // 0029 EQ R6 R6 K13 - 0x781A0003, // 002A JMPF R6 #002F - 0x8C180100, // 002B GETMET R6 R0 K0 - 0x7C180200, // 002C CALL R6 1 - 0x580C000E, // 002D LDCONST R3 K14 - 0x70020006, // 002E JMP #0036 - 0x8C18010F, // 002F GETMET R6 R0 K15 - 0x88200110, // 0030 GETMBR R8 R0 K16 - 0x7C180400, // 0031 CALL R6 2 - 0x8C1C0111, // 0032 GETMET R7 R0 K17 - 0x58240012, // 0033 LDCONST R9 K18 - 0x7C1C0400, // 0034 CALL R7 2 - 0x880C0D13, // 0035 GETMBR R3 R6 K19 - 0x70020006, // 0036 JMP #003E - 0x8814090B, // 0037 GETMBR R5 R4 K11 - 0x1C140B0D, // 0038 EQ R5 R5 K13 - 0x78160003, // 0039 JMPF R5 #003E - 0x50080200, // 003A LDBOOL R2 1 0 - 0x8C140100, // 003B GETMET R5 R0 K0 - 0x7C140200, // 003C CALL R5 1 - 0x580C000E, // 003D LDCONST R3 K14 - 0x7002000D, // 003E JMP #004D - 0x4C140000, // 003F LDNIL R5 - 0x20140805, // 0040 NE R5 R4 R5 - 0x7816000A, // 0041 JMPF R5 #004D - 0x88140909, // 0042 GETMBR R5 R4 K9 - 0x1C140B14, // 0043 EQ R5 R5 K20 - 0x78160007, // 0044 JMPF R5 #004D - 0x50080200, // 0045 LDBOOL R2 1 0 - 0x8C14010F, // 0046 GETMET R5 R0 K15 - 0x881C0110, // 0047 GETMBR R7 R0 K16 - 0x7C140400, // 0048 CALL R5 2 - 0x8C180111, // 0049 GETMET R6 R0 K17 - 0x58200012, // 004A LDCONST R8 K18 - 0x7C180400, // 004B CALL R6 2 - 0x880C0B13, // 004C GETMBR R3 R5 K19 - 0x8C140115, // 004D GETMET R5 R0 K21 - 0x7C140200, // 004E CALL R5 1 - 0x780A0010, // 004F JMPF R2 #0061 - 0x8C140116, // 0050 GETMET R5 R0 K22 - 0x601C0018, // 0051 GETGBL R7 G24 - 0x58200017, // 0052 LDCONST R8 K23 - 0x5C240200, // 0053 MOVE R9 R1 - 0x5C280600, // 0054 MOVE R10 R3 - 0x7C1C0600, // 0055 CALL R7 3 - 0x7C140400, // 0056 CALL R5 2 - 0x8C140118, // 0057 GETMET R5 R0 K24 - 0x7C140200, // 0058 CALL R5 1 - 0x74160005, // 0059 JMPT R5 #0060 - 0x8C140119, // 005A GETMET R5 R0 K25 - 0x7C140200, // 005B CALL R5 1 - 0x74160002, // 005C JMPT R5 #0060 - 0x8C14011A, // 005D GETMET R5 R0 K26 - 0x7C140200, // 005E CALL R5 1 - 0x7001FFF6, // 005F JMP #0057 - 0x7002000E, // 0060 JMP #0070 - 0x8C140116, // 0061 GETMET R5 R0 K22 - 0x601C0018, // 0062 GETGBL R7 G24 - 0x5820001B, // 0063 LDCONST R8 K27 - 0x5C240200, // 0064 MOVE R9 R1 - 0x7C1C0400, // 0065 CALL R7 2 - 0x7C140400, // 0066 CALL R5 2 - 0x8C140118, // 0067 GETMET R5 R0 K24 - 0x7C140200, // 0068 CALL R5 1 - 0x74160005, // 0069 JMPT R5 #0070 - 0x8C140119, // 006A GETMET R5 R0 K25 - 0x7C140200, // 006B CALL R5 1 - 0x74160002, // 006C JMPT R5 #0070 - 0x8C14011A, // 006D GETMET R5 R0 K26 - 0x7C140200, // 006E CALL R5 1 - 0x7001FFF6, // 006F JMP #0067 - 0x8C14011C, // 0070 GETMET R5 R0 K28 - 0x7C140200, // 0071 CALL R5 1 - 0x80000000, // 0072 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _process_named_arguments_for_animation -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation, /* name */ - be_nested_proto( - 8, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(_process_named_arguments_unified), - /* K1 */ be_nested_str_weak(CONTEXT_ANIMATION), - }), - be_str_weak(_process_named_arguments_for_animation), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x5C180400, // 0002 MOVE R6 R2 - 0x881C0101, // 0003 GETMBR R7 R0 K1 - 0x7C0C0800, // 0004 CALL R3 4 - 0x80000000, // 0005 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _create_symbol_by_return_type -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type, /* name */ - be_nested_proto( - 8, /* nstack */ - 4, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 9]) { /* constants */ - /* K0 */ be_nested_str_weak(symbol_table), - /* K1 */ be_nested_str_weak(create_animation), - /* K2 */ be_nested_str_weak(create_color), - /* K3 */ be_nested_str_weak(create_value_provider), - /* K4 */ be_const_int(2), - /* K5 */ be_nested_str_weak(create_palette), - /* K6 */ be_nested_str_weak(create_sequence), - /* K7 */ be_nested_str_weak(create_template), - /* K8 */ be_nested_str_weak(create_variable), - }), - be_str_weak(_create_symbol_by_return_type), - &be_const_str_solidified, - ( &(const binstruction[64]) { /* code */ - 0x54120008, // 0000 LDINT R4 9 - 0x1C100404, // 0001 EQ R4 R2 R4 - 0x78120006, // 0002 JMPF R4 #000A - 0x88100100, // 0003 GETMBR R4 R0 K0 - 0x8C100901, // 0004 GETMET R4 R4 K1 - 0x5C180200, // 0005 MOVE R6 R1 - 0x5C1C0600, // 0006 MOVE R7 R3 - 0x7C100600, // 0007 CALL R4 3 - 0x80040800, // 0008 RET 1 R4 - 0x70020034, // 0009 JMP #003F - 0x5412000A, // 000A LDINT R4 11 - 0x1C100404, // 000B EQ R4 R2 R4 - 0x78120006, // 000C JMPF R4 #0014 - 0x88100100, // 000D GETMBR R4 R0 K0 - 0x8C100902, // 000E GETMET R4 R4 K2 - 0x5C180200, // 000F MOVE R6 R1 - 0x5C1C0600, // 0010 MOVE R7 R3 - 0x7C100600, // 0011 CALL R4 3 - 0x80040800, // 0012 RET 1 R4 - 0x7002002A, // 0013 JMP #003F - 0x54120006, // 0014 LDINT R4 7 - 0x1C100404, // 0015 EQ R4 R2 R4 - 0x78120006, // 0016 JMPF R4 #001E - 0x88100100, // 0017 GETMBR R4 R0 K0 - 0x8C100903, // 0018 GETMET R4 R4 K3 - 0x5C180200, // 0019 MOVE R6 R1 - 0x5C1C0600, // 001A MOVE R7 R3 - 0x7C100600, // 001B CALL R4 3 - 0x80040800, // 001C RET 1 R4 - 0x70020020, // 001D JMP #003F - 0x1C100504, // 001E EQ R4 R2 K4 - 0x78120006, // 001F JMPF R4 #0027 - 0x88100100, // 0020 GETMBR R4 R0 K0 - 0x8C100905, // 0021 GETMET R4 R4 K5 - 0x5C180200, // 0022 MOVE R6 R1 - 0x5C1C0600, // 0023 MOVE R7 R3 - 0x7C100600, // 0024 CALL R4 3 - 0x80040800, // 0025 RET 1 R4 - 0x70020017, // 0026 JMP #003F - 0x5412000C, // 0027 LDINT R4 13 - 0x1C100404, // 0028 EQ R4 R2 R4 - 0x78120005, // 0029 JMPF R4 #0030 - 0x88100100, // 002A GETMBR R4 R0 K0 - 0x8C100906, // 002B GETMET R4 R4 K6 - 0x5C180200, // 002C MOVE R6 R1 - 0x7C100400, // 002D CALL R4 2 - 0x80040800, // 002E RET 1 R4 - 0x7002000E, // 002F JMP #003F - 0x5412000D, // 0030 LDINT R4 14 - 0x1C100404, // 0031 EQ R4 R2 R4 - 0x78120006, // 0032 JMPF R4 #003A - 0x88100100, // 0033 GETMBR R4 R0 K0 - 0x8C100907, // 0034 GETMET R4 R4 K7 - 0x5C180200, // 0035 MOVE R6 R1 - 0x4C1C0000, // 0036 LDNIL R7 - 0x7C100600, // 0037 CALL R4 3 - 0x80040800, // 0038 RET 1 R4 - 0x70020004, // 0039 JMP #003F - 0x88100100, // 003A GETMBR R4 R0 K0 - 0x8C100908, // 003B GETMET R4 R4 K8 - 0x5C180200, // 003C MOVE R6 R1 - 0x7C100400, // 003D CALL R4 2 - 0x80040800, // 003E RET 1 R4 - 0x80000000, // 003F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: _determine_symbol_return_type -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__determine_symbol_return_type, /* name */ - be_nested_proto( - 4, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(type), - /* K1 */ be_const_int(2), - /* K2 */ be_const_int(1), - /* K3 */ be_const_int(3), - }), - be_str_weak(_determine_symbol_return_type), - &be_const_str_solidified, - ( &(const binstruction[71]) { /* code */ - 0x88080300, // 0000 GETMBR R2 R1 K0 - 0x540E0008, // 0001 LDINT R3 9 - 0x1C080403, // 0002 EQ R2 R2 R3 - 0x740A0003, // 0003 JMPT R2 #0008 - 0x88080300, // 0004 GETMBR R2 R1 K0 - 0x540E0007, // 0005 LDINT R3 8 - 0x1C080403, // 0006 EQ R2 R2 R3 - 0x780A0002, // 0007 JMPF R2 #000B - 0x540A0008, // 0008 LDINT R2 9 - 0x80040400, // 0009 RET 1 R2 - 0x7002003A, // 000A JMP #0046 - 0x88080300, // 000B GETMBR R2 R1 K0 - 0x540E000A, // 000C LDINT R3 11 - 0x1C080403, // 000D EQ R2 R2 R3 - 0x740A0003, // 000E JMPT R2 #0013 - 0x88080300, // 000F GETMBR R2 R1 K0 - 0x540E0009, // 0010 LDINT R3 10 - 0x1C080403, // 0011 EQ R2 R2 R3 - 0x780A0002, // 0012 JMPF R2 #0016 - 0x540A000A, // 0013 LDINT R2 11 - 0x80040400, // 0014 RET 1 R2 - 0x7002002F, // 0015 JMP #0046 - 0x88080300, // 0016 GETMBR R2 R1 K0 - 0x540E0006, // 0017 LDINT R3 7 - 0x1C080403, // 0018 EQ R2 R2 R3 - 0x740A0003, // 0019 JMPT R2 #001E - 0x88080300, // 001A GETMBR R2 R1 K0 - 0x540E0005, // 001B LDINT R3 6 - 0x1C080403, // 001C EQ R2 R2 R3 - 0x780A0002, // 001D JMPF R2 #0021 - 0x540A0006, // 001E LDINT R2 7 - 0x80040400, // 001F RET 1 R2 - 0x70020024, // 0020 JMP #0046 - 0x88080300, // 0021 GETMBR R2 R1 K0 - 0x1C080501, // 0022 EQ R2 R2 K1 - 0x740A0002, // 0023 JMPT R2 #0027 - 0x88080300, // 0024 GETMBR R2 R1 K0 - 0x1C080502, // 0025 EQ R2 R2 K2 - 0x780A0001, // 0026 JMPF R2 #0029 - 0x80060200, // 0027 RET 1 K1 - 0x7002001C, // 0028 JMP #0046 - 0x88080300, // 0029 GETMBR R2 R1 K0 - 0x1C080503, // 002A EQ R2 R2 K3 - 0x780A0002, // 002B JMPF R2 #002F - 0x540A000B, // 002C LDINT R2 12 - 0x80040400, // 002D RET 1 R2 - 0x70020016, // 002E JMP #0046 - 0x88080300, // 002F GETMBR R2 R1 K0 - 0x540E000B, // 0030 LDINT R3 12 - 0x1C080403, // 0031 EQ R2 R2 R3 - 0x780A0002, // 0032 JMPF R2 #0036 - 0x540A000B, // 0033 LDINT R2 12 - 0x80040400, // 0034 RET 1 R2 - 0x7002000F, // 0035 JMP #0046 - 0x88080300, // 0036 GETMBR R2 R1 K0 - 0x540E000C, // 0037 LDINT R3 13 - 0x1C080403, // 0038 EQ R2 R2 R3 - 0x780A0002, // 0039 JMPF R2 #003D - 0x540A000C, // 003A LDINT R2 13 - 0x80040400, // 003B RET 1 R2 - 0x70020008, // 003C JMP #0046 - 0x88080300, // 003D GETMBR R2 R1 K0 - 0x540E000D, // 003E LDINT R3 14 - 0x1C080403, // 003F EQ R2 R2 R3 - 0x780A0002, // 0040 JMPF R2 #0044 - 0x540A000D, // 0041 LDINT R2 14 - 0x80040400, // 0042 RET 1 R2 - 0x70020001, // 0043 JMP #0046 - 0x540A000B, // 0044 LDINT R2 12 - 0x80040400, // 0045 RET 1 R2 - 0x80000000, // 0046 RET 0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x80040200, // 0003 RET 1 R1 }) ) ); @@ -14611,9 +11256,485 @@ be_local_closure(class_SimpleDSLTranspiler_process_color, /* name */ /******************************************************************** -** Solidified function: process_standalone_log +** Solidified function: process_play_statement_fluent ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_play_statement_fluent, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[20]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_const_int(1), + /* K5 */ be_const_int(0), + /* K6 */ be_nested_str_weak(peek), + /* K7 */ be_nested_str_weak(process_nested_function_call), + /* K8 */ be_nested_str_weak(expect_identifier), + /* K9 */ be_nested_str_weak(_validate_object_reference), + /* K10 */ be_nested_str_weak(sequence_X20play), + /* K11 */ be_nested_str_weak(_X25s_), + /* K12 */ be_nested_str_weak(nil), + /* K13 */ be_nested_str_weak(value), + /* K14 */ be_nested_str_weak(for), + /* K15 */ be_nested_str_weak(process_time_value), + /* K16 */ be_nested_str_weak(collect_inline_comment), + /* K17 */ be_nested_str_weak(add), + /* K18 */ be_nested_str_weak(_X25s_X2Epush_play_step_X28_X25s_X2C_X20_X25s_X29_X25s), + /* K19 */ be_nested_str_weak(get_indent), + }), + be_str_weak(process_play_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[74]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x58040001, // 0002 LDCONST R1 K1 + 0x8C080102, // 0003 GETMET R2 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x4C0C0000, // 0005 LDNIL R3 + 0x200C0403, // 0006 NE R3 R2 R3 + 0x780E0014, // 0007 JMPF R3 #001D + 0x880C0503, // 0008 GETMBR R3 R2 K3 + 0x1C0C0704, // 0009 EQ R3 R3 K4 + 0x740E0002, // 000A JMPT R3 #000E + 0x880C0503, // 000B GETMBR R3 R2 K3 + 0x1C0C0705, // 000C EQ R3 R3 K5 + 0x780E000E, // 000D JMPF R3 #001D + 0x8C0C0106, // 000E GETMET R3 R0 K6 + 0x7C0C0200, // 000F CALL R3 1 + 0x4C100000, // 0010 LDNIL R4 + 0x200C0604, // 0011 NE R3 R3 R4 + 0x780E0009, // 0012 JMPF R3 #001D + 0x8C0C0106, // 0013 GETMET R3 R0 K6 + 0x7C0C0200, // 0014 CALL R3 1 + 0x880C0703, // 0015 GETMBR R3 R3 K3 + 0x54120017, // 0016 LDINT R4 24 + 0x1C0C0604, // 0017 EQ R3 R3 R4 + 0x780E0003, // 0018 JMPF R3 #001D + 0x8C0C0107, // 0019 GETMET R3 R0 K7 + 0x7C0C0200, // 001A CALL R3 1 + 0x5C040600, // 001B MOVE R1 R3 + 0x7002000A, // 001C JMP #0028 + 0x8C0C0108, // 001D GETMET R3 R0 K8 + 0x7C0C0200, // 001E CALL R3 1 + 0x8C100109, // 001F GETMET R4 R0 K9 + 0x5C180600, // 0020 MOVE R6 R3 + 0x581C000A, // 0021 LDCONST R7 K10 + 0x7C100600, // 0022 CALL R4 3 + 0x60100018, // 0023 GETGBL R4 G24 + 0x5814000B, // 0024 LDCONST R5 K11 + 0x5C180600, // 0025 MOVE R6 R3 + 0x7C100400, // 0026 CALL R4 2 + 0x5C040800, // 0027 MOVE R1 R4 + 0x580C000C, // 0028 LDCONST R3 K12 + 0x8C100102, // 0029 GETMET R4 R0 K2 + 0x7C100200, // 002A CALL R4 1 + 0x4C140000, // 002B LDNIL R5 + 0x20100805, // 002C NE R4 R4 R5 + 0x7812000E, // 002D JMPF R4 #003D + 0x8C100102, // 002E GETMET R4 R0 K2 + 0x7C100200, // 002F CALL R4 1 + 0x88100903, // 0030 GETMBR R4 R4 K3 + 0x1C100905, // 0031 EQ R4 R4 K5 + 0x78120009, // 0032 JMPF R4 #003D + 0x8C100102, // 0033 GETMET R4 R0 K2 + 0x7C100200, // 0034 CALL R4 1 + 0x8810090D, // 0035 GETMBR R4 R4 K13 + 0x1C10090E, // 0036 EQ R4 R4 K14 + 0x78120004, // 0037 JMPF R4 #003D + 0x8C100100, // 0038 GETMET R4 R0 K0 + 0x7C100200, // 0039 CALL R4 1 + 0x8C10010F, // 003A GETMET R4 R0 K15 + 0x7C100200, // 003B CALL R4 1 + 0x5C0C0800, // 003C MOVE R3 R4 + 0x8C100110, // 003D GETMET R4 R0 K16 + 0x7C100200, // 003E CALL R4 1 + 0x8C140111, // 003F GETMET R5 R0 K17 + 0x601C0018, // 0040 GETGBL R7 G24 + 0x58200012, // 0041 LDCONST R8 K18 + 0x8C240113, // 0042 GETMET R9 R0 K19 + 0x7C240200, // 0043 CALL R9 1 + 0x5C280200, // 0044 MOVE R10 R1 + 0x5C2C0600, // 0045 MOVE R11 R3 + 0x5C300800, // 0046 MOVE R12 R4 + 0x7C1C0A00, // 0047 CALL R7 5 + 0x7C140400, // 0048 CALL R5 2 + 0x80000000, // 0049 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_comma +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_comma, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X2C_X27), + }), + be_str_weak(expect_comma), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001D, // 0006 LDINT R3 30 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_repeat_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent, /* name */ + be_nested_proto( + 9, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[24]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(1), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(forever), + /* K7 */ be_nested_str_weak(_X2D1), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), + /* K10 */ be_nested_str_weak(expect_keyword), + /* K11 */ be_nested_str_weak(times), + /* K12 */ be_nested_str_weak(expr), + /* K13 */ be_nested_str_weak(expect_left_brace), + /* K14 */ be_nested_str_weak(add), + /* K15 */ be_nested_str_weak(_X25s_X2Epush_repeat_subsequence_X28animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), + /* K16 */ be_nested_str_weak(get_indent), + /* K17 */ be_nested_str_weak(indent_level), + /* K18 */ be_const_int(1), + /* K19 */ be_nested_str_weak(at_end), + /* K20 */ be_nested_str_weak(check_right_brace), + /* K21 */ be_nested_str_weak(process_sequence_statement), + /* K22 */ be_nested_str_weak(expect_right_brace), + /* K23 */ be_nested_str_weak(_X25s_X29), + }), + be_str_weak(process_repeat_statement_fluent), + &be_const_str_solidified, + ( &(const binstruction[60]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x58040001, // 0002 LDCONST R1 K1 + 0x8C080102, // 0003 GETMET R2 R0 K2 + 0x7C080200, // 0004 CALL R2 1 + 0x4C0C0000, // 0005 LDNIL R3 + 0x200C0403, // 0006 NE R3 R2 R3 + 0x780E0009, // 0007 JMPF R3 #0012 + 0x880C0503, // 0008 GETMBR R3 R2 K3 + 0x1C0C0704, // 0009 EQ R3 R3 K4 + 0x780E0006, // 000A JMPF R3 #0012 + 0x880C0505, // 000B GETMBR R3 R2 K5 + 0x1C0C0706, // 000C EQ R3 R3 K6 + 0x780E0003, // 000D JMPF R3 #0012 + 0x8C0C0100, // 000E GETMET R3 R0 K0 + 0x7C0C0200, // 000F CALL R3 1 + 0x58040007, // 0010 LDCONST R1 K7 + 0x70020006, // 0011 JMP #0019 + 0x8C0C0108, // 0012 GETMET R3 R0 K8 + 0x88140109, // 0013 GETMBR R5 R0 K9 + 0x7C0C0400, // 0014 CALL R3 2 + 0x8C10010A, // 0015 GETMET R4 R0 K10 + 0x5818000B, // 0016 LDCONST R6 K11 + 0x7C100400, // 0017 CALL R4 2 + 0x8804070C, // 0018 GETMBR R1 R3 K12 + 0x8C0C010D, // 0019 GETMET R3 R0 K13 + 0x7C0C0200, // 001A CALL R3 1 + 0x8C0C010E, // 001B GETMET R3 R0 K14 + 0x60140018, // 001C GETGBL R5 G24 + 0x5818000F, // 001D LDCONST R6 K15 + 0x8C1C0110, // 001E GETMET R7 R0 K16 + 0x7C1C0200, // 001F CALL R7 1 + 0x5C200200, // 0020 MOVE R8 R1 + 0x7C140600, // 0021 CALL R5 3 + 0x7C0C0400, // 0022 CALL R3 2 + 0x880C0111, // 0023 GETMBR R3 R0 K17 + 0x000C0712, // 0024 ADD R3 R3 K18 + 0x90022203, // 0025 SETMBR R0 K17 R3 + 0x8C0C0113, // 0026 GETMET R3 R0 K19 + 0x7C0C0200, // 0027 CALL R3 1 + 0x740E0005, // 0028 JMPT R3 #002F + 0x8C0C0114, // 0029 GETMET R3 R0 K20 + 0x7C0C0200, // 002A CALL R3 1 + 0x740E0002, // 002B JMPT R3 #002F + 0x8C0C0115, // 002C GETMET R3 R0 K21 + 0x7C0C0200, // 002D CALL R3 1 + 0x7001FFF6, // 002E JMP #0026 + 0x8C0C0116, // 002F GETMET R3 R0 K22 + 0x7C0C0200, // 0030 CALL R3 1 + 0x8C0C010E, // 0031 GETMET R3 R0 K14 + 0x60140018, // 0032 GETGBL R5 G24 + 0x58180017, // 0033 LDCONST R6 K23 + 0x8C1C0110, // 0034 GETMET R7 R0 K16 + 0x7C1C0200, // 0035 CALL R7 1 + 0x7C140400, // 0036 CALL R5 2 + 0x7C0C0400, // 0037 CALL R3 2 + 0x880C0111, // 0038 GETMBR R3 R0 K17 + 0x040C0712, // 0039 SUB R3 R3 K18 + 0x90022203, // 003A SETMBR R0 K17 R3 + 0x80000000, // 003B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_additive_expression +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_additive_expression, /* name */ + be_nested_proto( + 15, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[16]) { /* constants */ + /* K0 */ be_nested_str_weak(process_multiplicative_expression), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(type), + /* K4 */ be_nested_str_weak(value), + /* K5 */ be_nested_str_weak(next), + /* K6 */ be_nested_str_weak(has_dangerous), + /* K7 */ be_nested_str_weak(expr), + /* K8 */ be_nested_str_weak(error), + /* K9 */ be_nested_str_weak(Expression_X20_X27_X25s_X27_X20cannot_X20be_X20used_X20in_X20computed_X20expressions_X2E_X20This_X20creates_X20a_X20new_X20instance_X20at_X20each_X20evaluation_X2E_X20Use_X20either_X3A_X0A_X20_X20set_X20var_name_X20_X3D_X20_X25s_X28_X29_X20_X20_X23_X20Single_X20function_X20call_X0A_X20_X20set_X20computed_X20_X3D_X20_X28existing_var_X20_X2B_X201_X29_X20_X2F_X202_X20_X20_X23_X20Computation_X20with_X20existing_X20values), + /* K10 */ be_nested_str_weak(skip_statement), + /* K11 */ be_nested_str_weak(ExpressionResult), + /* K12 */ be_nested_str_weak(literal), + /* K13 */ be_nested_str_weak(nil), + /* K14 */ be_nested_str_weak(combine), + /* K15 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), + }), + be_str_weak(process_additive_expression), + &be_const_str_solidified, + ( &(const binstruction[68]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x5C180200, // 0001 MOVE R6 R1 + 0x5C1C0400, // 0002 MOVE R7 R2 + 0x5C200600, // 0003 MOVE R8 R3 + 0x7C100800, // 0004 CALL R4 4 + 0x8C140101, // 0005 GETMET R5 R0 K1 + 0x7C140200, // 0006 CALL R5 1 + 0x7416003A, // 0007 JMPT R5 #0043 + 0x8C140102, // 0008 GETMET R5 R0 K2 + 0x7C140200, // 0009 CALL R5 1 + 0x4C180000, // 000A LDNIL R6 + 0x20180A06, // 000B NE R6 R5 R6 + 0x781A0033, // 000C JMPF R6 #0041 + 0x88180B03, // 000D GETMBR R6 R5 K3 + 0x541E0008, // 000E LDINT R7 9 + 0x1C180C07, // 000F EQ R6 R6 R7 + 0x741A0003, // 0010 JMPT R6 #0015 + 0x88180B03, // 0011 GETMBR R6 R5 K3 + 0x541E0009, // 0012 LDINT R7 10 + 0x1C180C07, // 0013 EQ R6 R6 R7 + 0x781A002B, // 0014 JMPF R6 #0041 + 0x88180B04, // 0015 GETMBR R6 R5 K4 + 0x8C1C0105, // 0016 GETMET R7 R0 K5 + 0x7C1C0200, // 0017 CALL R7 1 + 0x8C1C0100, // 0018 GETMET R7 R0 K0 + 0x5C240200, // 0019 MOVE R9 R1 + 0x50280000, // 001A LDBOOL R10 0 0 + 0x5C2C0600, // 001B MOVE R11 R3 + 0x7C1C0800, // 001C CALL R7 4 + 0x88200906, // 001D GETMBR R8 R4 K6 + 0x74220001, // 001E JMPT R8 #0021 + 0x88200F06, // 001F GETMBR R8 R7 K6 + 0x78220012, // 0020 JMPF R8 #0034 + 0x88200906, // 0021 GETMBR R8 R4 K6 + 0x78220001, // 0022 JMPF R8 #0025 + 0x88200907, // 0023 GETMBR R8 R4 K7 + 0x70020000, // 0024 JMP #0026 + 0x88200F07, // 0025 GETMBR R8 R7 K7 + 0x8C240108, // 0026 GETMET R9 R0 K8 + 0x602C0018, // 0027 GETGBL R11 G24 + 0x58300009, // 0028 LDCONST R12 K9 + 0x5C341000, // 0029 MOVE R13 R8 + 0x5C381000, // 002A MOVE R14 R8 + 0x7C2C0600, // 002B CALL R11 3 + 0x7C240400, // 002C CALL R9 2 + 0x8C24010A, // 002D GETMET R9 R0 K10 + 0x7C240200, // 002E CALL R9 1 + 0x8824010B, // 002F GETMBR R9 R0 K11 + 0x8C24130C, // 0030 GETMET R9 R9 K12 + 0x582C000D, // 0031 LDCONST R11 K13 + 0x7C240400, // 0032 CALL R9 2 + 0x80041200, // 0033 RET 1 R9 + 0x8820010B, // 0034 GETMBR R8 R0 K11 + 0x8C20110E, // 0035 GETMET R8 R8 K14 + 0x60280018, // 0036 GETGBL R10 G24 + 0x582C000F, // 0037 LDCONST R11 K15 + 0x88300907, // 0038 GETMBR R12 R4 K7 + 0x5C340C00, // 0039 MOVE R13 R6 + 0x88380F07, // 003A GETMBR R14 R7 K7 + 0x7C280800, // 003B CALL R10 4 + 0x5C2C0800, // 003C MOVE R11 R4 + 0x5C300E00, // 003D MOVE R12 R7 + 0x7C200800, // 003E CALL R8 4 + 0x5C101000, // 003F MOVE R4 R8 + 0x70020000, // 0040 JMP #0042 + 0x70020000, // 0041 JMP #0043 + 0x7001FFC1, // 0042 JMP #0005 + 0x80040800, // 0043 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_keyword +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_keyword, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(value), + /* K4 */ be_nested_str_weak(next), + /* K5 */ be_nested_str_weak(error), + /* K6 */ be_nested_str_weak(Expected_X20_X27_X25s_X27), + }), + be_str_weak(expect_keyword), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x200C0403, // 0003 NE R3 R2 R3 + 0x780E0008, // 0004 JMPF R3 #000E + 0x880C0501, // 0005 GETMBR R3 R2 K1 + 0x1C0C0702, // 0006 EQ R3 R3 K2 + 0x780E0005, // 0007 JMPF R3 #000E + 0x880C0503, // 0008 GETMBR R3 R2 K3 + 0x1C0C0601, // 0009 EQ R3 R3 R1 + 0x780E0002, // 000A JMPF R3 #000E + 0x8C0C0104, // 000B GETMET R3 R0 K4 + 0x7C0C0200, // 000C CALL R3 1 + 0x70020005, // 000D JMP #0014 + 0x8C0C0105, // 000E GETMET R3 R0 K5 + 0x60140018, // 000F GETGBL R5 G24 + 0x58180006, // 0010 LDCONST R6 K6 + 0x5C1C0200, // 0011 MOVE R7 R1 + 0x7C140400, // 0012 CALL R5 2 + 0x7C0C0400, // 0013 CALL R3 2 + 0x80000000, // 0014 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: collect_inline_comment +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_collect_inline_comment, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(_X20_X20), + /* K3 */ be_nested_str_weak(value), + /* K4 */ be_nested_str_weak(next), + /* K5 */ be_nested_str_weak(), + }), + be_str_weak(collect_inline_comment), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0008, // 0004 JMPF R2 #000E + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0024, // 0006 LDINT R3 37 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0004, // 0008 JMPF R2 #000E + 0x88080303, // 0009 GETMBR R2 R1 K3 + 0x000A0402, // 000A ADD R2 K2 R2 + 0x8C0C0104, // 000B GETMET R3 R0 K4 + 0x7C0C0200, // 000C CALL R3 1 + 0x80040400, // 000D RET 1 R2 + 0x80060A00, // 000E RET 1 K5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_log_statement_fluent +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_log_statement_fluent, /* name */ be_nested_proto( 9, /* nstack */ 1, /* argc */ @@ -14636,10 +11757,10 @@ be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ /* K9 */ be_nested_str_weak(expect_right_paren), /* K10 */ be_nested_str_weak(collect_inline_comment), /* K11 */ be_nested_str_weak(process_log_call), - /* K12 */ be_nested_str_weak(standalone), + /* K12 */ be_nested_str_weak(fluent), /* K13 */ be_nested_str_weak(add), }), - be_str_weak(process_standalone_log), + be_str_weak(process_log_statement_fluent), &be_const_str_solidified, ( &(const binstruction[34]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 @@ -14683,59 +11804,43 @@ be_local_closure(class_SimpleDSLTranspiler_process_standalone_log, /* name */ /******************************************************************** -** Solidified function: _validate_template_parameter_usage +** Solidified function: _validate_object_reference ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage, /* name */ +be_local_closure(class_SimpleDSLTranspiler__validate_object_reference, /* name */ be_nested_proto( - 14, /* nstack */ - 4, /* argc */ + 9, /* nstack */ + 3, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(_X25s_), - /* K2 */ be_nested_str_weak(find), - /* K3 */ be_nested_str_weak(warning), - /* K4 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20parameter_X20_X27_X25s_X27_X20is_X20declared_X20but_X20never_X20used_X20in_X20the_X20template_X20body_X2E), - /* K5 */ be_nested_str_weak(stop_iteration), + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(symbol_exists), + /* K2 */ be_nested_str_weak(error), + /* K3 */ be_nested_str_weak(Undefined_X20reference_X20_X27_X25s_X27_X20in_X20_X25s_X2E_X20Make_X20sure_X20the_X20object_X20is_X20defined_X20before_X20use_X2E), }), - be_str_weak(_validate_template_parameter_usage), + be_str_weak(_validate_object_reference), &be_const_str_solidified, - ( &(const binstruction[30]) { /* code */ - 0xA4120000, // 0000 IMPORT R4 K0 - 0x60140010, // 0001 GETGBL R5 G16 - 0x5C180400, // 0002 MOVE R6 R2 - 0x7C140200, // 0003 CALL R5 1 - 0xA8020014, // 0004 EXBLK 0 #001A - 0x5C180A00, // 0005 MOVE R6 R5 - 0x7C180000, // 0006 CALL R6 0 - 0x601C0018, // 0007 GETGBL R7 G24 - 0x58200001, // 0008 LDCONST R8 K1 - 0x5C240C00, // 0009 MOVE R9 R6 - 0x7C1C0400, // 000A CALL R7 2 - 0x8C200902, // 000B GETMET R8 R4 K2 - 0x5C280600, // 000C MOVE R10 R3 - 0x5C2C0E00, // 000D MOVE R11 R7 - 0x7C200600, // 000E CALL R8 3 - 0x5425FFFE, // 000F LDINT R9 -1 - 0x1C201009, // 0010 EQ R8 R8 R9 - 0x78220006, // 0011 JMPF R8 #0019 - 0x8C200103, // 0012 GETMET R8 R0 K3 - 0x60280018, // 0013 GETGBL R10 G24 - 0x582C0004, // 0014 LDCONST R11 K4 - 0x5C300200, // 0015 MOVE R12 R1 - 0x5C340C00, // 0016 MOVE R13 R6 - 0x7C280600, // 0017 CALL R10 3 - 0x7C200400, // 0018 CALL R8 2 - 0x7001FFEA, // 0019 JMP #0005 - 0x58140005, // 001A LDCONST R5 K5 - 0xAC140200, // 001B CATCH R5 1 0 - 0xB0080000, // 001C RAISE 2 R0 R0 - 0x80000000, // 001D RET 0 + ( &(const binstruction[16]) { /* code */ + 0x880C0100, // 0000 GETMBR R3 R0 K0 + 0x8C0C0701, // 0001 GETMET R3 R3 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x740E0008, // 0004 JMPT R3 #000E + 0x8C0C0102, // 0005 GETMET R3 R0 K2 + 0x60140018, // 0006 GETGBL R5 G24 + 0x58180003, // 0007 LDCONST R6 K3 + 0x5C1C0200, // 0008 MOVE R7 R1 + 0x5C200400, // 0009 MOVE R8 R2 + 0x7C140600, // 000A CALL R5 3 + 0x7C0C0400, // 000B CALL R3 2 + 0x500C0000, // 000C LDBOOL R3 0 0 + 0x80040600, // 000D RET 1 R3 + 0x500C0200, // 000E LDBOOL R3 1 0 + 0x80040600, // 000F RET 1 R3 }) ) ); @@ -14743,19 +11848,426 @@ be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage, /******************************************************************** -** Solidified function: generate_template_function +** Solidified function: process_array_literal ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_generate_template_function, /* name */ +be_local_closure(class_SimpleDSLTranspiler_process_array_literal, /* name */ be_nested_proto( - 18, /* nstack */ - 5, /* argc */ + 6, /* nstack */ + 1, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[27]) { /* constants */ + ( &(const bvalue[19]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_bracket), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_bracket), + /* K3 */ be_nested_str_weak(process_value), + /* K4 */ be_nested_str_weak(CONTEXT_ARRAY_ELEMENT), + /* K5 */ be_nested_str_weak(push), + /* K6 */ be_nested_str_weak(expr), + /* K7 */ be_nested_str_weak(current), + /* K8 */ be_nested_str_weak(type), + /* K9 */ be_nested_str_weak(next), + /* K10 */ be_nested_str_weak(error), + /* K11 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X5D_X27_X20in_X20array_X20literal), + /* K12 */ be_nested_str_weak(expect_right_bracket), + /* K13 */ be_nested_str_weak(_X5B), + /* K14 */ be_const_int(0), + /* K15 */ be_const_int(1), + /* K16 */ be_nested_str_weak(_X2C_X20), + /* K17 */ be_nested_str_weak(stop_iteration), + /* K18 */ be_nested_str_weak(_X5D), + }), + be_str_weak(process_array_literal), + &be_const_str_solidified, + ( &(const binstruction[62]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x60040012, // 0002 GETGBL R1 G18 + 0x7C040000, // 0003 CALL R1 0 + 0x8C080101, // 0004 GETMET R2 R0 K1 + 0x7C080200, // 0005 CALL R2 1 + 0x740A001E, // 0006 JMPT R2 #0026 + 0x8C080102, // 0007 GETMET R2 R0 K2 + 0x7C080200, // 0008 CALL R2 1 + 0x740A001B, // 0009 JMPT R2 #0026 + 0x8C080103, // 000A GETMET R2 R0 K3 + 0x88100104, // 000B GETMBR R4 R0 K4 + 0x7C080400, // 000C CALL R2 2 + 0x8C0C0305, // 000D GETMET R3 R1 K5 + 0x88140506, // 000E GETMBR R5 R2 K6 + 0x7C0C0400, // 000F CALL R3 2 + 0x8C0C0107, // 0010 GETMET R3 R0 K7 + 0x7C0C0200, // 0011 CALL R3 1 + 0x4C100000, // 0012 LDNIL R4 + 0x200C0604, // 0013 NE R3 R3 R4 + 0x780E0008, // 0014 JMPF R3 #001E + 0x8C0C0107, // 0015 GETMET R3 R0 K7 + 0x7C0C0200, // 0016 CALL R3 1 + 0x880C0708, // 0017 GETMBR R3 R3 K8 + 0x5412001D, // 0018 LDINT R4 30 + 0x1C0C0604, // 0019 EQ R3 R3 R4 + 0x780E0002, // 001A JMPF R3 #001E + 0x8C0C0109, // 001B GETMET R3 R0 K9 + 0x7C0C0200, // 001C CALL R3 1 + 0x70020006, // 001D JMP #0025 + 0x8C0C0102, // 001E GETMET R3 R0 K2 + 0x7C0C0200, // 001F CALL R3 1 + 0x740E0003, // 0020 JMPT R3 #0025 + 0x8C0C010A, // 0021 GETMET R3 R0 K10 + 0x5814000B, // 0022 LDCONST R5 K11 + 0x7C0C0400, // 0023 CALL R3 2 + 0x70020000, // 0024 JMP #0026 + 0x7001FFDD, // 0025 JMP #0004 + 0x8C08010C, // 0026 GETMET R2 R0 K12 + 0x7C080200, // 0027 CALL R2 1 + 0x5808000D, // 0028 LDCONST R2 K13 + 0x600C0010, // 0029 GETGBL R3 G16 + 0x6010000C, // 002A GETGBL R4 G12 + 0x5C140200, // 002B MOVE R5 R1 + 0x7C100200, // 002C CALL R4 1 + 0x0410090F, // 002D SUB R4 R4 K15 + 0x40121C04, // 002E CONNECT R4 K14 R4 + 0x7C0C0200, // 002F CALL R3 1 + 0xA8020007, // 0030 EXBLK 0 #0039 + 0x5C100600, // 0031 MOVE R4 R3 + 0x7C100000, // 0032 CALL R4 0 + 0x2414090E, // 0033 GT R5 R4 K14 + 0x78160000, // 0034 JMPF R5 #0036 + 0x00080510, // 0035 ADD R2 R2 K16 + 0x94140204, // 0036 GETIDX R5 R1 R4 + 0x00080405, // 0037 ADD R2 R2 R5 + 0x7001FFF7, // 0038 JMP #0031 + 0x580C0011, // 0039 LDCONST R3 K17 + 0xAC0C0200, // 003A CATCH R3 1 0 + 0xB0080000, // 003B RAISE 2 R0 R0 + 0x00080512, // 003C ADD R2 R2 K18 + 0x80040400, // 003D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: has_warnings +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_has_warnings, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(warnings), + /* K1 */ be_const_int(0), + }), + be_str_weak(has_warnings), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0x6004000C, // 0000 GETGBL R1 G12 + 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x7C040200, // 0002 CALL R1 1 + 0x24040301, // 0003 GT R1 R1 K1 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_import +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_import, /* name */ + be_nested_proto( + 9, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(collect_inline_comment), + /* K3 */ be_nested_str_weak(add), + /* K4 */ be_nested_str_weak(import_X20_X25s_X20_X25s), + }), + be_str_weak(process_import), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x7C080200, // 0005 CALL R2 1 + 0x8C0C0103, // 0006 GETMET R3 R0 K3 + 0x60140018, // 0007 GETGBL R5 G24 + 0x58180004, // 0008 LDCONST R6 K4 + 0x5C1C0200, // 0009 MOVE R7 R1 + 0x5C200400, // 000A MOVE R8 R2 + 0x7C140600, // 000B CALL R5 3 + 0x7C0C0400, // 000C CALL R3 2 + 0x80000000, // 000D RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_named_arguments_unified +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_named_arguments_unified, /* name */ + be_nested_proto( + 10, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 11, /* nstack */ + 3, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 2]) { /* upvals */ + be_local_const_upval(1, 0), + be_local_const_upval(1, 1), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(add), + /* K1 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + }), + be_str_weak(_anonymous_), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x680C0000, // 0000 GETUPV R3 U0 + 0x8C0C0700, // 0001 GETMET R3 R3 K0 + 0x60140018, // 0002 GETGBL R5 G24 + 0x58180001, // 0003 LDCONST R6 K1 + 0x681C0001, // 0004 GETUPV R7 U1 + 0x5C200000, // 0005 MOVE R8 R0 + 0x5C240200, // 0006 MOVE R9 R1 + 0x5C280400, // 0007 MOVE R10 R2 + 0x7C140A00, // 0008 CALL R5 5 + 0x7C0C0400, // 0009 CALL R3 2 + 0x80000000, // 000A RET 0 + }) + ), + }), + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(_process_parameters_core), + /* K2 */ be_nested_str_weak(expect_right_paren), + }), + be_str_weak(_process_named_arguments_unified), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x84100000, // 0002 CLOSURE R4 P0 + 0x8C140101, // 0003 GETMET R5 R0 K1 + 0x5C1C0400, // 0004 MOVE R7 R2 + 0x5C200600, // 0005 MOVE R8 R3 + 0x5C240800, // 0006 MOVE R9 R4 + 0x7C140800, // 0007 CALL R5 4 + 0x8C140102, // 0008 GETMET R5 R0 K2 + 0x7C140200, // 0009 CALL R5 1 + 0xA0000000, // 000A CLOSE R0 + 0x80000000, // 000B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_simple_value_assignment +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_simple_value_assignment, /* name */ + be_nested_proto( + 16, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[14]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_const_int(1), + /* K3 */ be_nested_str_weak(peek), + /* K4 */ be_nested_str_weak(value), + /* K5 */ be_nested_str_weak(process_value), + /* K6 */ be_nested_str_weak(collect_inline_comment), + /* K7 */ be_nested_str_weak(add), + /* K8 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20_X25s_X25s), + /* K9 */ be_nested_str_weak(expr), + /* K10 */ be_nested_str_weak(symbol_table), + /* K11 */ be_nested_str_weak(contains), + /* K12 */ be_nested_str_weak(get), + /* K13 */ be_nested_str_weak(instance), + }), + be_str_weak(_process_simple_value_assignment), + &be_const_str_solidified, + ( &(const binstruction[73]) { /* code */ + 0x8C100100, // 0000 GETMET R4 R0 K0 + 0x7C100200, // 0001 CALL R4 1 + 0x4C140000, // 0002 LDNIL R5 + 0x20140805, // 0003 NE R5 R4 R5 + 0x7816000D, // 0004 JMPF R5 #0013 + 0x88140901, // 0005 GETMBR R5 R4 K1 + 0x1C140B02, // 0006 EQ R5 R5 K2 + 0x7816000A, // 0007 JMPF R5 #0013 + 0x8C140103, // 0008 GETMET R5 R0 K3 + 0x7C140200, // 0009 CALL R5 1 + 0x4C180000, // 000A LDNIL R6 + 0x1C140A06, // 000B EQ R5 R5 R6 + 0x74160006, // 000C JMPT R5 #0014 + 0x8C140103, // 000D GETMET R5 R0 K3 + 0x7C140200, // 000E CALL R5 1 + 0x88140B01, // 000F GETMBR R5 R5 K1 + 0x541A0017, // 0010 LDINT R6 24 + 0x20140A06, // 0011 NE R5 R5 R6 + 0x74160000, // 0012 JMPT R5 #0014 + 0x50140001, // 0013 LDBOOL R5 0 1 + 0x50140200, // 0014 LDBOOL R5 1 0 + 0x78160001, // 0015 JMPF R5 #0018 + 0x88180904, // 0016 GETMBR R6 R4 K4 + 0x70020000, // 0017 JMP #0019 + 0x4C180000, // 0018 LDNIL R6 + 0x8C1C0105, // 0019 GETMET R7 R0 K5 + 0x5C240400, // 001A MOVE R9 R2 + 0x7C1C0400, // 001B CALL R7 2 + 0x8C200106, // 001C GETMET R8 R0 K6 + 0x7C200200, // 001D CALL R8 1 + 0x8C240107, // 001E GETMET R9 R0 K7 + 0x602C0018, // 001F GETGBL R11 G24 + 0x58300008, // 0020 LDCONST R12 K8 + 0x5C340200, // 0021 MOVE R13 R1 + 0x88380F09, // 0022 GETMBR R14 R7 K9 + 0x5C3C1000, // 0023 MOVE R15 R8 + 0x7C2C0800, // 0024 CALL R11 4 + 0x7C240400, // 0025 CALL R9 2 + 0x7816001C, // 0026 JMPF R5 #0044 + 0x4C240000, // 0027 LDNIL R9 + 0x20240C09, // 0028 NE R9 R6 R9 + 0x78260019, // 0029 JMPF R9 #0044 + 0x8824010A, // 002A GETMBR R9 R0 K10 + 0x8C24130B, // 002B GETMET R9 R9 K11 + 0x5C2C0C00, // 002C MOVE R11 R6 + 0x7C240400, // 002D CALL R9 2 + 0x78260014, // 002E JMPF R9 #0044 + 0x8824010A, // 002F GETMBR R9 R0 K10 + 0x8C24130C, // 0030 GETMET R9 R9 K12 + 0x5C2C0C00, // 0031 MOVE R11 R6 + 0x7C240400, // 0032 CALL R9 2 + 0x4C280000, // 0033 LDNIL R10 + 0x2028120A, // 0034 NE R10 R9 R10 + 0x782A0008, // 0035 JMPF R10 #003F + 0x8828130D, // 0036 GETMBR R10 R9 K13 + 0x4C2C0000, // 0037 LDNIL R11 + 0x2028140B, // 0038 NE R10 R10 R11 + 0x782A0004, // 0039 JMPF R10 #003F + 0x5C280600, // 003A MOVE R10 R3 + 0x5C2C0200, // 003B MOVE R11 R1 + 0x8830130D, // 003C GETMBR R12 R9 K13 + 0x7C280400, // 003D CALL R10 2 + 0x70020003, // 003E JMP #0043 + 0x5C280600, // 003F MOVE R10 R3 + 0x5C2C0200, // 0040 MOVE R11 R1 + 0x4C300000, // 0041 LDNIL R12 + 0x7C280400, // 0042 CALL R10 2 + 0x70020003, // 0043 JMP #0048 + 0x5C240600, // 0044 MOVE R9 R3 + 0x5C280200, // 0045 MOVE R10 R1 + 0x4C2C0000, // 0046 LDNIL R11 + 0x7C240400, // 0047 CALL R9 2 + 0x80000000, // 0048 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_right_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_right_bracket, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X5D_X27), + }), + be_str_weak(expect_right_bracket), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001C, // 0006 LDINT R3 29 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: generate_template_function_direct +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_generate_template_function_direct, /* name */ + be_nested_proto( + 17, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[29]) { /* constants */ /* K0 */ be_nested_str_weak(animation_dsl), /* K1 */ be_nested_str_weak(string), /* K2 */ be_nested_str_weak(engine), @@ -14765,201 +12277,167 @@ be_local_closure(class_SimpleDSLTranspiler_generate_template_function, /* name /* K6 */ be_nested_str_weak(_X23_X20Template_X20function_X3A_X20_X25s), /* K7 */ be_nested_str_weak(def_X20_X25s_template_X28_X25s_X29), /* K8 */ be_nested_str_weak(SimpleDSLTranspiler), - /* K9 */ be_nested_str_weak(symbol_table), - /* K10 */ be_nested_str_weak(_symbol_table), - /* K11 */ be_nested_str_weak(strip_initialized), - /* K12 */ be_nested_str_weak(find), - /* K13 */ be_nested_str_weak(_add_typed_parameter_to_symbol_table), - /* K14 */ be_nested_str_weak(create_variable), - /* K15 */ be_nested_str_weak(transpile_template_body), - /* K16 */ be_nested_str_weak(split), - /* K17 */ be_nested_str_weak(_X0A), - /* K18 */ be_const_int(0), - /* K19 */ be_nested_str_weak(_X20_X20_X25s), - /* K20 */ be_nested_str_weak(_validate_template_parameter_usage), - /* K21 */ be_nested_str_weak(errors), - /* K22 */ be_nested_str_weak(error), - /* K23 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), - /* K24 */ be_nested_str_weak(end), - /* K25 */ be_nested_str_weak(), - /* K26 */ be_nested_str_weak(animation_X2Eregister_user_function_X28_X27_X25s_X27_X2C_X20_X25s_template_X29), + /* K9 */ be_nested_str_weak(pull_lexer), + /* K10 */ be_nested_str_weak(symbol_table), + /* K11 */ be_nested_str_weak(_symbol_table), + /* K12 */ be_nested_str_weak(strip_initialized), + /* K13 */ be_nested_str_weak(find), + /* K14 */ be_nested_str_weak(_add_typed_parameter_to_symbol_table), + /* K15 */ be_nested_str_weak(create_variable), + /* K16 */ be_nested_str_weak(transpile_template_body), + /* K17 */ be_nested_str_weak(split), + /* K18 */ be_nested_str_weak(_X0A), + /* K19 */ be_const_int(0), + /* K20 */ be_nested_str_weak(_X20_X20_X25s), + /* K21 */ be_nested_str_weak(_validate_template_parameter_usage), + /* K22 */ be_nested_str_weak(errors), + /* K23 */ be_nested_str_weak(error), + /* K24 */ be_nested_str_weak(Template_X20_X27_X25s_X27_X20body_X20error_X3A_X20_X25s), + /* K25 */ be_nested_str_weak(expect_right_brace), + /* K26 */ be_nested_str_weak(end), + /* K27 */ be_nested_str_weak(), + /* K28 */ be_nested_str_weak(animation_X2Eregister_user_function_X28_X27_X25s_X27_X2C_X20_X25s_template_X29), }), - be_str_weak(generate_template_function), + be_str_weak(generate_template_function_direct), &be_const_str_solidified, - ( &(const binstruction[135]) { /* code */ - 0xA4160000, // 0000 IMPORT R5 K0 - 0xA41A0200, // 0001 IMPORT R6 K1 - 0x581C0002, // 0002 LDCONST R7 K2 - 0x60200010, // 0003 GETGBL R8 G16 - 0x5C240400, // 0004 MOVE R9 R2 - 0x7C200200, // 0005 CALL R8 1 + ( &(const binstruction[137]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0xA4160200, // 0001 IMPORT R5 K1 + 0x58180002, // 0002 LDCONST R6 K2 + 0x601C0010, // 0003 GETGBL R7 G16 + 0x5C200400, // 0004 MOVE R8 R2 + 0x7C1C0200, // 0005 CALL R7 1 0xA8020007, // 0006 EXBLK 0 #000F - 0x5C241000, // 0007 MOVE R9 R8 - 0x7C240000, // 0008 CALL R9 0 - 0x60280018, // 0009 GETGBL R10 G24 - 0x582C0003, // 000A LDCONST R11 K3 - 0x5C301200, // 000B MOVE R12 R9 - 0x7C280400, // 000C CALL R10 2 - 0x001C0E0A, // 000D ADD R7 R7 R10 + 0x5C200E00, // 0007 MOVE R8 R7 + 0x7C200000, // 0008 CALL R8 0 + 0x60240018, // 0009 GETGBL R9 G24 + 0x58280003, // 000A LDCONST R10 K3 + 0x5C2C1000, // 000B MOVE R11 R8 + 0x7C240400, // 000C CALL R9 2 + 0x00180C09, // 000D ADD R6 R6 R9 0x7001FFF7, // 000E JMP #0007 - 0x58200004, // 000F LDCONST R8 K4 - 0xAC200200, // 0010 CATCH R8 1 0 + 0x581C0004, // 000F LDCONST R7 K4 + 0xAC1C0200, // 0010 CATCH R7 1 0 0xB0080000, // 0011 RAISE 2 R0 R0 - 0x8C200105, // 0012 GETMET R8 R0 K5 - 0x60280018, // 0013 GETGBL R10 G24 - 0x582C0006, // 0014 LDCONST R11 K6 - 0x5C300200, // 0015 MOVE R12 R1 - 0x7C280400, // 0016 CALL R10 2 - 0x7C200400, // 0017 CALL R8 2 - 0x8C200105, // 0018 GETMET R8 R0 K5 - 0x60280018, // 0019 GETGBL R10 G24 - 0x582C0007, // 001A LDCONST R11 K7 - 0x5C300200, // 001B MOVE R12 R1 - 0x5C340E00, // 001C MOVE R13 R7 - 0x7C280600, // 001D CALL R10 3 - 0x7C200400, // 001E CALL R8 2 - 0x8C200B08, // 001F GETMET R8 R5 K8 - 0x5C280800, // 0020 MOVE R10 R4 - 0x7C200400, // 0021 CALL R8 2 - 0x8C240B0A, // 0022 GETMET R9 R5 K10 - 0x7C240200, // 0023 CALL R9 1 - 0x90221209, // 0024 SETMBR R8 K9 R9 - 0x50240200, // 0025 LDBOOL R9 1 0 - 0x90221609, // 0026 SETMBR R8 K11 R9 - 0x60240010, // 0027 GETGBL R9 G16 - 0x5C280400, // 0028 MOVE R10 R2 - 0x7C240200, // 0029 CALL R9 1 + 0x8C1C0105, // 0012 GETMET R7 R0 K5 + 0x60240018, // 0013 GETGBL R9 G24 + 0x58280006, // 0014 LDCONST R10 K6 + 0x5C2C0200, // 0015 MOVE R11 R1 + 0x7C240400, // 0016 CALL R9 2 + 0x7C1C0400, // 0017 CALL R7 2 + 0x8C1C0105, // 0018 GETMET R7 R0 K5 + 0x60240018, // 0019 GETGBL R9 G24 + 0x58280007, // 001A LDCONST R10 K7 + 0x5C2C0200, // 001B MOVE R11 R1 + 0x5C300C00, // 001C MOVE R12 R6 + 0x7C240600, // 001D CALL R9 3 + 0x7C1C0400, // 001E CALL R7 2 + 0x8C1C0908, // 001F GETMET R7 R4 K8 + 0x88240109, // 0020 GETMBR R9 R0 K9 + 0x7C1C0400, // 0021 CALL R7 2 + 0x8C20090B, // 0022 GETMET R8 R4 K11 + 0x7C200200, // 0023 CALL R8 1 + 0x901E1408, // 0024 SETMBR R7 K10 R8 + 0x50200200, // 0025 LDBOOL R8 1 0 + 0x901E1808, // 0026 SETMBR R7 K12 R8 + 0x60200010, // 0027 GETGBL R8 G16 + 0x5C240400, // 0028 MOVE R9 R2 + 0x7C200200, // 0029 CALL R8 1 0xA8020012, // 002A EXBLK 0 #003E - 0x5C281200, // 002B MOVE R10 R9 - 0x7C280000, // 002C CALL R10 0 - 0x8C2C070C, // 002D GETMET R11 R3 K12 - 0x5C341400, // 002E MOVE R13 R10 - 0x7C2C0400, // 002F CALL R11 2 - 0x4C300000, // 0030 LDNIL R12 - 0x2030160C, // 0031 NE R12 R11 R12 - 0x78320005, // 0032 JMPF R12 #0039 - 0x8C30010D, // 0033 GETMET R12 R0 K13 - 0x88381109, // 0034 GETMBR R14 R8 K9 - 0x5C3C1400, // 0035 MOVE R15 R10 - 0x5C401600, // 0036 MOVE R16 R11 - 0x7C300800, // 0037 CALL R12 4 + 0x5C241000, // 002B MOVE R9 R8 + 0x7C240000, // 002C CALL R9 0 + 0x8C28070D, // 002D GETMET R10 R3 K13 + 0x5C301200, // 002E MOVE R12 R9 + 0x7C280400, // 002F CALL R10 2 + 0x4C2C0000, // 0030 LDNIL R11 + 0x202C140B, // 0031 NE R11 R10 R11 + 0x782E0005, // 0032 JMPF R11 #0039 + 0x8C2C010E, // 0033 GETMET R11 R0 K14 + 0x88340F0A, // 0034 GETMBR R13 R7 K10 + 0x5C381200, // 0035 MOVE R14 R9 + 0x5C3C1400, // 0036 MOVE R15 R10 + 0x7C2C0800, // 0037 CALL R11 4 0x70020003, // 0038 JMP #003D - 0x88301109, // 0039 GETMBR R12 R8 K9 - 0x8C30190E, // 003A GETMET R12 R12 K14 - 0x5C381400, // 003B MOVE R14 R10 - 0x7C300400, // 003C CALL R12 2 + 0x882C0F0A, // 0039 GETMBR R11 R7 K10 + 0x8C2C170F, // 003A GETMET R11 R11 K15 + 0x5C341200, // 003B MOVE R13 R9 + 0x7C2C0400, // 003C CALL R11 2 0x7001FFEC, // 003D JMP #002B - 0x58240004, // 003E LDCONST R9 K4 - 0xAC240200, // 003F CATCH R9 1 0 + 0x58200004, // 003E LDCONST R8 K4 + 0xAC200200, // 003F CATCH R8 1 0 0xB0080000, // 0040 RAISE 2 R0 R0 - 0x8C24110F, // 0041 GETMET R9 R8 K15 - 0x7C240200, // 0042 CALL R9 1 - 0x4C280000, // 0043 LDNIL R10 - 0x2028120A, // 0044 NE R10 R9 R10 - 0x782A001E, // 0045 JMPF R10 #0065 - 0x8C280D10, // 0046 GETMET R10 R6 K16 - 0x5C301200, // 0047 MOVE R12 R9 - 0x58340011, // 0048 LDCONST R13 K17 - 0x7C280600, // 0049 CALL R10 3 - 0x602C0010, // 004A GETGBL R11 G16 - 0x5C301400, // 004B MOVE R12 R10 - 0x7C2C0200, // 004C CALL R11 1 + 0x8C200F10, // 0041 GETMET R8 R7 K16 + 0x7C200200, // 0042 CALL R8 1 + 0x4C240000, // 0043 LDNIL R9 + 0x20241009, // 0044 NE R9 R8 R9 + 0x7826001E, // 0045 JMPF R9 #0065 + 0x8C240B11, // 0046 GETMET R9 R5 K17 + 0x5C2C1000, // 0047 MOVE R11 R8 + 0x58300012, // 0048 LDCONST R12 K18 + 0x7C240600, // 0049 CALL R9 3 + 0x60280010, // 004A GETGBL R10 G16 + 0x5C2C1200, // 004B MOVE R11 R9 + 0x7C280200, // 004C CALL R10 1 0xA802000D, // 004D EXBLK 0 #005C - 0x5C301600, // 004E MOVE R12 R11 - 0x7C300000, // 004F CALL R12 0 - 0x6034000C, // 0050 GETGBL R13 G12 - 0x5C381800, // 0051 MOVE R14 R12 - 0x7C340200, // 0052 CALL R13 1 - 0x24341B12, // 0053 GT R13 R13 K18 - 0x78360005, // 0054 JMPF R13 #005B - 0x8C340105, // 0055 GETMET R13 R0 K5 - 0x603C0018, // 0056 GETGBL R15 G24 - 0x58400013, // 0057 LDCONST R16 K19 - 0x5C441800, // 0058 MOVE R17 R12 - 0x7C3C0400, // 0059 CALL R15 2 - 0x7C340400, // 005A CALL R13 2 + 0x5C2C1400, // 004E MOVE R11 R10 + 0x7C2C0000, // 004F CALL R11 0 + 0x6030000C, // 0050 GETGBL R12 G12 + 0x5C341600, // 0051 MOVE R13 R11 + 0x7C300200, // 0052 CALL R12 1 + 0x24301913, // 0053 GT R12 R12 K19 + 0x78320005, // 0054 JMPF R12 #005B + 0x8C300105, // 0055 GETMET R12 R0 K5 + 0x60380018, // 0056 GETGBL R14 G24 + 0x583C0014, // 0057 LDCONST R15 K20 + 0x5C401600, // 0058 MOVE R16 R11 + 0x7C380400, // 0059 CALL R14 2 + 0x7C300400, // 005A CALL R12 2 0x7001FFF1, // 005B JMP #004E - 0x582C0004, // 005C LDCONST R11 K4 - 0xAC2C0200, // 005D CATCH R11 1 0 + 0x58280004, // 005C LDCONST R10 K4 + 0xAC280200, // 005D CATCH R10 1 0 0xB0080000, // 005E RAISE 2 R0 R0 - 0x8C2C0114, // 005F GETMET R11 R0 K20 - 0x5C340200, // 0060 MOVE R13 R1 - 0x5C380400, // 0061 MOVE R14 R2 - 0x5C3C1200, // 0062 MOVE R15 R9 - 0x7C2C0800, // 0063 CALL R11 4 + 0x8C280115, // 005F GETMET R10 R0 K21 + 0x5C300200, // 0060 MOVE R12 R1 + 0x5C340400, // 0061 MOVE R13 R2 + 0x5C381000, // 0062 MOVE R14 R8 + 0x7C280800, // 0063 CALL R10 4 0x70020010, // 0064 JMP #0076 - 0x60280010, // 0065 GETGBL R10 G16 - 0x882C1115, // 0066 GETMBR R11 R8 K21 - 0x7C280200, // 0067 CALL R10 1 + 0x60240010, // 0065 GETGBL R9 G16 + 0x88280F16, // 0066 GETMBR R10 R7 K22 + 0x7C240200, // 0067 CALL R9 1 0xA8020009, // 0068 EXBLK 0 #0073 - 0x5C2C1400, // 0069 MOVE R11 R10 - 0x7C2C0000, // 006A CALL R11 0 - 0x8C300116, // 006B GETMET R12 R0 K22 - 0x60380018, // 006C GETGBL R14 G24 - 0x583C0017, // 006D LDCONST R15 K23 - 0x5C400200, // 006E MOVE R16 R1 - 0x5C441600, // 006F MOVE R17 R11 - 0x7C380600, // 0070 CALL R14 3 - 0x7C300400, // 0071 CALL R12 2 + 0x5C281200, // 0069 MOVE R10 R9 + 0x7C280000, // 006A CALL R10 0 + 0x8C2C0117, // 006B GETMET R11 R0 K23 + 0x60340018, // 006C GETGBL R13 G24 + 0x58380018, // 006D LDCONST R14 K24 + 0x5C3C0200, // 006E MOVE R15 R1 + 0x5C401400, // 006F MOVE R16 R10 + 0x7C340600, // 0070 CALL R13 3 + 0x7C2C0400, // 0071 CALL R11 2 0x7001FFF5, // 0072 JMP #0069 - 0x58280004, // 0073 LDCONST R10 K4 - 0xAC280200, // 0074 CATCH R10 1 0 + 0x58240004, // 0073 LDCONST R9 K4 + 0xAC240200, // 0074 CATCH R9 1 0 0xB0080000, // 0075 RAISE 2 R0 R0 - 0x8C280105, // 0076 GETMET R10 R0 K5 - 0x58300018, // 0077 LDCONST R12 K24 - 0x7C280400, // 0078 CALL R10 2 - 0x8C280105, // 0079 GETMET R10 R0 K5 - 0x58300019, // 007A LDCONST R12 K25 - 0x7C280400, // 007B CALL R10 2 - 0x8C280105, // 007C GETMET R10 R0 K5 - 0x60300018, // 007D GETGBL R12 G24 - 0x5834001A, // 007E LDCONST R13 K26 - 0x5C380200, // 007F MOVE R14 R1 - 0x5C3C0200, // 0080 MOVE R15 R1 - 0x7C300600, // 0081 CALL R12 3 - 0x7C280400, // 0082 CALL R10 2 - 0x8C280105, // 0083 GETMET R10 R0 K5 - 0x58300019, // 0084 LDCONST R12 K25 - 0x7C280400, // 0085 CALL R10 2 - 0x80000000, // 0086 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: check_right_bracket -********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(current), - /* K1 */ be_nested_str_weak(type), - }), - be_str_weak(check_right_bracket), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x7C040200, // 0001 CALL R1 1 - 0x4C080000, // 0002 LDNIL R2 - 0x20080202, // 0003 NE R2 R1 R2 - 0x780A0003, // 0004 JMPF R2 #0009 - 0x88080301, // 0005 GETMBR R2 R1 K1 - 0x540E001C, // 0006 LDINT R3 29 - 0x1C080403, // 0007 EQ R2 R2 R3 - 0x740A0000, // 0008 JMPT R2 #000A - 0x50080001, // 0009 LDBOOL R2 0 1 - 0x50080200, // 000A LDBOOL R2 1 0 - 0x80040400, // 000B RET 1 R2 + 0x8C240119, // 0076 GETMET R9 R0 K25 + 0x7C240200, // 0077 CALL R9 1 + 0x8C240105, // 0078 GETMET R9 R0 K5 + 0x582C001A, // 0079 LDCONST R11 K26 + 0x7C240400, // 007A CALL R9 2 + 0x8C240105, // 007B GETMET R9 R0 K5 + 0x582C001B, // 007C LDCONST R11 K27 + 0x7C240400, // 007D CALL R9 2 + 0x8C240105, // 007E GETMET R9 R0 K5 + 0x602C0018, // 007F GETGBL R11 G24 + 0x5830001C, // 0080 LDCONST R12 K28 + 0x5C340200, // 0081 MOVE R13 R1 + 0x5C380200, // 0082 MOVE R14 R1 + 0x7C2C0600, // 0083 CALL R11 3 + 0x7C240400, // 0084 CALL R9 2 + 0x8C240105, // 0085 GETMET R9 R0 K5 + 0x582C001B, // 0086 LDCONST R11 K27 + 0x7C240400, // 0087 CALL R9 2 + 0x80000000, // 0088 RET 0 }) ) ); @@ -15366,6 +12844,272 @@ be_local_closure(class_SimpleDSLTranspiler_process_palette, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: _determine_function_return_type +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__determine_function_return_type, /* name */ + be_nested_proto( + 4, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(type), + /* K1 */ be_const_int(1), + /* K2 */ be_const_int(2), + }), + be_str_weak(_determine_function_return_type), + &be_const_str_solidified, + ( &(const binstruction[63]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x20080202, // 0001 NE R2 R1 R2 + 0x780A0039, // 0002 JMPF R2 #003D + 0x88080300, // 0003 GETMBR R2 R1 K0 + 0x540E0007, // 0004 LDINT R3 8 + 0x1C080403, // 0005 EQ R2 R2 R3 + 0x740A0003, // 0006 JMPT R2 #000B + 0x88080300, // 0007 GETMBR R2 R1 K0 + 0x540E0008, // 0008 LDINT R3 9 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0002, // 000A JMPF R2 #000E + 0x540A0008, // 000B LDINT R2 9 + 0x80040400, // 000C RET 1 R2 + 0x7002002E, // 000D JMP #003D + 0x88080300, // 000E GETMBR R2 R1 K0 + 0x540E0009, // 000F LDINT R3 10 + 0x1C080403, // 0010 EQ R2 R2 R3 + 0x740A0003, // 0011 JMPT R2 #0016 + 0x88080300, // 0012 GETMBR R2 R1 K0 + 0x540E000A, // 0013 LDINT R3 11 + 0x1C080403, // 0014 EQ R2 R2 R3 + 0x780A0002, // 0015 JMPF R2 #0019 + 0x540A000A, // 0016 LDINT R2 11 + 0x80040400, // 0017 RET 1 R2 + 0x70020023, // 0018 JMP #003D + 0x88080300, // 0019 GETMBR R2 R1 K0 + 0x540E0005, // 001A LDINT R3 6 + 0x1C080403, // 001B EQ R2 R2 R3 + 0x740A0003, // 001C JMPT R2 #0021 + 0x88080300, // 001D GETMBR R2 R1 K0 + 0x540E0006, // 001E LDINT R3 7 + 0x1C080403, // 001F EQ R2 R2 R3 + 0x780A0002, // 0020 JMPF R2 #0024 + 0x540A0006, // 0021 LDINT R2 7 + 0x80040400, // 0022 RET 1 R2 + 0x70020018, // 0023 JMP #003D + 0x88080300, // 0024 GETMBR R2 R1 K0 + 0x1C080501, // 0025 EQ R2 R2 K1 + 0x740A0002, // 0026 JMPT R2 #002A + 0x88080300, // 0027 GETMBR R2 R1 K0 + 0x1C080502, // 0028 EQ R2 R2 K2 + 0x780A0001, // 0029 JMPF R2 #002C + 0x80060400, // 002A RET 1 K2 + 0x70020010, // 002B JMP #003D + 0x88080300, // 002C GETMBR R2 R1 K0 + 0x540E0003, // 002D LDINT R3 4 + 0x1C080403, // 002E EQ R2 R2 R3 + 0x780A0002, // 002F JMPF R2 #0033 + 0x540A000B, // 0030 LDINT R2 12 + 0x80040400, // 0031 RET 1 R2 + 0x70020009, // 0032 JMP #003D + 0x88080300, // 0033 GETMBR R2 R1 K0 + 0x540E0004, // 0034 LDINT R3 5 + 0x1C080403, // 0035 EQ R2 R2 R3 + 0x740A0003, // 0036 JMPT R2 #003B + 0x88080300, // 0037 GETMBR R2 R1 K0 + 0x540E000D, // 0038 LDINT R3 14 + 0x1C080403, // 0039 EQ R2 R2 R3 + 0x780A0001, // 003A JMPF R2 #003D + 0x540A000B, // 003B LDINT R2 12 + 0x80040400, // 003C RET 1 R2 + 0x540A000B, // 003D LDINT R2 12 + 0x80040400, // 003E RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_right_paren +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_paren, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + }), + be_str_weak(check_right_paren), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0018, // 0006 LDINT R3 25 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x740A0000, // 0008 JMPT R2 #000A + 0x50080001, // 0009 LDBOOL R2 0 1 + 0x50080200, // 000A LDBOOL R2 1 0 + 0x80040400, // 000B RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence_assignment_generic +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic, /* name */ + be_nested_proto( + 17, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[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(next), + /* K4 */ be_nested_str_weak(symbol_table), + /* K5 */ be_nested_str_weak(contains), + /* K6 */ be_nested_str_weak(get), + /* K7 */ be_nested_str_weak(instance), + /* K8 */ be_nested_str_weak(_validate_single_parameter), + /* K9 */ be_nested_str_weak(error), + /* K10 */ 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), + /* K11 */ be_nested_str_weak(expect_assign), + /* K12 */ be_nested_str_weak(process_value), + /* K13 */ be_nested_str_weak(CONTEXT_PROPERTY), + /* K14 */ be_nested_str_weak(collect_inline_comment), + /* K15 */ be_nested_str_weak(get_reference), + /* K16 */ be_nested_str_weak(def_X20_X28engine_X29_X20_X25s_X2E_X25s_X20_X3D_X20_X25s_X20end), + /* K17 */ be_nested_str_weak(expr), + /* K18 */ be_nested_str_weak(add), + /* K19 */ be_nested_str_weak(_X25s_X25s_X2Epush_X28animation_X2Ecreate_assign_step_X28_X25s_X29_X29_X25s), + /* 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_sequence_assignment_generic), + &be_const_str_solidified, + ( &(const binstruction[92]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x7C0C0200, // 0001 CALL R3 1 + 0x8C100101, // 0002 GETMET R4 R0 K1 + 0x7C100200, // 0003 CALL R4 1 + 0x4C140000, // 0004 LDNIL R5 + 0x20100805, // 0005 NE R4 R4 R5 + 0x7812004B, // 0006 JMPF R4 #0053 + 0x8C100101, // 0007 GETMET R4 R0 K1 + 0x7C100200, // 0008 CALL R4 1 + 0x88100902, // 0009 GETMBR R4 R4 K2 + 0x54160020, // 000A LDINT R5 33 + 0x1C100805, // 000B EQ R4 R4 R5 + 0x78120045, // 000C JMPF R4 #0053 + 0x8C100103, // 000D GETMET R4 R0 K3 + 0x7C100200, // 000E CALL R4 1 + 0x8C100100, // 000F GETMET R4 R0 K0 + 0x7C100200, // 0010 CALL R4 1 + 0x88140104, // 0011 GETMBR R5 R0 K4 + 0x8C140B05, // 0012 GETMET R5 R5 K5 + 0x5C1C0600, // 0013 MOVE R7 R3 + 0x7C140400, // 0014 CALL R5 2 + 0x78160021, // 0015 JMPF R5 #0038 + 0x88140104, // 0016 GETMBR R5 R0 K4 + 0x8C140B06, // 0017 GETMET R5 R5 K6 + 0x5C1C0600, // 0018 MOVE R7 R3 + 0x7C140400, // 0019 CALL R5 2 + 0x4C180000, // 001A LDNIL R6 + 0x20180A06, // 001B NE R6 R5 R6 + 0x781A000C, // 001C JMPF R6 #002A + 0x88180B07, // 001D GETMBR R6 R5 K7 + 0x4C1C0000, // 001E LDNIL R7 + 0x20180C07, // 001F NE R6 R6 R7 + 0x781A0008, // 0020 JMPF R6 #002A + 0x60180005, // 0021 GETGBL R6 G5 + 0x881C0B07, // 0022 GETMBR R7 R5 K7 + 0x7C180200, // 0023 CALL R6 1 + 0x8C1C0108, // 0024 GETMET R7 R0 K8 + 0x5C240C00, // 0025 MOVE R9 R6 + 0x5C280800, // 0026 MOVE R10 R4 + 0x882C0B07, // 0027 GETMBR R11 R5 K7 + 0x7C1C0800, // 0028 CALL R7 4 + 0x7002000D, // 0029 JMP #0038 + 0x4C180000, // 002A LDNIL R6 + 0x20180A06, // 002B NE R6 R5 R6 + 0x781A000A, // 002C JMPF R6 #0038 + 0x88180B02, // 002D GETMBR R6 R5 K2 + 0x541E000C, // 002E LDINT R7 13 + 0x1C180C07, // 002F EQ R6 R6 R7 + 0x781A0006, // 0030 JMPF R6 #0038 + 0x8C180109, // 0031 GETMET R6 R0 K9 + 0x60200018, // 0032 GETGBL R8 G24 + 0x5824000A, // 0033 LDCONST R9 K10 + 0x5C280600, // 0034 MOVE R10 R3 + 0x7C200400, // 0035 CALL R8 2 + 0x7C180400, // 0036 CALL R6 2 + 0x80000C00, // 0037 RET 0 + 0x8C14010B, // 0038 GETMET R5 R0 K11 + 0x7C140200, // 0039 CALL R5 1 + 0x8C14010C, // 003A GETMET R5 R0 K12 + 0x881C010D, // 003B GETMBR R7 R0 K13 + 0x7C140400, // 003C CALL R5 2 + 0x8C18010E, // 003D GETMET R6 R0 K14 + 0x7C180200, // 003E CALL R6 1 + 0x881C0104, // 003F GETMBR R7 R0 K4 + 0x8C1C0F0F, // 0040 GETMET R7 R7 K15 + 0x5C240600, // 0041 MOVE R9 R3 + 0x7C1C0400, // 0042 CALL R7 2 + 0x60200018, // 0043 GETGBL R8 G24 + 0x58240010, // 0044 LDCONST R9 K16 + 0x5C280E00, // 0045 MOVE R10 R7 + 0x5C2C0800, // 0046 MOVE R11 R4 + 0x88300B11, // 0047 GETMBR R12 R5 K17 + 0x7C200800, // 0048 CALL R8 4 + 0x8C240112, // 0049 GETMET R9 R0 K18 + 0x602C0018, // 004A GETGBL R11 G24 + 0x58300013, // 004B LDCONST R12 K19 + 0x5C340200, // 004C MOVE R13 R1 + 0x5C380400, // 004D MOVE R14 R2 + 0x5C3C1000, // 004E MOVE R15 R8 + 0x5C400C00, // 004F MOVE R16 R6 + 0x7C2C0A00, // 0050 CALL R11 5 + 0x7C240400, // 0051 CALL R9 2 + 0x70020007, // 0052 JMP #005B + 0x8C100109, // 0053 GETMET R4 R0 K9 + 0x60180018, // 0054 GETGBL R6 G24 + 0x581C0014, // 0055 LDCONST R7 K20 + 0x5C200600, // 0056 MOVE R8 R3 + 0x7C180400, // 0057 CALL R6 2 + 0x7C100400, // 0058 CALL R4 2 + 0x8C100115, // 0059 GETMET R4 R0 K21 + 0x7C100200, // 005A CALL R4 1 + 0x80000000, // 005B RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: process_multiplicative_expression ********************************************************************/ @@ -15488,27 +13232,1354 @@ be_local_closure(class_SimpleDSLTranspiler_peek, /* name */ 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), + /* K0 */ be_nested_str_weak(pull_lexer), + /* K1 */ be_nested_str_weak(peek_ahead), + /* K2 */ be_const_int(2), }), be_str_weak(peek), &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ + ( &(const binstruction[ 5]) { /* 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 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x580C0002, // 0002 LDCONST R3 K2 + 0x7C040400, // 0003 CALL R1 2 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_init, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(pull_lexer), + /* K2 */ be_nested_str_weak(output), + /* K3 */ be_nested_str_weak(warnings), + /* K4 */ be_nested_str_weak(run_statements), + /* K5 */ be_nested_str_weak(strip_initialized), + /* K6 */ be_nested_str_weak(symbol_table), + /* K7 */ be_nested_str_weak(_symbol_table), + /* K8 */ be_nested_str_weak(indent_level), + /* K9 */ be_const_int(0), + /* K10 */ be_nested_str_weak(has_template_calls), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[20]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x90020201, // 0001 SETMBR R0 K1 R1 + 0x600C0012, // 0002 GETGBL R3 G18 + 0x7C0C0000, // 0003 CALL R3 0 + 0x90020403, // 0004 SETMBR R0 K2 R3 + 0x600C0012, // 0005 GETGBL R3 G18 + 0x7C0C0000, // 0006 CALL R3 0 + 0x90020603, // 0007 SETMBR R0 K3 R3 + 0x600C0012, // 0008 GETGBL R3 G18 + 0x7C0C0000, // 0009 CALL R3 0 + 0x90020803, // 000A SETMBR R0 K4 R3 + 0x500C0000, // 000B LDBOOL R3 0 0 + 0x90020A03, // 000C SETMBR R0 K5 R3 + 0x8C0C0507, // 000D GETMET R3 R2 K7 + 0x7C0C0200, // 000E CALL R3 1 + 0x90020C03, // 000F SETMBR R0 K6 R3 + 0x90021109, // 0010 SETMBR R0 K8 K9 + 0x500C0000, // 0011 LDBOOL R3 0 0 + 0x90021403, // 0012 SETMBR R0 K10 R3 + 0x80000000, // 0013 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_time_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_time_value, /* name */ + be_nested_proto( + 8, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[15]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(value), + /* K3 */ be_nested_str_weak(next), + /* K4 */ be_nested_str_weak(convert_time_to_ms), + /* K5 */ be_const_int(2), + /* K6 */ be_const_int(1), + /* K7 */ be_nested_str_weak(_validate_object_reference), + /* K8 */ be_nested_str_weak(duration), + /* K9 */ be_nested_str_weak(process_primary_expression), + /* K10 */ be_nested_str_weak(CONTEXT_TIME), + /* K11 */ be_nested_str_weak(expr), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expected_X20time_X20value), + /* K14 */ be_nested_str_weak(1000), + }), + be_str_weak(process_time_value), + &be_const_str_solidified, + ( &(const binstruction[63]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A000D, // 0004 JMPF R2 #0013 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0004, // 0006 LDINT R3 5 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0009, // 0008 JMPF R2 #0013 + 0x88080302, // 0009 GETMBR R2 R1 K2 + 0x8C0C0103, // 000A GETMET R3 R0 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0x600C0008, // 000C GETGBL R3 G8 + 0x8C100104, // 000D GETMET R4 R0 K4 + 0x5C180400, // 000E MOVE R6 R2 + 0x7C100400, // 000F CALL R4 2 + 0x7C0C0200, // 0010 CALL R3 1 + 0x80040600, // 0011 RET 1 R3 + 0x7002002A, // 0012 JMP #003E + 0x4C080000, // 0013 LDNIL R2 + 0x20080202, // 0014 NE R2 R1 R2 + 0x780A0010, // 0015 JMPF R2 #0027 + 0x88080301, // 0016 GETMBR R2 R1 K1 + 0x1C080505, // 0017 EQ R2 R2 K5 + 0x780A000D, // 0018 JMPF R2 #0027 + 0x88080302, // 0019 GETMBR R2 R1 K2 + 0x8C0C0103, // 001A GETMET R3 R0 K3 + 0x7C0C0200, // 001B CALL R3 1 + 0x600C0008, // 001C GETGBL R3 G8 + 0x60100009, // 001D GETGBL R4 G9 + 0x6014000A, // 001E GETGBL R5 G10 + 0x5C180400, // 001F MOVE R6 R2 + 0x7C140200, // 0020 CALL R5 1 + 0x7C100200, // 0021 CALL R4 1 + 0x541603E7, // 0022 LDINT R5 1000 + 0x08100805, // 0023 MUL R4 R4 R5 + 0x7C0C0200, // 0024 CALL R3 1 + 0x80040600, // 0025 RET 1 R3 + 0x70020016, // 0026 JMP #003E + 0x4C080000, // 0027 LDNIL R2 + 0x20080202, // 0028 NE R2 R1 R2 + 0x780A000F, // 0029 JMPF R2 #003A + 0x88080301, // 002A GETMBR R2 R1 K1 + 0x1C080506, // 002B EQ R2 R2 K6 + 0x780A000C, // 002C JMPF R2 #003A + 0x88080302, // 002D GETMBR R2 R1 K2 + 0x8C0C0107, // 002E GETMET R3 R0 K7 + 0x5C140400, // 002F MOVE R5 R2 + 0x58180008, // 0030 LDCONST R6 K8 + 0x7C0C0600, // 0031 CALL R3 3 + 0x8C0C0109, // 0032 GETMET R3 R0 K9 + 0x8814010A, // 0033 GETMBR R5 R0 K10 + 0x50180200, // 0034 LDBOOL R6 1 0 + 0x501C0000, // 0035 LDBOOL R7 0 0 + 0x7C0C0800, // 0036 CALL R3 4 + 0x8810070B, // 0037 GETMBR R4 R3 K11 + 0x80040800, // 0038 RET 1 R4 + 0x70020003, // 0039 JMP #003E + 0x8C08010C, // 003A GETMET R2 R0 K12 + 0x5810000D, // 003B LDCONST R4 K13 + 0x7C080400, // 003C CALL R2 2 + 0x80061C00, // 003D RET 1 K14 + 0x80000000, // 003E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_assign +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_assign, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X3D_X27), + }), + be_str_weak(expect_assign), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0007, // 0006 LDINT R3 8 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: 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_percentage_value +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_percentage_value, /* name */ + be_nested_proto( + 7, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(value), + /* K3 */ be_nested_str_weak(next), + /* K4 */ be_const_int(0), + /* K5 */ be_const_int(2), + /* K6 */ be_nested_str_weak(error), + /* K7 */ be_nested_str_weak(Expected_X20percentage_X20value), + }), + be_str_weak(process_percentage_value), + &be_const_str_solidified, + ( &(const binstruction[47]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0013, // 0004 JMPF R2 #0019 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E0005, // 0006 LDINT R3 6 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A000F, // 0008 JMPF R2 #0019 + 0x88080302, // 0009 GETMBR R2 R1 K2 + 0x8C0C0103, // 000A GETMET R3 R0 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0x600C000A, // 000C GETGBL R3 G10 + 0x5411FFFD, // 000D LDINT R4 -2 + 0x40120804, // 000E CONNECT R4 K4 R4 + 0x94100404, // 000F GETIDX R4 R2 R4 + 0x7C0C0200, // 0010 CALL R3 1 + 0x60100009, // 0011 GETGBL R4 G9 + 0x541600FE, // 0012 LDINT R5 255 + 0x08140605, // 0013 MUL R5 R3 R5 + 0x541A0063, // 0014 LDINT R6 100 + 0x0C140A06, // 0015 DIV R5 R5 R6 + 0x7C100200, // 0016 CALL R4 1 + 0x80040800, // 0017 RET 1 R4 + 0x70020014, // 0018 JMP #002E + 0x4C080000, // 0019 LDNIL R2 + 0x20080202, // 001A NE R2 R1 R2 + 0x780A000C, // 001B JMPF R2 #0029 + 0x88080301, // 001C GETMBR R2 R1 K1 + 0x1C080505, // 001D EQ R2 R2 K5 + 0x780A0009, // 001E JMPF R2 #0029 + 0x88080302, // 001F GETMBR R2 R1 K2 + 0x8C0C0103, // 0020 GETMET R3 R0 K3 + 0x7C0C0200, // 0021 CALL R3 1 + 0x600C0009, // 0022 GETGBL R3 G9 + 0x6010000A, // 0023 GETGBL R4 G10 + 0x5C140400, // 0024 MOVE R5 R2 + 0x7C100200, // 0025 CALL R4 1 + 0x7C0C0200, // 0026 CALL R3 1 + 0x80040600, // 0027 RET 1 R3 + 0x70020004, // 0028 JMP #002E + 0x8C080106, // 0029 GETMET R2 R0 K6 + 0x58100007, // 002A LDCONST R4 K7 + 0x7C080400, // 002B CALL R2 2 + 0x540A00FE, // 002C LDINT R2 255 + 0x80040400, // 002D RET 1 R2 + 0x80000000, // 002E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_right_brace +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_brace, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + }), + be_str_weak(check_right_brace), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001A, // 0006 LDINT R3 27 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x740A0000, // 0008 JMPT R2 #000A + 0x50080001, // 0009 LDBOOL R2 0 1 + 0x50080200, // 000A LDBOOL R2 1 0 + 0x80040400, // 000B RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _add_typed_parameter_to_symbol_table +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__add_typed_parameter_to_symbol_table, /* name */ + be_nested_proto( + 8, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(color), + /* K1 */ be_nested_str_weak(create_color), + /* K2 */ be_nested_str_weak(palette), + /* K3 */ be_nested_str_weak(create_palette), + /* K4 */ be_nested_str_weak(animation), + /* K5 */ be_nested_str_weak(create_animation), + /* K6 */ be_nested_str_weak(value_provider), + /* K7 */ be_nested_str_weak(create_value_provider), + /* K8 */ be_nested_str_weak(create_variable), + }), + be_str_weak(_add_typed_parameter_to_symbol_table), + &be_const_str_solidified, + ( &(const binstruction[32]) { /* code */ + 0x1C100700, // 0000 EQ R4 R3 K0 + 0x78120004, // 0001 JMPF R4 #0007 + 0x8C100301, // 0002 GETMET R4 R1 K1 + 0x5C180400, // 0003 MOVE R6 R2 + 0x4C1C0000, // 0004 LDNIL R7 + 0x7C100600, // 0005 CALL R4 3 + 0x70020017, // 0006 JMP #001F + 0x1C100702, // 0007 EQ R4 R3 K2 + 0x78120004, // 0008 JMPF R4 #000E + 0x8C100303, // 0009 GETMET R4 R1 K3 + 0x5C180400, // 000A MOVE R6 R2 + 0x4C1C0000, // 000B LDNIL R7 + 0x7C100600, // 000C CALL R4 3 + 0x70020010, // 000D JMP #001F + 0x1C100704, // 000E EQ R4 R3 K4 + 0x78120004, // 000F JMPF R4 #0015 + 0x8C100305, // 0010 GETMET R4 R1 K5 + 0x5C180400, // 0011 MOVE R6 R2 + 0x4C1C0000, // 0012 LDNIL R7 + 0x7C100600, // 0013 CALL R4 3 + 0x70020009, // 0014 JMP #001F + 0x1C100706, // 0015 EQ R4 R3 K6 + 0x78120004, // 0016 JMPF R4 #001C + 0x8C100307, // 0017 GETMET R4 R1 K7 + 0x5C180400, // 0018 MOVE R6 R2 + 0x4C1C0000, // 0019 LDNIL R7 + 0x7C100600, // 001A CALL R4 3 + 0x70020002, // 001B JMP #001F + 0x8C100308, // 001C GETMET R4 R1 K8 + 0x5C180400, // 001D MOVE R6 R2 + 0x7C100400, // 001E CALL R4 2 + 0x80000000, // 001F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_property_assignment +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_property_assignment, /* name */ + be_nested_proto( + 14, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[31]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_identifier), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(log), + /* K4 */ be_nested_str_weak(process_function_arguments), + /* K5 */ be_nested_str_weak(collect_inline_comment), + /* K6 */ be_nested_str_weak(process_log_call), + /* K7 */ be_nested_str_weak(standalone), + /* K8 */ be_nested_str_weak(add), + /* K9 */ be_nested_str_weak(symbol_table), + /* K10 */ be_nested_str_weak(get), + /* K11 */ be_nested_str_weak(), + /* K12 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K13 */ be_nested_str_weak(engine), + /* K14 */ be_nested_str_weak(_X25s_template_X28_X25s_X29_X25s), + /* K15 */ be_nested_str_weak(has_template_calls), + /* K16 */ be_nested_str_weak(error), + /* K17 */ be_nested_str_weak(Standalone_X20function_X20calls_X20are_X20only_X20supported_X20for_X20templates_X2E_X20_X27_X25s_X27_X20is_X20not_X20a_X20template_X2E), + /* K18 */ be_nested_str_weak(skip_statement), + /* K19 */ be_nested_str_weak(next), + /* K20 */ be_nested_str_weak(contains), + /* K21 */ be_nested_str_weak(instance), + /* K22 */ be_nested_str_weak(_validate_single_parameter), + /* K23 */ 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), + /* K24 */ be_nested_str_weak(expect_assign), + /* K25 */ be_nested_str_weak(process_value), + /* K26 */ be_nested_str_weak(CONTEXT_PROPERTY), + /* K27 */ be_nested_str_weak(get_reference), + /* K28 */ be_nested_str_weak(_X25s_X2E_X25s_X20_X3D_X20_X25s_X25s), + /* K29 */ be_nested_str_weak(expr), + /* K30 */ be_nested_str_weak(Expected_X20property_X20assignment_X20for_X20_X27_X25s_X27_X20but_X20found_X20no_X20dot), + }), + be_str_weak(process_property_assignment), + &be_const_str_solidified, + ( &(const binstruction[156]) { /* 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 + 0x780A0041, // 0006 JMPF R2 #0049 + 0x8C080101, // 0007 GETMET R2 R0 K1 + 0x7C080200, // 0008 CALL R2 1 + 0x88080502, // 0009 GETMBR R2 R2 K2 + 0x540E0017, // 000A LDINT R3 24 + 0x1C080403, // 000B EQ R2 R2 R3 + 0x780A003B, // 000C JMPF R2 #0049 + 0x1C080303, // 000D EQ R2 R1 K3 + 0x780A000D, // 000E JMPF R2 #001D + 0x8C080104, // 000F GETMET R2 R0 K4 + 0x50100000, // 0010 LDBOOL R4 0 0 + 0x7C080400, // 0011 CALL R2 2 + 0x8C0C0105, // 0012 GETMET R3 R0 K5 + 0x7C0C0200, // 0013 CALL R3 1 + 0x8C100106, // 0014 GETMET R4 R0 K6 + 0x5C180400, // 0015 MOVE R6 R2 + 0x581C0007, // 0016 LDCONST R7 K7 + 0x5C200600, // 0017 MOVE R8 R3 + 0x7C100800, // 0018 CALL R4 4 + 0x8C140108, // 0019 GETMET R5 R0 K8 + 0x5C1C0800, // 001A MOVE R7 R4 + 0x7C140400, // 001B CALL R5 2 + 0x80000A00, // 001C RET 0 + 0x88080109, // 001D GETMBR R2 R0 K9 + 0x8C08050A, // 001E GETMET R2 R2 K10 + 0x5C100200, // 001F MOVE R4 R1 + 0x7C080400, // 0020 CALL R2 2 + 0x4C0C0000, // 0021 LDNIL R3 + 0x200C0403, // 0022 NE R3 R2 R3 + 0x780E001B, // 0023 JMPF R3 #0040 + 0x880C0502, // 0024 GETMBR R3 R2 K2 + 0x5412000D, // 0025 LDINT R4 14 + 0x1C0C0604, // 0026 EQ R3 R3 R4 + 0x780E0017, // 0027 JMPF R3 #0040 + 0x8C0C0104, // 0028 GETMET R3 R0 K4 + 0x50140000, // 0029 LDBOOL R5 0 0 + 0x7C0C0400, // 002A CALL R3 2 + 0x2010070B, // 002B NE R4 R3 K11 + 0x78120004, // 002C JMPF R4 #0032 + 0x60100018, // 002D GETGBL R4 G24 + 0x5814000C, // 002E LDCONST R5 K12 + 0x5C180600, // 002F MOVE R6 R3 + 0x7C100400, // 0030 CALL R4 2 + 0x70020000, // 0031 JMP #0033 + 0x5810000D, // 0032 LDCONST R4 K13 + 0x8C140105, // 0033 GETMET R5 R0 K5 + 0x7C140200, // 0034 CALL R5 1 + 0x8C180108, // 0035 GETMET R6 R0 K8 + 0x60200018, // 0036 GETGBL R8 G24 + 0x5824000E, // 0037 LDCONST R9 K14 + 0x5C280200, // 0038 MOVE R10 R1 + 0x5C2C0800, // 0039 MOVE R11 R4 + 0x5C300A00, // 003A MOVE R12 R5 + 0x7C200800, // 003B CALL R8 4 + 0x7C180400, // 003C CALL R6 2 + 0x50180200, // 003D LDBOOL R6 1 0 + 0x90021E06, // 003E SETMBR R0 K15 R6 + 0x70020007, // 003F JMP #0048 + 0x8C0C0110, // 0040 GETMET R3 R0 K16 + 0x60140018, // 0041 GETGBL R5 G24 + 0x58180011, // 0042 LDCONST R6 K17 + 0x5C1C0200, // 0043 MOVE R7 R1 + 0x7C140400, // 0044 CALL R5 2 + 0x7C0C0400, // 0045 CALL R3 2 + 0x8C0C0112, // 0046 GETMET R3 R0 K18 + 0x7C0C0200, // 0047 CALL R3 1 + 0x80000600, // 0048 RET 0 + 0x8C080101, // 0049 GETMET R2 R0 K1 + 0x7C080200, // 004A CALL R2 1 + 0x4C0C0000, // 004B LDNIL R3 + 0x20080403, // 004C NE R2 R2 R3 + 0x780A0044, // 004D JMPF R2 #0093 + 0x8C080101, // 004E GETMET R2 R0 K1 + 0x7C080200, // 004F CALL R2 1 + 0x88080502, // 0050 GETMBR R2 R2 K2 + 0x540E0020, // 0051 LDINT R3 33 + 0x1C080403, // 0052 EQ R2 R2 R3 + 0x780A003E, // 0053 JMPF R2 #0093 + 0x8C080113, // 0054 GETMET R2 R0 K19 + 0x7C080200, // 0055 CALL R2 1 + 0x8C080100, // 0056 GETMET R2 R0 K0 + 0x7C080200, // 0057 CALL R2 1 + 0x880C0109, // 0058 GETMBR R3 R0 K9 + 0x8C0C0714, // 0059 GETMET R3 R3 K20 + 0x5C140200, // 005A MOVE R5 R1 + 0x7C0C0400, // 005B CALL R3 2 + 0x780E0020, // 005C JMPF R3 #007E + 0x880C0109, // 005D GETMBR R3 R0 K9 + 0x8C0C070A, // 005E GETMET R3 R3 K10 + 0x5C140200, // 005F MOVE R5 R1 + 0x7C0C0400, // 0060 CALL R3 2 + 0x4C100000, // 0061 LDNIL R4 + 0x20100604, // 0062 NE R4 R3 R4 + 0x7812000C, // 0063 JMPF R4 #0071 + 0x88100715, // 0064 GETMBR R4 R3 K21 + 0x4C140000, // 0065 LDNIL R5 + 0x20100805, // 0066 NE R4 R4 R5 + 0x78120008, // 0067 JMPF R4 #0071 + 0x60100005, // 0068 GETGBL R4 G5 + 0x88140715, // 0069 GETMBR R5 R3 K21 + 0x7C100200, // 006A CALL R4 1 + 0x8C140116, // 006B GETMET R5 R0 K22 + 0x5C1C0800, // 006C MOVE R7 R4 + 0x5C200400, // 006D MOVE R8 R2 + 0x88240715, // 006E GETMBR R9 R3 K21 + 0x7C140800, // 006F CALL R5 4 + 0x7002000C, // 0070 JMP #007E + 0x4C100000, // 0071 LDNIL R4 + 0x20100604, // 0072 NE R4 R3 R4 + 0x78120009, // 0073 JMPF R4 #007E + 0x88100702, // 0074 GETMBR R4 R3 K2 + 0x5416000C, // 0075 LDINT R5 13 + 0x1C100805, // 0076 EQ R4 R4 R5 + 0x78120005, // 0077 JMPF R4 #007E + 0x8C100110, // 0078 GETMET R4 R0 K16 + 0x60180018, // 0079 GETGBL R6 G24 + 0x581C0017, // 007A LDCONST R7 K23 + 0x5C200200, // 007B MOVE R8 R1 + 0x7C180400, // 007C CALL R6 2 + 0x7C100400, // 007D CALL R4 2 + 0x8C0C0118, // 007E GETMET R3 R0 K24 + 0x7C0C0200, // 007F CALL R3 1 + 0x8C0C0119, // 0080 GETMET R3 R0 K25 + 0x8814011A, // 0081 GETMBR R5 R0 K26 + 0x7C0C0400, // 0082 CALL R3 2 + 0x8C100105, // 0083 GETMET R4 R0 K5 + 0x7C100200, // 0084 CALL R4 1 + 0x88140109, // 0085 GETMBR R5 R0 K9 + 0x8C140B1B, // 0086 GETMET R5 R5 K27 + 0x5C1C0200, // 0087 MOVE R7 R1 + 0x7C140400, // 0088 CALL R5 2 + 0x8C180108, // 0089 GETMET R6 R0 K8 + 0x60200018, // 008A GETGBL R8 G24 + 0x5824001C, // 008B LDCONST R9 K28 + 0x5C280A00, // 008C MOVE R10 R5 + 0x5C2C0400, // 008D MOVE R11 R2 + 0x8830071D, // 008E GETMBR R12 R3 K29 + 0x5C340800, // 008F MOVE R13 R4 + 0x7C200A00, // 0090 CALL R8 5 + 0x7C180400, // 0091 CALL R6 2 + 0x70020007, // 0092 JMP #009B + 0x8C080110, // 0093 GETMET R2 R0 K16 + 0x60100018, // 0094 GETGBL R4 G24 + 0x5814001E, // 0095 LDCONST R5 K30 + 0x5C180200, // 0096 MOVE R6 R1 + 0x7C100400, // 0097 CALL R4 2 + 0x7C080400, // 0098 CALL R2 2 + 0x8C080112, // 0099 GETMET R2 R0 K18 + 0x7C080200, // 009A CALL R2 1 + 0x80000000, // 009B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_color_provider_factory_exists +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(get), + /* K2 */ be_nested_str_weak(type), + }), + be_str_weak(_validate_color_provider_factory_exists), + &be_const_str_solidified, + ( &(const binstruction[14]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x4C0C0000, // 0004 LDNIL R3 + 0x200C0403, // 0005 NE R3 R2 R3 + 0x780E0003, // 0006 JMPF R3 #000B + 0x880C0502, // 0007 GETMBR R3 R2 K2 + 0x54120009, // 0008 LDINT R4 10 + 0x1C0C0604, // 0009 EQ R3 R3 R4 + 0x740E0000, // 000A JMPT R3 #000C + 0x500C0001, // 000B LDBOOL R3 0 1 + 0x500C0200, // 000C LDBOOL R3 1 0 + 0x80040600, // 000D RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_event_handler +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_event_handler, /* name */ + be_nested_proto( + 13, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[22]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(current), + /* K3 */ be_nested_str_weak(line), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(_X7B_X7D), + /* K6 */ be_nested_str_weak(type), + /* K7 */ be_nested_str_weak(process_event_parameters), + /* K8 */ be_nested_str_weak(expect_colon), + /* K9 */ be_nested_str_weak(event_handler__X25s__X25s), + /* K10 */ be_nested_str_weak(add), + /* K11 */ be_nested_str_weak(def_X20_X25s_X28event_data_X29), + /* K12 */ be_nested_str_weak(value), + /* K13 */ be_nested_str_weak(interrupt), + /* K14 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_current_X28_X29), + /* K15 */ be_nested_str_weak(_X20_X20engine_X2Einterrupt_animation_X28_X22_X25s_X22_X29), + /* K16 */ be_nested_str_weak(process_value), + /* K17 */ be_nested_str_weak(CONTEXT_ANIMATION), + /* K18 */ be_nested_str_weak(_X20_X20engine_X2Eadd_X28_X25s_X29), + /* K19 */ be_nested_str_weak(expr), + /* K20 */ be_nested_str_weak(end), + /* K21 */ be_nested_str_weak(animation_X2Eregister_event_handler_X28_X22_X25s_X22_X2C_X20_X25s_X2C_X200_X2C_X20nil_X2C_X20_X25s_X29), + }), + be_str_weak(process_event_handler), + &be_const_str_solidified, + ( &(const binstruction[91]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x8C040101, // 0002 GETMET R1 R0 K1 + 0x7C040200, // 0003 CALL R1 1 + 0x8C080102, // 0004 GETMET R2 R0 K2 + 0x7C080200, // 0005 CALL R2 1 + 0x4C0C0000, // 0006 LDNIL R3 + 0x20080403, // 0007 NE R2 R2 R3 + 0x780A0003, // 0008 JMPF R2 #000D + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x88080503, // 000B GETMBR R2 R2 K3 + 0x70020000, // 000C JMP #000E + 0x58080004, // 000D LDCONST R2 K4 + 0x580C0005, // 000E LDCONST R3 K5 + 0x8C100102, // 000F GETMET R4 R0 K2 + 0x7C100200, // 0010 CALL R4 1 + 0x4C140000, // 0011 LDNIL R5 + 0x20100805, // 0012 NE R4 R4 R5 + 0x78120008, // 0013 JMPF R4 #001D + 0x8C100102, // 0014 GETMET R4 R0 K2 + 0x7C100200, // 0015 CALL R4 1 + 0x88100906, // 0016 GETMBR R4 R4 K6 + 0x54160017, // 0017 LDINT R5 24 + 0x1C100805, // 0018 EQ R4 R4 R5 + 0x78120002, // 0019 JMPF R4 #001D + 0x8C100107, // 001A GETMET R4 R0 K7 + 0x7C100200, // 001B CALL R4 1 + 0x5C0C0800, // 001C MOVE R3 R4 + 0x8C100108, // 001D GETMET R4 R0 K8 + 0x7C100200, // 001E CALL R4 1 + 0x60100018, // 001F GETGBL R4 G24 + 0x58140009, // 0020 LDCONST R5 K9 + 0x5C180200, // 0021 MOVE R6 R1 + 0x5C1C0400, // 0022 MOVE R7 R2 + 0x7C100600, // 0023 CALL R4 3 + 0x8C14010A, // 0024 GETMET R5 R0 K10 + 0x601C0018, // 0025 GETGBL R7 G24 + 0x5820000B, // 0026 LDCONST R8 K11 + 0x5C240800, // 0027 MOVE R9 R4 + 0x7C1C0400, // 0028 CALL R7 2 + 0x7C140400, // 0029 CALL R5 2 + 0x8C140102, // 002A GETMET R5 R0 K2 + 0x7C140200, // 002B CALL R5 1 + 0x4C180000, // 002C LDNIL R6 + 0x20180A06, // 002D NE R6 R5 R6 + 0x781A001F, // 002E JMPF R6 #004F + 0x88180B06, // 002F GETMBR R6 R5 K6 + 0x1C180D04, // 0030 EQ R6 R6 K4 + 0x781A0013, // 0031 JMPF R6 #0046 + 0x88180B0C, // 0032 GETMBR R6 R5 K12 + 0x1C180D0D, // 0033 EQ R6 R6 K13 + 0x781A0010, // 0034 JMPF R6 #0046 + 0x8C180100, // 0035 GETMET R6 R0 K0 + 0x7C180200, // 0036 CALL R6 1 + 0x8C180101, // 0037 GETMET R6 R0 K1 + 0x7C180200, // 0038 CALL R6 1 + 0x1C1C0D02, // 0039 EQ R7 R6 K2 + 0x781E0003, // 003A JMPF R7 #003F + 0x8C1C010A, // 003B GETMET R7 R0 K10 + 0x5824000E, // 003C LDCONST R9 K14 + 0x7C1C0400, // 003D CALL R7 2 + 0x70020005, // 003E JMP #0045 + 0x8C1C010A, // 003F GETMET R7 R0 K10 + 0x60240018, // 0040 GETGBL R9 G24 + 0x5828000F, // 0041 LDCONST R10 K15 + 0x5C2C0C00, // 0042 MOVE R11 R6 + 0x7C240400, // 0043 CALL R9 2 + 0x7C1C0400, // 0044 CALL R7 2 + 0x70020008, // 0045 JMP #004F + 0x8C180110, // 0046 GETMET R6 R0 K16 + 0x88200111, // 0047 GETMBR R8 R0 K17 + 0x7C180400, // 0048 CALL R6 2 + 0x8C1C010A, // 0049 GETMET R7 R0 K10 + 0x60240018, // 004A GETGBL R9 G24 + 0x58280012, // 004B LDCONST R10 K18 + 0x882C0D13, // 004C GETMBR R11 R6 K19 + 0x7C240400, // 004D CALL R9 2 + 0x7C1C0400, // 004E CALL R7 2 + 0x8C18010A, // 004F GETMET R6 R0 K10 + 0x58200014, // 0050 LDCONST R8 K20 + 0x7C180400, // 0051 CALL R6 2 + 0x8C18010A, // 0052 GETMET R6 R0 K10 + 0x60200018, // 0053 GETGBL R8 G24 + 0x58240015, // 0054 LDCONST R9 K21 + 0x5C280200, // 0055 MOVE R10 R1 + 0x5C2C0800, // 0056 MOVE R11 R4 + 0x5C300600, // 0057 MOVE R12 R3 + 0x7C200800, // 0058 CALL R8 4 + 0x7C180400, // 0059 CALL R6 2 + 0x80000000, // 005A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_colon +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_colon, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X3A_X27), + }), + be_str_weak(expect_colon), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001F, // 0006 LDINT R3 32 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: check_right_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_check_right_bracket, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + }), + be_str_weak(check_right_bracket), + &be_const_str_solidified, + ( &(const binstruction[12]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0003, // 0004 JMPF R2 #0009 + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001C, // 0006 LDINT R3 29 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x740A0000, // 0008 JMPT R2 #000A + 0x50080001, // 0009 LDBOOL R2 0 1 + 0x50080200, // 000A LDBOOL R2 1 0 + 0x80040400, // 000B RET 1 R2 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: generate_default_strip_initialization +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(strip_initialized), + /* K1 */ be_nested_str_weak(add), + /* K2 */ be_nested_str_weak(_X23_X20Auto_X2Dgenerated_X20strip_X20initialization_X20_X28using_X20Tasmota_X20configuration_X29), + /* K3 */ be_nested_str_weak(var_X20engine_X20_X3D_X20animation_X2Einit_strip_X28_X29), + /* K4 */ be_nested_str_weak(), + }), + be_str_weak(generate_default_strip_initialization), + &be_const_str_solidified, + ( &(const binstruction[15]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x78060000, // 0001 JMPF R1 #0003 + 0x80000200, // 0002 RET 0 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x580C0002, // 0004 LDCONST R3 K2 + 0x7C040400, // 0005 CALL R1 2 + 0x8C040101, // 0006 GETMET R1 R0 K1 + 0x580C0003, // 0007 LDCONST R3 K3 + 0x7C040400, // 0008 CALL R1 2 + 0x8C040101, // 0009 GETMET R1 R0 K1 + 0x580C0004, // 000A LDCONST R3 K4 + 0x7C040400, // 000B CALL R1 2 + 0x50040200, // 000C LDBOOL R1 1 0 + 0x90020001, // 000D SETMBR R0 K0 R1 + 0x80000000, // 000E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _validate_template_parameter_name +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__validate_template_parameter_name, /* name */ + be_nested_proto( + 14, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[30]) { /* constants */ + /* K0 */ be_nested_str_weak(animation_dsl), + /* K1 */ be_nested_str_weak(contains), + /* K2 */ be_nested_str_weak(error), + /* K3 */ be_nested_str_weak(Duplicate_X20parameter_X20name_X20_X27_X25s_X27_X20in_X20template_X2E_X20Each_X20parameter_X20must_X20have_X20a_X20unique_X20name_X2E), + /* K4 */ be_nested_str_weak(engine), + /* K5 */ be_nested_str_weak(self), + /* K6 */ be_nested_str_weak(animation), + /* K7 */ be_nested_str_weak(color), + /* K8 */ be_nested_str_weak(palette), + /* K9 */ be_nested_str_weak(sequence), + /* K10 */ be_nested_str_weak(template), + /* K11 */ be_nested_str_weak(import), + /* K12 */ be_nested_str_weak(def), + /* K13 */ be_nested_str_weak(end), + /* K14 */ be_nested_str_weak(class), + /* K15 */ be_nested_str_weak(var), + /* K16 */ be_nested_str_weak(if), + /* K17 */ be_nested_str_weak(else), + /* K18 */ be_nested_str_weak(while), + /* K19 */ be_nested_str_weak(for), + /* K20 */ be_nested_str_weak(true), + /* K21 */ be_nested_str_weak(false), + /* K22 */ be_nested_str_weak(nil), + /* K23 */ be_nested_str_weak(return), + /* K24 */ be_nested_str_weak(break), + /* K25 */ be_nested_str_weak(continue), + /* K26 */ be_nested_str_weak(Parameter_X20name_X20_X27_X25s_X27_X20conflicts_X20with_X20reserved_X20keyword_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_param_X27_X20or_X20_X27my__X25s_X27_X2E), + /* K27 */ be_nested_str_weak(stop_iteration), + /* K28 */ be_nested_str_weak(is_color_name), + /* K29 */ be_nested_str_weak(Parameter_X20name_X20_X27_X25s_X27_X20conflicts_X20with_X20built_X2Din_X20color_X20name_X2E_X20Use_X20a_X20different_X20name_X20like_X20_X27_X25s_param_X27_X20or_X20_X27my__X25s_X27_X2E), + }), + be_str_weak(_validate_template_parameter_name), + &be_const_str_solidified, + ( &(const binstruction[76]) { /* code */ + 0xA40E0000, // 0000 IMPORT R3 K0 + 0x8C100501, // 0001 GETMET R4 R2 K1 + 0x5C180200, // 0002 MOVE R6 R1 + 0x7C100400, // 0003 CALL R4 2 + 0x78120007, // 0004 JMPF R4 #000D + 0x8C100102, // 0005 GETMET R4 R0 K2 + 0x60180018, // 0006 GETGBL R6 G24 + 0x581C0003, // 0007 LDCONST R7 K3 + 0x5C200200, // 0008 MOVE R8 R1 + 0x7C180400, // 0009 CALL R6 2 + 0x7C100400, // 000A CALL R4 2 + 0x50100000, // 000B LDBOOL R4 0 0 + 0x80040800, // 000C RET 1 R4 + 0x60100012, // 000D GETGBL R4 G18 + 0x7C100000, // 000E CALL R4 0 + 0x40140904, // 000F CONNECT R5 R4 K4 + 0x40140905, // 0010 CONNECT R5 R4 K5 + 0x40140906, // 0011 CONNECT R5 R4 K6 + 0x40140907, // 0012 CONNECT R5 R4 K7 + 0x40140908, // 0013 CONNECT R5 R4 K8 + 0x40140909, // 0014 CONNECT R5 R4 K9 + 0x4014090A, // 0015 CONNECT R5 R4 K10 + 0x4014090B, // 0016 CONNECT R5 R4 K11 + 0x4014090C, // 0017 CONNECT R5 R4 K12 + 0x4014090D, // 0018 CONNECT R5 R4 K13 + 0x4014090E, // 0019 CONNECT R5 R4 K14 + 0x4014090F, // 001A CONNECT R5 R4 K15 + 0x40140910, // 001B CONNECT R5 R4 K16 + 0x40140911, // 001C CONNECT R5 R4 K17 + 0x40140912, // 001D CONNECT R5 R4 K18 + 0x40140913, // 001E CONNECT R5 R4 K19 + 0x40140914, // 001F CONNECT R5 R4 K20 + 0x40140915, // 0020 CONNECT R5 R4 K21 + 0x40140916, // 0021 CONNECT R5 R4 K22 + 0x40140917, // 0022 CONNECT R5 R4 K23 + 0x40140918, // 0023 CONNECT R5 R4 K24 + 0x40140919, // 0024 CONNECT R5 R4 K25 + 0x60140010, // 0025 GETGBL R5 G16 + 0x5C180800, // 0026 MOVE R6 R4 + 0x7C140200, // 0027 CALL R5 1 + 0xA802000F, // 0028 EXBLK 0 #0039 + 0x5C180A00, // 0029 MOVE R6 R5 + 0x7C180000, // 002A CALL R6 0 + 0x1C1C0206, // 002B EQ R7 R1 R6 + 0x781E000A, // 002C JMPF R7 #0038 + 0x8C1C0102, // 002D GETMET R7 R0 K2 + 0x60240018, // 002E GETGBL R9 G24 + 0x5828001A, // 002F LDCONST R10 K26 + 0x5C2C0200, // 0030 MOVE R11 R1 + 0x5C300200, // 0031 MOVE R12 R1 + 0x5C340200, // 0032 MOVE R13 R1 + 0x7C240800, // 0033 CALL R9 4 + 0x7C1C0400, // 0034 CALL R7 2 + 0x501C0000, // 0035 LDBOOL R7 0 0 + 0xA8040001, // 0036 EXBLK 1 1 + 0x80040E00, // 0037 RET 1 R7 + 0x7001FFEF, // 0038 JMP #0029 + 0x5814001B, // 0039 LDCONST R5 K27 + 0xAC140200, // 003A CATCH R5 1 0 + 0xB0080000, // 003B RAISE 2 R0 R0 + 0x8C14071C, // 003C GETMET R5 R3 K28 + 0x5C1C0200, // 003D MOVE R7 R1 + 0x7C140400, // 003E CALL R5 2 + 0x78160009, // 003F JMPF R5 #004A + 0x8C140102, // 0040 GETMET R5 R0 K2 + 0x601C0018, // 0041 GETGBL R7 G24 + 0x5820001D, // 0042 LDCONST R8 K29 + 0x5C240200, // 0043 MOVE R9 R1 + 0x5C280200, // 0044 MOVE R10 R1 + 0x5C2C0200, // 0045 MOVE R11 R1 + 0x7C1C0800, // 0046 CALL R7 4 + 0x7C140400, // 0047 CALL R5 2 + 0x50140000, // 0048 LDBOOL R5 0 0 + 0x80040A00, // 0049 RET 1 R5 + 0x50140200, // 004A LDBOOL R5 1 0 + 0x80040A00, // 004B RET 1 R5 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_function_call, /* name */ + be_nested_proto( + 11, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[23]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_const_int(1), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(value), + /* K6 */ be_nested_str_weak(next), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(Expected_X20function_X20name), + /* K9 */ be_nested_str_weak(nil), + /* K10 */ be_nested_str_weak(symbol_table), + /* K11 */ be_nested_str_weak(get), + /* K12 */ be_nested_str_weak(process_function_arguments), + /* K13 */ be_nested_str_weak(_X25s_X28_X25s_X29), + /* K14 */ be_nested_str_weak(get_reference), + /* K15 */ be_nested_str_weak(log), + /* K16 */ be_nested_str_weak(process_log_call), + /* K17 */ be_nested_str_weak(CONTEXT_EXPRESSION), + /* K18 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K19 */ be_nested_str_weak(engine), + /* K20 */ be_nested_str_weak(_X25s_template_X28_X25s_X29), + /* K21 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X2C_X20_X25s_X29), + /* K22 */ be_nested_str_weak(animation_X2E_X25s_X28engine_X29), + }), + be_str_weak(process_function_call), + &be_const_str_solidified, + ( &(const binstruction[92]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x580C0001, // 0002 LDCONST R3 K1 + 0x4C100000, // 0003 LDNIL R4 + 0x20100404, // 0004 NE R4 R2 R4 + 0x78120009, // 0005 JMPF R4 #0010 + 0x88100502, // 0006 GETMBR R4 R2 K2 + 0x1C100903, // 0007 EQ R4 R4 K3 + 0x74120002, // 0008 JMPT R4 #000C + 0x88100502, // 0009 GETMBR R4 R2 K2 + 0x1C100904, // 000A EQ R4 R4 K4 + 0x78120003, // 000B JMPF R4 #0010 + 0x880C0505, // 000C GETMBR R3 R2 K5 + 0x8C100106, // 000D GETMET R4 R0 K6 + 0x7C100200, // 000E CALL R4 1 + 0x70020003, // 000F JMP #0014 + 0x8C100107, // 0010 GETMET R4 R0 K7 + 0x58180008, // 0011 LDCONST R6 K8 + 0x7C100400, // 0012 CALL R4 2 + 0x80061200, // 0013 RET 1 K9 + 0x8810010A, // 0014 GETMBR R4 R0 K10 + 0x8C10090B, // 0015 GETMET R4 R4 K11 + 0x5C180600, // 0016 MOVE R6 R3 + 0x7C100400, // 0017 CALL R4 2 + 0x4C140000, // 0018 LDNIL R5 + 0x20140805, // 0019 NE R5 R4 R5 + 0x7816000D, // 001A JMPF R5 #0029 + 0x88140902, // 001B GETMBR R5 R4 K2 + 0x541A0003, // 001C LDINT R6 4 + 0x1C140A06, // 001D EQ R5 R5 R6 + 0x78160009, // 001E JMPF R5 #0029 + 0x8C14010C, // 001F GETMET R5 R0 K12 + 0x501C0000, // 0020 LDBOOL R7 0 0 + 0x7C140400, // 0021 CALL R5 2 + 0x60180018, // 0022 GETGBL R6 G24 + 0x581C000D, // 0023 LDCONST R7 K13 + 0x8C20090E, // 0024 GETMET R8 R4 K14 + 0x7C200200, // 0025 CALL R8 1 + 0x5C240A00, // 0026 MOVE R9 R5 + 0x7C180600, // 0027 CALL R6 3 + 0x80040C00, // 0028 RET 1 R6 + 0x1C14070F, // 0029 EQ R5 R3 K15 + 0x78160008, // 002A JMPF R5 #0034 + 0x8C14010C, // 002B GETMET R5 R0 K12 + 0x501C0000, // 002C LDBOOL R7 0 0 + 0x7C140400, // 002D CALL R5 2 + 0x8C180110, // 002E GETMET R6 R0 K16 + 0x5C200A00, // 002F MOVE R8 R5 + 0x88240111, // 0030 GETMBR R9 R0 K17 + 0x58280001, // 0031 LDCONST R10 K1 + 0x7C180800, // 0032 CALL R6 4 + 0x80040C00, // 0033 RET 1 R6 + 0x8C14010C, // 0034 GETMET R5 R0 K12 + 0x501C0000, // 0035 LDBOOL R7 0 0 + 0x7C140400, // 0036 CALL R5 2 + 0x4C180000, // 0037 LDNIL R6 + 0x20180806, // 0038 NE R6 R4 R6 + 0x781A0012, // 0039 JMPF R6 #004D + 0x88180902, // 003A GETMBR R6 R4 K2 + 0x541E000D, // 003B LDINT R7 14 + 0x1C180C07, // 003C EQ R6 R6 R7 + 0x781A000E, // 003D JMPF R6 #004D + 0x20180B01, // 003E NE R6 R5 K1 + 0x781A0004, // 003F JMPF R6 #0045 + 0x60180018, // 0040 GETGBL R6 G24 + 0x581C0012, // 0041 LDCONST R7 K18 + 0x5C200A00, // 0042 MOVE R8 R5 + 0x7C180400, // 0043 CALL R6 2 + 0x70020000, // 0044 JMP #0046 + 0x58180013, // 0045 LDCONST R6 K19 + 0x601C0018, // 0046 GETGBL R7 G24 + 0x58200014, // 0047 LDCONST R8 K20 + 0x5C240600, // 0048 MOVE R9 R3 + 0x5C280C00, // 0049 MOVE R10 R6 + 0x7C1C0600, // 004A CALL R7 3 + 0x80040E00, // 004B RET 1 R7 + 0x7002000D, // 004C JMP #005B + 0x20180B01, // 004D NE R6 R5 K1 + 0x781A0006, // 004E JMPF R6 #0056 + 0x60180018, // 004F GETGBL R6 G24 + 0x581C0015, // 0050 LDCONST R7 K21 + 0x5C200600, // 0051 MOVE R8 R3 + 0x5C240A00, // 0052 MOVE R9 R5 + 0x7C180600, // 0053 CALL R6 3 + 0x80040C00, // 0054 RET 1 R6 + 0x70020004, // 0055 JMP #005B + 0x60180018, // 0056 GETGBL R6 G24 + 0x581C0016, // 0057 LDCONST R7 K22 + 0x5C200600, // 0058 MOVE R8 R3 + 0x7C180400, // 0059 CALL R6 2 + 0x80040C00, // 005A RET 1 R6 + 0x80000000, // 005B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _create_symbol_by_return_type +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type, /* name */ + be_nested_proto( + 8, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(create_animation), + /* K2 */ be_nested_str_weak(create_color), + /* K3 */ be_nested_str_weak(create_value_provider), + /* K4 */ be_const_int(2), + /* K5 */ be_nested_str_weak(create_palette), + /* K6 */ be_nested_str_weak(create_sequence), + /* K7 */ be_nested_str_weak(create_template), + /* K8 */ be_nested_str_weak(create_variable), + }), + be_str_weak(_create_symbol_by_return_type), + &be_const_str_solidified, + ( &(const binstruction[64]) { /* code */ + 0x54120008, // 0000 LDINT R4 9 + 0x1C100404, // 0001 EQ R4 R2 R4 + 0x78120006, // 0002 JMPF R4 #000A + 0x88100100, // 0003 GETMBR R4 R0 K0 + 0x8C100901, // 0004 GETMET R4 R4 K1 + 0x5C180200, // 0005 MOVE R6 R1 + 0x5C1C0600, // 0006 MOVE R7 R3 + 0x7C100600, // 0007 CALL R4 3 + 0x80040800, // 0008 RET 1 R4 + 0x70020034, // 0009 JMP #003F + 0x5412000A, // 000A LDINT R4 11 + 0x1C100404, // 000B EQ R4 R2 R4 + 0x78120006, // 000C JMPF R4 #0014 + 0x88100100, // 000D GETMBR R4 R0 K0 + 0x8C100902, // 000E GETMET R4 R4 K2 + 0x5C180200, // 000F MOVE R6 R1 + 0x5C1C0600, // 0010 MOVE R7 R3 + 0x7C100600, // 0011 CALL R4 3 + 0x80040800, // 0012 RET 1 R4 + 0x7002002A, // 0013 JMP #003F + 0x54120006, // 0014 LDINT R4 7 + 0x1C100404, // 0015 EQ R4 R2 R4 + 0x78120006, // 0016 JMPF R4 #001E + 0x88100100, // 0017 GETMBR R4 R0 K0 + 0x8C100903, // 0018 GETMET R4 R4 K3 + 0x5C180200, // 0019 MOVE R6 R1 + 0x5C1C0600, // 001A MOVE R7 R3 + 0x7C100600, // 001B CALL R4 3 + 0x80040800, // 001C RET 1 R4 + 0x70020020, // 001D JMP #003F + 0x1C100504, // 001E EQ R4 R2 K4 + 0x78120006, // 001F JMPF R4 #0027 + 0x88100100, // 0020 GETMBR R4 R0 K0 + 0x8C100905, // 0021 GETMET R4 R4 K5 + 0x5C180200, // 0022 MOVE R6 R1 + 0x5C1C0600, // 0023 MOVE R7 R3 + 0x7C100600, // 0024 CALL R4 3 + 0x80040800, // 0025 RET 1 R4 + 0x70020017, // 0026 JMP #003F + 0x5412000C, // 0027 LDINT R4 13 + 0x1C100404, // 0028 EQ R4 R2 R4 + 0x78120005, // 0029 JMPF R4 #0030 + 0x88100100, // 002A GETMBR R4 R0 K0 + 0x8C100906, // 002B GETMET R4 R4 K6 + 0x5C180200, // 002C MOVE R6 R1 + 0x7C100400, // 002D CALL R4 2 + 0x80040800, // 002E RET 1 R4 + 0x7002000E, // 002F JMP #003F + 0x5412000D, // 0030 LDINT R4 14 + 0x1C100404, // 0031 EQ R4 R2 R4 + 0x78120006, // 0032 JMPF R4 #003A + 0x88100100, // 0033 GETMBR R4 R0 K0 + 0x8C100907, // 0034 GETMET R4 R4 K7 + 0x5C180200, // 0035 MOVE R6 R1 + 0x4C1C0000, // 0036 LDNIL R7 + 0x7C100600, // 0037 CALL R4 3 + 0x80040800, // 0038 RET 1 R4 + 0x70020004, // 0039 JMP #003F + 0x88100100, // 003A GETMBR R4 R0 K0 + 0x8C100908, // 003B GETMET R4 R4 K8 + 0x5C180200, // 003C MOVE R6 R1 + 0x7C100400, // 003D CALL R4 2 + 0x80040800, // 003E RET 1 R4 + 0x80000000, // 003F RET 0 }) ) ); @@ -15580,461 +14651,845 @@ be_local_closure(class_SimpleDSLTranspiler__unwrap_resolve, /* name */ /******************************************************************** -** Solidified function: get_symbol_table_report +** Solidified function: _is_valid_identifier ********************************************************************/ -be_local_closure(class_SimpleDSLTranspiler_get_symbol_table_report, /* name */ +be_local_closure(class_SimpleDSLTranspiler__is_valid_identifier, /* name */ be_nested_proto( - 27, /* 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[11]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(a), + /* K3 */ be_nested_str_weak(z), + /* K4 */ be_nested_str_weak(A), + /* K5 */ be_nested_str_weak(Z), + /* K6 */ be_nested_str_weak(_), + /* K7 */ be_const_int(1), + /* K8 */ be_nested_str_weak(0), + /* K9 */ be_nested_str_weak(9), + /* K10 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(_is_valid_identifier), + &be_const_str_solidified, + ( &(const binstruction[61]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x600C000C, // 0001 GETGBL R3 G12 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x1C0C0701, // 0004 EQ R3 R3 K1 + 0x780E0001, // 0005 JMPF R3 #0008 + 0x500C0000, // 0006 LDBOOL R3 0 0 + 0x80040600, // 0007 RET 1 R3 + 0x940C0301, // 0008 GETIDX R3 R1 K1 + 0x28100702, // 0009 GE R4 R3 K2 + 0x78120001, // 000A JMPF R4 #000D + 0x18100703, // 000B LE R4 R3 K3 + 0x74120006, // 000C JMPT R4 #0014 + 0x28100704, // 000D GE R4 R3 K4 + 0x78120001, // 000E JMPF R4 #0011 + 0x18100705, // 000F LE R4 R3 K5 + 0x74120002, // 0010 JMPT R4 #0014 + 0x1C100706, // 0011 EQ R4 R3 K6 + 0x74120000, // 0012 JMPT R4 #0014 + 0x50100001, // 0013 LDBOOL R4 0 1 + 0x50100200, // 0014 LDBOOL R4 1 0 + 0x74120001, // 0015 JMPT R4 #0018 + 0x50100000, // 0016 LDBOOL R4 0 0 + 0x80040800, // 0017 RET 1 R4 + 0x60100010, // 0018 GETGBL R4 G16 + 0x6014000C, // 0019 GETGBL R5 G12 + 0x5C180200, // 001A MOVE R6 R1 + 0x7C140200, // 001B CALL R5 1 + 0x04140B07, // 001C SUB R5 R5 K7 + 0x40160E05, // 001D CONNECT R5 K7 R5 + 0x7C100200, // 001E CALL R4 1 + 0xA8020017, // 001F EXBLK 0 #0038 + 0x5C140800, // 0020 MOVE R5 R4 + 0x7C140000, // 0021 CALL R5 0 + 0x94180205, // 0022 GETIDX R6 R1 R5 + 0x281C0D02, // 0023 GE R7 R6 K2 + 0x781E0001, // 0024 JMPF R7 #0027 + 0x181C0D03, // 0025 LE R7 R6 K3 + 0x741E000A, // 0026 JMPT R7 #0032 + 0x281C0D04, // 0027 GE R7 R6 K4 + 0x781E0001, // 0028 JMPF R7 #002B + 0x181C0D05, // 0029 LE R7 R6 K5 + 0x741E0006, // 002A JMPT R7 #0032 + 0x281C0D08, // 002B GE R7 R6 K8 + 0x781E0001, // 002C JMPF R7 #002F + 0x181C0D09, // 002D LE R7 R6 K9 + 0x741E0002, // 002E JMPT R7 #0032 + 0x1C1C0D06, // 002F EQ R7 R6 K6 + 0x741E0000, // 0030 JMPT R7 #0032 + 0x501C0001, // 0031 LDBOOL R7 0 1 + 0x501C0200, // 0032 LDBOOL R7 1 0 + 0x741E0002, // 0033 JMPT R7 #0037 + 0x501C0000, // 0034 LDBOOL R7 0 0 + 0xA8040001, // 0035 EXBLK 1 1 + 0x80040E00, // 0036 RET 1 R7 + 0x7001FFE7, // 0037 JMP #0020 + 0x5810000A, // 0038 LDCONST R4 K10 + 0xAC100200, // 0039 CATCH R4 1 0 + 0xB0080000, // 003A RAISE 2 R0 R0 + 0x50100200, // 003B LDBOOL R4 1 0 + 0x80040800, // 003C RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_function_arguments +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_function_arguments, /* name */ + be_nested_proto( + 9, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[20]) { /* constants */ + /* K0 */ be_nested_str_weak(expect_left_paren), + /* K1 */ be_nested_str_weak(at_end), + /* K2 */ be_nested_str_weak(check_right_paren), + /* K3 */ be_nested_str_weak(skip_whitespace), + /* K4 */ be_nested_str_weak(process_additive_expression), + /* K5 */ be_nested_str_weak(CONTEXT_ARGUMENT), + /* K6 */ be_nested_str_weak(expr), + /* K7 */ be_nested_str_weak(process_value), + /* K8 */ be_nested_str_weak(push), + /* K9 */ be_nested_str_weak(current), + /* K10 */ be_nested_str_weak(type), + /* K11 */ be_nested_str_weak(next), + /* K12 */ be_nested_str_weak(error), + /* K13 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + /* K14 */ be_nested_str_weak(expect_right_paren), + /* K15 */ be_nested_str_weak(), + /* K16 */ be_const_int(0), + /* K17 */ be_const_int(1), + /* K18 */ be_nested_str_weak(_X2C_X20), + /* K19 */ be_nested_str_weak(stop_iteration), + }), + be_str_weak(process_function_arguments), + &be_const_str_solidified, + ( &(const binstruction[81]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x60080012, // 0002 GETGBL R2 G18 + 0x7C080000, // 0003 CALL R2 0 + 0x8C0C0101, // 0004 GETMET R3 R0 K1 + 0x7C0C0200, // 0005 CALL R3 1 + 0x740E0032, // 0006 JMPT R3 #003A + 0x8C0C0102, // 0007 GETMET R3 R0 K2 + 0x7C0C0200, // 0008 CALL R3 1 + 0x740E002F, // 0009 JMPT R3 #003A + 0x8C0C0103, // 000A GETMET R3 R0 K3 + 0x7C0C0200, // 000B CALL R3 1 + 0x8C0C0102, // 000C GETMET R3 R0 K2 + 0x7C0C0200, // 000D CALL R3 1 + 0x780E0000, // 000E JMPF R3 #0010 + 0x70020029, // 000F JMP #003A + 0x4C0C0000, // 0010 LDNIL R3 + 0x78060006, // 0011 JMPF R1 #0019 + 0x8C100104, // 0012 GETMET R4 R0 K4 + 0x88180105, // 0013 GETMBR R6 R0 K5 + 0x501C0200, // 0014 LDBOOL R7 1 0 + 0x50200200, // 0015 LDBOOL R8 1 0 + 0x7C100800, // 0016 CALL R4 4 + 0x880C0906, // 0017 GETMBR R3 R4 K6 + 0x70020003, // 0018 JMP #001D + 0x8C100107, // 0019 GETMET R4 R0 K7 + 0x88180105, // 001A GETMBR R6 R0 K5 + 0x7C100400, // 001B CALL R4 2 + 0x880C0906, // 001C GETMBR R3 R4 K6 + 0x8C100508, // 001D GETMET R4 R2 K8 + 0x5C180600, // 001E MOVE R6 R3 + 0x7C100400, // 001F CALL R4 2 + 0x8C100103, // 0020 GETMET R4 R0 K3 + 0x7C100200, // 0021 CALL R4 1 + 0x8C100109, // 0022 GETMET R4 R0 K9 + 0x7C100200, // 0023 CALL R4 1 + 0x4C140000, // 0024 LDNIL R5 + 0x20100805, // 0025 NE R4 R4 R5 + 0x7812000A, // 0026 JMPF R4 #0032 + 0x8C100109, // 0027 GETMET R4 R0 K9 + 0x7C100200, // 0028 CALL R4 1 + 0x8810090A, // 0029 GETMBR R4 R4 K10 + 0x5416001D, // 002A LDINT R5 30 + 0x1C100805, // 002B EQ R4 R4 R5 + 0x78120004, // 002C JMPF R4 #0032 + 0x8C10010B, // 002D GETMET R4 R0 K11 + 0x7C100200, // 002E CALL R4 1 + 0x8C100103, // 002F GETMET R4 R0 K3 + 0x7C100200, // 0030 CALL R4 1 + 0x70020006, // 0031 JMP #0039 + 0x8C100102, // 0032 GETMET R4 R0 K2 + 0x7C100200, // 0033 CALL R4 1 + 0x74120003, // 0034 JMPT R4 #0039 + 0x8C10010C, // 0035 GETMET R4 R0 K12 + 0x5818000D, // 0036 LDCONST R6 K13 + 0x7C100400, // 0037 CALL R4 2 + 0x70020000, // 0038 JMP #003A + 0x7001FFC9, // 0039 JMP #0004 + 0x8C0C010E, // 003A GETMET R3 R0 K14 + 0x7C0C0200, // 003B CALL R3 1 + 0x580C000F, // 003C LDCONST R3 K15 + 0x60100010, // 003D GETGBL R4 G16 + 0x6014000C, // 003E GETGBL R5 G12 + 0x5C180400, // 003F MOVE R6 R2 + 0x7C140200, // 0040 CALL R5 1 + 0x04140B11, // 0041 SUB R5 R5 K17 + 0x40162005, // 0042 CONNECT R5 K16 R5 + 0x7C100200, // 0043 CALL R4 1 + 0xA8020007, // 0044 EXBLK 0 #004D + 0x5C140800, // 0045 MOVE R5 R4 + 0x7C140000, // 0046 CALL R5 0 + 0x24180B10, // 0047 GT R6 R5 K16 + 0x781A0000, // 0048 JMPF R6 #004A + 0x000C0712, // 0049 ADD R3 R3 K18 + 0x94180405, // 004A GETIDX R6 R2 R5 + 0x000C0606, // 004B ADD R3 R3 R6 + 0x7001FFF7, // 004C JMP #0045 + 0x58100013, // 004D LDCONST R4 K19 + 0xAC100200, // 004E CATCH R4 1 0 + 0xB0080000, // 004F RAISE 2 R0 R0 + 0x80040600, // 0050 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_parameters_core +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_parameters_core, /* name */ + be_nested_proto( + 13, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[17]) { /* constants */ + /* K0 */ be_nested_str_weak(), + /* K1 */ be_nested_str_weak(_create_instance_for_validation), + /* K2 */ be_nested_str_weak(at_end), + /* K3 */ be_nested_str_weak(check_right_paren), + /* K4 */ be_nested_str_weak(skip_whitespace_including_newlines), + /* K5 */ be_nested_str_weak(expect_identifier), + /* K6 */ be_nested_str_weak(_validate_single_parameter), + /* K7 */ be_nested_str_weak(expect_assign), + /* K8 */ be_nested_str_weak(process_value), + /* K9 */ be_nested_str_weak(CONTEXT_VARIABLE), + /* K10 */ be_nested_str_weak(collect_inline_comment), + /* K11 */ be_nested_str_weak(expr), + /* K12 */ be_nested_str_weak(current), + /* K13 */ be_nested_str_weak(type), + /* K14 */ be_nested_str_weak(next), + /* K15 */ be_nested_str_weak(error), + /* K16 */ be_nested_str_weak(Expected_X20_X27_X2C_X27_X20or_X20_X27_X29_X27_X20in_X20function_X20arguments), + }), + be_str_weak(_process_parameters_core), + &be_const_str_solidified, + ( &(const binstruction[102]) { /* code */ + 0x4C100000, // 0000 LDNIL R4 + 0x5C140200, // 0001 MOVE R5 R1 + 0x20180B00, // 0002 NE R6 R5 K0 + 0x781A0003, // 0003 JMPF R6 #0008 + 0x8C180101, // 0004 GETMET R6 R0 K1 + 0x5C200A00, // 0005 MOVE R8 R5 + 0x7C180400, // 0006 CALL R6 2 + 0x5C100C00, // 0007 MOVE R4 R6 + 0x8C180102, // 0008 GETMET R6 R0 K2 + 0x7C180200, // 0009 CALL R6 1 + 0x741A0059, // 000A JMPT R6 #0065 + 0x8C180103, // 000B GETMET R6 R0 K3 + 0x7C180200, // 000C CALL R6 1 + 0x741A0056, // 000D JMPT R6 #0065 + 0x8C180104, // 000E GETMET R6 R0 K4 + 0x7C180200, // 000F CALL R6 1 + 0x8C180103, // 0010 GETMET R6 R0 K3 + 0x7C180200, // 0011 CALL R6 1 + 0x781A0000, // 0012 JMPF R6 #0014 + 0x70020050, // 0013 JMP #0065 + 0x8C180105, // 0014 GETMET R6 R0 K5 + 0x7C180200, // 0015 CALL R6 1 + 0x4C1C0000, // 0016 LDNIL R7 + 0x201C0807, // 0017 NE R7 R4 R7 + 0x781E0006, // 0018 JMPF R7 #0020 + 0x201C0B00, // 0019 NE R7 R5 K0 + 0x781E0004, // 001A JMPF R7 #0020 + 0x8C1C0106, // 001B GETMET R7 R0 K6 + 0x5C240A00, // 001C MOVE R9 R5 + 0x5C280C00, // 001D MOVE R10 R6 + 0x5C2C0800, // 001E MOVE R11 R4 + 0x7C1C0800, // 001F CALL R7 4 + 0x8C1C0107, // 0020 GETMET R7 R0 K7 + 0x7C1C0200, // 0021 CALL R7 1 + 0x8C1C0108, // 0022 GETMET R7 R0 K8 + 0x88240109, // 0023 GETMBR R9 R0 K9 + 0x7C1C0400, // 0024 CALL R7 2 + 0x8C20010A, // 0025 GETMET R8 R0 K10 + 0x7C200200, // 0026 CALL R8 1 + 0x5C240600, // 0027 MOVE R9 R3 + 0x5C280C00, // 0028 MOVE R10 R6 + 0x882C0F0B, // 0029 GETMBR R11 R7 K11 + 0x5C301000, // 002A MOVE R12 R8 + 0x7C240600, // 002B CALL R9 3 + 0x8C240102, // 002C GETMET R9 R0 K2 + 0x7C240200, // 002D CALL R9 1 + 0x7426000D, // 002E JMPT R9 #003D + 0x8C24010C, // 002F GETMET R9 R0 K12 + 0x7C240200, // 0030 CALL R9 1 + 0x4C280000, // 0031 LDNIL R10 + 0x2028120A, // 0032 NE R10 R9 R10 + 0x782A0006, // 0033 JMPF R10 #003B + 0x8828130D, // 0034 GETMBR R10 R9 K13 + 0x542E0024, // 0035 LDINT R11 37 + 0x1C28140B, // 0036 EQ R10 R10 R11 + 0x782A0002, // 0037 JMPF R10 #003B + 0x8C28010E, // 0038 GETMET R10 R0 K14 + 0x7C280200, // 0039 CALL R10 1 + 0x70020000, // 003A JMP #003C + 0x70020000, // 003B JMP #003D + 0x7001FFEE, // 003C JMP #002C + 0x8C24010C, // 003D GETMET R9 R0 K12 + 0x7C240200, // 003E CALL R9 1 + 0x4C280000, // 003F LDNIL R10 + 0x2024120A, // 0040 NE R9 R9 R10 + 0x7826000A, // 0041 JMPF R9 #004D + 0x8C24010C, // 0042 GETMET R9 R0 K12 + 0x7C240200, // 0043 CALL R9 1 + 0x8824130D, // 0044 GETMBR R9 R9 K13 + 0x542A001D, // 0045 LDINT R10 30 + 0x1C24120A, // 0046 EQ R9 R9 R10 + 0x78260004, // 0047 JMPF R9 #004D + 0x8C24010E, // 0048 GETMET R9 R0 K14 + 0x7C240200, // 0049 CALL R9 1 + 0x8C240104, // 004A GETMET R9 R0 K4 + 0x7C240200, // 004B CALL R9 1 + 0x70020016, // 004C JMP #0064 + 0x8C24010C, // 004D GETMET R9 R0 K12 + 0x7C240200, // 004E CALL R9 1 + 0x4C280000, // 004F LDNIL R10 + 0x2024120A, // 0050 NE R9 R9 R10 + 0x7826000A, // 0051 JMPF R9 #005D + 0x8C24010C, // 0052 GETMET R9 R0 K12 + 0x7C240200, // 0053 CALL R9 1 + 0x8824130D, // 0054 GETMBR R9 R9 K13 + 0x542A0022, // 0055 LDINT R10 35 + 0x1C24120A, // 0056 EQ R9 R9 R10 + 0x78260004, // 0057 JMPF R9 #005D + 0x8C24010E, // 0058 GETMET R9 R0 K14 + 0x7C240200, // 0059 CALL R9 1 + 0x8C240104, // 005A GETMET R9 R0 K4 + 0x7C240200, // 005B CALL R9 1 + 0x70020006, // 005C JMP #0064 + 0x8C240103, // 005D GETMET R9 R0 K3 + 0x7C240200, // 005E CALL R9 1 + 0x74260003, // 005F JMPT R9 #0064 + 0x8C24010F, // 0060 GETMET R9 R0 K15 + 0x582C0010, // 0061 LDCONST R11 K16 + 0x7C240400, // 0062 CALL R9 2 + 0x70020000, // 0063 JMP #0065 + 0x7001FFA2, // 0064 JMP #0008 + 0x80000000, // 0065 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_sequence +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_process_sequence, /* name */ + be_nested_proto( + 11, /* nstack */ 1, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ - 1, /* has sup protos */ - ( &(const struct bproto*[ 4]) { - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 0, /* 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(_XE2_X9C_X93), - /* K1 */ be_const_int(1), - /* K2 */ be_nested_str_weak(_XE2_X9A_XA0_XEF_XB8_X8F), - /* K3 */ be_const_int(2), - /* K4 */ be_nested_str_weak(_XE2_X9A_XA0), - /* K5 */ be_const_int(0), - /* K6 */ be_nested_str_weak(keys), - /* K7 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(display_width), - &be_const_str_solidified, - ( &(const binstruction[58]) { /* code */ - 0x60040013, // 0000 GETGBL R1 G19 - 0x7C040000, // 0001 CALL R1 0 - 0x98060101, // 0002 SETIDX R1 K0 K1 - 0x98060503, // 0003 SETIDX R1 K2 K3 - 0x98060901, // 0004 SETIDX R1 K4 K1 - 0x58080005, // 0005 LDCONST R2 K5 - 0x580C0005, // 0006 LDCONST R3 K5 - 0x6010000C, // 0007 GETGBL R4 G12 - 0x5C140000, // 0008 MOVE R5 R0 - 0x7C100200, // 0009 CALL R4 1 - 0x14100604, // 000A LT R4 R3 R4 - 0x7812002C, // 000B JMPF R4 #0039 - 0x50100000, // 000C LDBOOL R4 0 0 - 0x60140010, // 000D GETGBL R5 G16 - 0x8C180306, // 000E GETMET R6 R1 K6 - 0x7C180200, // 000F CALL R6 1 - 0x7C140200, // 0010 CALL R5 1 - 0xA802001E, // 0011 EXBLK 0 #0031 - 0x5C180A00, // 0012 MOVE R6 R5 - 0x7C180000, // 0013 CALL R6 0 - 0x601C000C, // 0014 GETGBL R7 G12 - 0x5C200C00, // 0015 MOVE R8 R6 - 0x7C1C0200, // 0016 CALL R7 1 - 0x001C0607, // 0017 ADD R7 R3 R7 - 0x6020000C, // 0018 GETGBL R8 G12 - 0x5C240000, // 0019 MOVE R9 R0 - 0x7C200200, // 001A CALL R8 1 - 0x181C0E08, // 001B LE R7 R7 R8 - 0x781E0010, // 001C JMPF R7 #002E - 0x601C000C, // 001D GETGBL R7 G12 - 0x5C200C00, // 001E MOVE R8 R6 - 0x7C1C0200, // 001F CALL R7 1 - 0x001C0607, // 0020 ADD R7 R3 R7 - 0x041C0F01, // 0021 SUB R7 R7 K1 - 0x401C0607, // 0022 CONNECT R7 R3 R7 - 0x941C0007, // 0023 GETIDX R7 R0 R7 - 0x1C1C0E06, // 0024 EQ R7 R7 R6 - 0x781E0007, // 0025 JMPF R7 #002E - 0x941C0206, // 0026 GETIDX R7 R1 R6 - 0x00080407, // 0027 ADD R2 R2 R7 - 0x601C000C, // 0028 GETGBL R7 G12 - 0x5C200C00, // 0029 MOVE R8 R6 - 0x7C1C0200, // 002A CALL R7 1 - 0x000C0607, // 002B ADD R3 R3 R7 - 0x50100200, // 002C LDBOOL R4 1 0 - 0x70020000, // 002D JMP #002F - 0x7001FFE2, // 002E JMP #0012 - 0xA8040001, // 002F EXBLK 1 1 - 0x70020002, // 0030 JMP #0034 - 0x58140007, // 0031 LDCONST R5 K7 - 0xAC140200, // 0032 CATCH R5 1 0 - 0xB0080000, // 0033 RAISE 2 R0 R0 - 0x5C140800, // 0034 MOVE R5 R4 - 0x74160001, // 0035 JMPT R5 #0038 - 0x00080501, // 0036 ADD R2 R2 K1 - 0x000C0701, // 0037 ADD R3 R3 K1 - 0x7001FFCD, // 0038 JMP #0007 - 0x80040400, // 0039 RET 1 R2 - }) - ), - be_nested_proto( - 8, /* nstack */ - 0, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 5), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_const_int(1), - /* K1 */ be_nested_str_weak(name), - /* K2 */ be_const_int(0), - }), - be_str_weak(_sort_symbol_data), - &be_const_str_solidified, - ( &(const binstruction[33]) { /* code */ - 0x6000000C, // 0000 GETGBL R0 G12 - 0x68040000, // 0001 GETUPV R1 U0 - 0x7C000200, // 0002 CALL R0 1 - 0x18040100, // 0003 LE R1 R0 K0 - 0x78060000, // 0004 JMPF R1 #0006 - 0x80000200, // 0005 RET 0 - 0x58040000, // 0006 LDCONST R1 K0 - 0x14080200, // 0007 LT R2 R1 R0 - 0x780A0016, // 0008 JMPF R2 #0020 - 0x68080000, // 0009 GETUPV R2 U0 - 0x94080401, // 000A GETIDX R2 R2 R1 - 0x940C0501, // 000B GETIDX R3 R2 K1 - 0x5C100200, // 000C MOVE R4 R1 - 0x24140902, // 000D GT R5 R4 K2 - 0x7816000C, // 000E JMPF R5 #001C - 0x04140900, // 000F SUB R5 R4 K0 - 0x68180000, // 0010 GETUPV R6 U0 - 0x94140C05, // 0011 GETIDX R5 R6 R5 - 0x94140B01, // 0012 GETIDX R5 R5 K1 - 0x24140A03, // 0013 GT R5 R5 R3 - 0x78160006, // 0014 JMPF R5 #001C - 0x68140000, // 0015 GETUPV R5 U0 - 0x04180900, // 0016 SUB R6 R4 K0 - 0x681C0000, // 0017 GETUPV R7 U0 - 0x94180E06, // 0018 GETIDX R6 R7 R6 - 0x98140806, // 0019 SETIDX R5 R4 R6 - 0x04100900, // 001A SUB R4 R4 K0 - 0x7001FFF0, // 001B JMP #000D - 0x68140000, // 001C GETUPV R5 U0 - 0x98140802, // 001D SETIDX R5 R4 R2 - 0x00040300, // 001E ADD R1 R1 K0 - 0x7001FFE6, // 001F JMP #0007 - 0x80000000, // 0020 RET 0 - }) - ), - be_nested_proto( - 4, /* nstack */ - 2, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 4), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_const_int(0), - /* K1 */ be_nested_str_weak(_X20), - }), - be_str_weak(pad_string), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0x68080000, // 0000 GETUPV R2 U0 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x04080202, // 0003 SUB R2 R1 R2 - 0x180C0500, // 0004 LE R3 R2 K0 - 0x780E0000, // 0005 JMPF R3 #0007 - 0x80040000, // 0006 RET 1 R0 - 0x080E0202, // 0007 MUL R3 K1 R2 - 0x000C0003, // 0008 ADD R3 R0 R3 - 0x80040600, // 0009 RET 1 R3 - }) - ), - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 0, /* varg */ - 1, /* has upvals */ - ( &(const bupvaldesc[ 1]) { /* upvals */ - be_local_const_upval(1, 4), - }), - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_const_int(0), - /* K1 */ be_const_int(2), - /* K2 */ be_nested_str_weak(_X20), - }), - be_str_weak(center_string), - &be_const_str_solidified, - ( &(const binstruction[14]) { /* code */ - 0x68080000, // 0000 GETUPV R2 U0 - 0x5C0C0000, // 0001 MOVE R3 R0 - 0x7C080200, // 0002 CALL R2 1 - 0x04080202, // 0003 SUB R2 R1 R2 - 0x180C0500, // 0004 LE R3 R2 K0 - 0x780E0000, // 0005 JMPF R3 #0007 - 0x80040000, // 0006 RET 1 R0 - 0x0C0C0501, // 0007 DIV R3 R2 K1 - 0x04100403, // 0008 SUB R4 R2 R3 - 0x08160403, // 0009 MUL R5 K2 R3 - 0x00140A00, // 000A ADD R5 R5 R0 - 0x081A0404, // 000B MUL R6 K2 R4 - 0x00140A06, // 000C ADD R5 R5 R6 - 0x80040A00, // 000D RET 1 R5 - }) - ), - }), + 0, /* has sup protos */ + NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[34]) { /* constants */ - /* K0 */ be_nested_str_weak(string), - /* K1 */ be_nested_str_weak(_X23_X23_X20Symbol_X20Table_X0A_X0A), - /* K2 */ be_nested_str_weak(symbol_table), - /* K3 */ be_nested_str_weak(list_symbols), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(No_X20symbols_X20defined_X0A_X0A), - /* K6 */ be_nested_str_weak(split), - /* K7 */ be_nested_str_weak(_X3A_X20), - /* K8 */ be_const_int(2), - /* K9 */ be_const_int(1), - /* K10 */ be_nested_str_weak(get), - /* K11 */ be_nested_str_weak(is_builtin), - /* K12 */ be_nested_str_weak(_XE2_X9C_X93), - /* K13 */ be_nested_str_weak(), - /* K14 */ be_nested_str_weak(is_dangerous_call), - /* K15 */ be_nested_str_weak(_XE2_X9A_XA0_XEF_XB8_X8F), - /* K16 */ be_nested_str_weak(takes_args), - /* K17 */ be_nested_str_weak(_X20_XE2_X9C_X93_X20), - /* K18 */ be_nested_str_weak(_X60_X25s_X60), - /* K19 */ be_nested_str_weak(push), - /* K20 */ be_nested_str_weak(name), - /* K21 */ be_nested_str_weak(typ), - /* K22 */ be_nested_str_weak(builtin), - /* K23 */ be_nested_str_weak(dangerous), - /* K24 */ be_nested_str_weak(stop_iteration), - /* K25 */ be_nested_str_weak(_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X20_X25s_X20_X7C_X0A), - /* K26 */ be_nested_str_weak(Symbol), - /* K27 */ be_nested_str_weak(Type), - /* K28 */ be_nested_str_weak(Builtin), - /* K29 */ be_nested_str_weak(Dangerous), - /* K30 */ be_nested_str_weak(Takes_X20Args), - /* K31 */ be_nested_str_weak(_X7C_X25s_X7C_X25s_X7C_X25s_X7C_X25s_X7C_X25s_X7C_X0A), - /* K32 */ be_nested_str_weak(_X2D), - /* K33 */ be_nested_str_weak(_X0A), + ( &(const bvalue[29]) { /* constants */ + /* K0 */ be_nested_str_weak(next), + /* K1 */ be_nested_str_weak(expect_identifier), + /* K2 */ be_nested_str_weak(validate_user_name), + /* K3 */ be_nested_str_weak(sequence), + /* K4 */ be_nested_str_weak(skip_statement), + /* K5 */ be_nested_str_weak(symbol_table), + /* K6 */ be_nested_str_weak(create_sequence), + /* K7 */ be_nested_str_weak(1), + /* K8 */ be_nested_str_weak(current), + /* K9 */ be_nested_str_weak(type), + /* K10 */ be_const_int(0), + /* K11 */ be_nested_str_weak(value), + /* K12 */ be_nested_str_weak(repeat), + /* K13 */ be_nested_str_weak(forever), + /* K14 */ be_nested_str_weak(_X2D1), + /* K15 */ be_nested_str_weak(process_value), + /* K16 */ be_nested_str_weak(CONTEXT_REPEAT_COUNT), + /* K17 */ be_nested_str_weak(expect_keyword), + /* K18 */ be_nested_str_weak(times), + /* K19 */ be_nested_str_weak(expr), + /* K20 */ be_const_int(2), + /* K21 */ be_nested_str_weak(expect_left_brace), + /* K22 */ be_nested_str_weak(add), + /* K23 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X2C_X20_X25s_X29), + /* K24 */ be_nested_str_weak(at_end), + /* K25 */ be_nested_str_weak(check_right_brace), + /* K26 */ be_nested_str_weak(process_sequence_statement), + /* K27 */ be_nested_str_weak(var_X20_X25s__X20_X3D_X20animation_X2ESequenceManager_X28engine_X29), + /* K28 */ be_nested_str_weak(expect_right_brace), }), - be_str_weak(get_symbol_table_report), + be_str_weak(process_sequence), &be_const_str_solidified, - ( &(const binstruction[202]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x58080001, // 0001 LDCONST R2 K1 - 0x880C0102, // 0002 GETMBR R3 R0 K2 - 0x8C0C0703, // 0003 GETMET R3 R3 K3 - 0x7C0C0200, // 0004 CALL R3 1 - 0x6010000C, // 0005 GETGBL R4 G12 - 0x5C140600, // 0006 MOVE R5 R3 - 0x7C100200, // 0007 CALL R4 1 - 0x1C100904, // 0008 EQ R4 R4 K4 - 0x78120001, // 0009 JMPF R4 #000C - 0x00080505, // 000A ADD R2 R2 K5 - 0x80040400, // 000B RET 1 R2 - 0x84100000, // 000C CLOSURE R4 P0 - 0x60140012, // 000D GETGBL R5 G18 - 0x7C140000, // 000E CALL R5 0 - 0x541A0005, // 000F LDINT R6 6 - 0x541E0003, // 0010 LDINT R7 4 - 0x54220006, // 0011 LDINT R8 7 - 0x54260008, // 0012 LDINT R9 9 - 0x542A0009, // 0013 LDINT R10 10 - 0x602C0010, // 0014 GETGBL R11 G16 - 0x5C300600, // 0015 MOVE R12 R3 - 0x7C2C0200, // 0016 CALL R11 1 - 0xA802005E, // 0017 EXBLK 0 #0077 - 0x5C301600, // 0018 MOVE R12 R11 - 0x7C300000, // 0019 CALL R12 0 - 0x8C340306, // 001A GETMET R13 R1 K6 - 0x5C3C1800, // 001B MOVE R15 R12 - 0x58400007, // 001C LDCONST R16 K7 - 0x7C340600, // 001D CALL R13 3 - 0x6038000C, // 001E GETGBL R14 G12 - 0x5C3C1A00, // 001F MOVE R15 R13 - 0x7C380200, // 0020 CALL R14 1 - 0x28381D08, // 0021 GE R14 R14 K8 - 0x783A0052, // 0022 JMPF R14 #0076 - 0x94381B04, // 0023 GETIDX R14 R13 K4 - 0x943C1B09, // 0024 GETIDX R15 R13 K9 - 0x88400102, // 0025 GETMBR R16 R0 K2 - 0x8C40210A, // 0026 GETMET R16 R16 K10 - 0x5C481C00, // 0027 MOVE R18 R14 - 0x7C400400, // 0028 CALL R16 2 - 0x4C440000, // 0029 LDNIL R17 - 0x20442011, // 002A NE R17 R16 R17 - 0x78460049, // 002B JMPF R17 #0076 - 0x8844210B, // 002C GETMBR R17 R16 K11 - 0x78460001, // 002D JMPF R17 #0030 - 0x5844000C, // 002E LDCONST R17 K12 - 0x70020000, // 002F JMP #0031 - 0x5844000D, // 0030 LDCONST R17 K13 - 0x8C48210E, // 0031 GETMET R18 R16 K14 - 0x7C480200, // 0032 CALL R18 1 - 0x784A0001, // 0033 JMPF R18 #0036 - 0x5848000F, // 0034 LDCONST R18 K15 - 0x70020000, // 0035 JMP #0037 - 0x5848000D, // 0036 LDCONST R18 K13 - 0x884C2110, // 0037 GETMBR R19 R16 K16 - 0x784E0001, // 0038 JMPF R19 #003B - 0x584C0011, // 0039 LDCONST R19 K17 - 0x70020000, // 003A JMP #003C - 0x584C000D, // 003B LDCONST R19 K13 - 0x60500018, // 003C GETGBL R20 G24 - 0x58540012, // 003D LDCONST R21 K18 - 0x5C581C00, // 003E MOVE R22 R14 - 0x7C500400, // 003F CALL R20 2 - 0x5C540800, // 0040 MOVE R21 R4 - 0x5C582800, // 0041 MOVE R22 R20 - 0x7C540200, // 0042 CALL R21 1 - 0x24542A06, // 0043 GT R21 R21 R6 - 0x78560003, // 0044 JMPF R21 #0049 - 0x5C540800, // 0045 MOVE R21 R4 - 0x5C582800, // 0046 MOVE R22 R20 - 0x7C540200, // 0047 CALL R21 1 - 0x5C182A00, // 0048 MOVE R6 R21 - 0x5C540800, // 0049 MOVE R21 R4 - 0x5C581E00, // 004A MOVE R22 R15 - 0x7C540200, // 004B CALL R21 1 - 0x24542A07, // 004C GT R21 R21 R7 - 0x78560003, // 004D JMPF R21 #0052 - 0x5C540800, // 004E MOVE R21 R4 - 0x5C581E00, // 004F MOVE R22 R15 - 0x7C540200, // 0050 CALL R21 1 - 0x5C1C2A00, // 0051 MOVE R7 R21 - 0x5C540800, // 0052 MOVE R21 R4 - 0x5C582200, // 0053 MOVE R22 R17 - 0x7C540200, // 0054 CALL R21 1 - 0x24542A08, // 0055 GT R21 R21 R8 - 0x78560003, // 0056 JMPF R21 #005B - 0x5C540800, // 0057 MOVE R21 R4 - 0x5C582200, // 0058 MOVE R22 R17 - 0x7C540200, // 0059 CALL R21 1 - 0x5C202A00, // 005A MOVE R8 R21 - 0x5C540800, // 005B MOVE R21 R4 - 0x5C582400, // 005C MOVE R22 R18 - 0x7C540200, // 005D CALL R21 1 - 0x24542A09, // 005E GT R21 R21 R9 - 0x78560003, // 005F JMPF R21 #0064 - 0x5C540800, // 0060 MOVE R21 R4 - 0x5C582400, // 0061 MOVE R22 R18 - 0x7C540200, // 0062 CALL R21 1 - 0x5C242A00, // 0063 MOVE R9 R21 - 0x5C540800, // 0064 MOVE R21 R4 - 0x5C582600, // 0065 MOVE R22 R19 - 0x7C540200, // 0066 CALL R21 1 - 0x24542A0A, // 0067 GT R21 R21 R10 - 0x78560003, // 0068 JMPF R21 #006D - 0x5C540800, // 0069 MOVE R21 R4 - 0x5C582600, // 006A MOVE R22 R19 - 0x7C540200, // 006B CALL R21 1 - 0x5C282A00, // 006C MOVE R10 R21 - 0x8C540B13, // 006D GETMET R21 R5 K19 - 0x605C0013, // 006E GETGBL R23 G19 - 0x7C5C0000, // 006F CALL R23 0 - 0x985E2814, // 0070 SETIDX R23 K20 R20 - 0x985E2A0F, // 0071 SETIDX R23 K21 R15 - 0x985E2C11, // 0072 SETIDX R23 K22 R17 - 0x985E2E12, // 0073 SETIDX R23 K23 R18 - 0x985E2013, // 0074 SETIDX R23 K16 R19 - 0x7C540400, // 0075 CALL R21 2 - 0x7001FFA0, // 0076 JMP #0018 - 0x582C0018, // 0077 LDCONST R11 K24 - 0xAC2C0200, // 0078 CATCH R11 1 0 - 0xB0080000, // 0079 RAISE 2 R0 R0 - 0x842C0001, // 007A CLOSURE R11 P1 - 0x5C301600, // 007B MOVE R12 R11 - 0x7C300000, // 007C CALL R12 0 - 0x84300002, // 007D CLOSURE R12 P2 - 0x84340003, // 007E CLOSURE R13 P3 - 0x60380018, // 007F GETGBL R14 G24 - 0x583C0019, // 0080 LDCONST R15 K25 - 0x5C401800, // 0081 MOVE R16 R12 - 0x5844001A, // 0082 LDCONST R17 K26 - 0x5C480C00, // 0083 MOVE R18 R6 - 0x7C400400, // 0084 CALL R16 2 - 0x5C441800, // 0085 MOVE R17 R12 - 0x5848001B, // 0086 LDCONST R18 K27 - 0x5C4C0E00, // 0087 MOVE R19 R7 - 0x7C440400, // 0088 CALL R17 2 - 0x5C481800, // 0089 MOVE R18 R12 - 0x584C001C, // 008A LDCONST R19 K28 - 0x5C501000, // 008B MOVE R20 R8 - 0x7C480400, // 008C CALL R18 2 - 0x5C4C1800, // 008D MOVE R19 R12 - 0x5850001D, // 008E LDCONST R20 K29 - 0x5C541200, // 008F MOVE R21 R9 - 0x7C4C0400, // 0090 CALL R19 2 - 0x5C501800, // 0091 MOVE R20 R12 - 0x5854001E, // 0092 LDCONST R21 K30 - 0x5C581400, // 0093 MOVE R22 R10 - 0x7C500400, // 0094 CALL R20 2 - 0x7C380C00, // 0095 CALL R14 6 - 0x603C0018, // 0096 GETGBL R15 G24 - 0x5840001F, // 0097 LDCONST R16 K31 - 0x00440D08, // 0098 ADD R17 R6 K8 - 0x08464011, // 0099 MUL R17 K32 R17 - 0x00480F08, // 009A ADD R18 R7 K8 - 0x084A4012, // 009B MUL R18 K32 R18 - 0x004C1108, // 009C ADD R19 R8 K8 - 0x084E4013, // 009D MUL R19 K32 R19 - 0x00501308, // 009E ADD R20 R9 K8 - 0x08524014, // 009F MUL R20 K32 R20 - 0x00541508, // 00A0 ADD R21 R10 K8 - 0x08564015, // 00A1 MUL R21 K32 R21 - 0x7C3C0C00, // 00A2 CALL R15 6 - 0x0008040E, // 00A3 ADD R2 R2 R14 - 0x0008040F, // 00A4 ADD R2 R2 R15 - 0x60400010, // 00A5 GETGBL R16 G16 - 0x5C440A00, // 00A6 MOVE R17 R5 - 0x7C400200, // 00A7 CALL R16 1 - 0xA802001A, // 00A8 EXBLK 0 #00C4 - 0x5C442000, // 00A9 MOVE R17 R16 - 0x7C440000, // 00AA CALL R17 0 - 0x60480018, // 00AB GETGBL R18 G24 - 0x584C0019, // 00AC LDCONST R19 K25 - 0x5C501800, // 00AD MOVE R20 R12 - 0x94542314, // 00AE GETIDX R21 R17 K20 - 0x5C580C00, // 00AF MOVE R22 R6 - 0x7C500400, // 00B0 CALL R20 2 - 0x5C541800, // 00B1 MOVE R21 R12 - 0x94582315, // 00B2 GETIDX R22 R17 K21 - 0x5C5C0E00, // 00B3 MOVE R23 R7 - 0x7C540400, // 00B4 CALL R21 2 - 0x5C581A00, // 00B5 MOVE R22 R13 - 0x945C2316, // 00B6 GETIDX R23 R17 K22 - 0x5C601000, // 00B7 MOVE R24 R8 - 0x7C580400, // 00B8 CALL R22 2 - 0x5C5C1A00, // 00B9 MOVE R23 R13 - 0x94602317, // 00BA GETIDX R24 R17 K23 - 0x5C641200, // 00BB MOVE R25 R9 - 0x7C5C0400, // 00BC CALL R23 2 - 0x5C601A00, // 00BD MOVE R24 R13 - 0x94642310, // 00BE GETIDX R25 R17 K16 - 0x5C681400, // 00BF MOVE R26 R10 - 0x7C600400, // 00C0 CALL R24 2 - 0x7C480C00, // 00C1 CALL R18 6 - 0x00080412, // 00C2 ADD R2 R2 R18 - 0x7001FFE4, // 00C3 JMP #00A9 - 0x58400018, // 00C4 LDCONST R16 K24 - 0xAC400200, // 00C5 CATCH R16 1 0 - 0xB0080000, // 00C6 RAISE 2 R0 R0 - 0x00080521, // 00C7 ADD R2 R2 K33 - 0xA0000000, // 00C8 CLOSE R0 - 0x80040400, // 00C9 RET 1 R2 + ( &(const binstruction[115]) { /* 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 + 0x8C080506, // 000D GETMET R2 R2 K6 + 0x5C100200, // 000E MOVE R4 R1 + 0x7C080400, // 000F CALL R2 2 + 0x50080000, // 0010 LDBOOL R2 0 0 + 0x580C0007, // 0011 LDCONST R3 K7 + 0x8C100108, // 0012 GETMET R4 R0 K8 + 0x7C100200, // 0013 CALL R4 1 + 0x4C140000, // 0014 LDNIL R5 + 0x20140805, // 0015 NE R5 R4 R5 + 0x78160027, // 0016 JMPF R5 #003F + 0x88140909, // 0017 GETMBR R5 R4 K9 + 0x1C140B0A, // 0018 EQ R5 R5 K10 + 0x78160024, // 0019 JMPF R5 #003F + 0x8814090B, // 001A GETMBR R5 R4 K11 + 0x1C140B0C, // 001B EQ R5 R5 K12 + 0x78160019, // 001C JMPF R5 #0037 + 0x50080200, // 001D LDBOOL R2 1 0 + 0x8C140100, // 001E GETMET R5 R0 K0 + 0x7C140200, // 001F CALL R5 1 + 0x8C140108, // 0020 GETMET R5 R0 K8 + 0x7C140200, // 0021 CALL R5 1 + 0x4C180000, // 0022 LDNIL R6 + 0x20180A06, // 0023 NE R6 R5 R6 + 0x781A0009, // 0024 JMPF R6 #002F + 0x88180B09, // 0025 GETMBR R6 R5 K9 + 0x1C180D0A, // 0026 EQ R6 R6 K10 + 0x781A0006, // 0027 JMPF R6 #002F + 0x88180B0B, // 0028 GETMBR R6 R5 K11 + 0x1C180D0D, // 0029 EQ R6 R6 K13 + 0x781A0003, // 002A JMPF R6 #002F + 0x8C180100, // 002B GETMET R6 R0 K0 + 0x7C180200, // 002C CALL R6 1 + 0x580C000E, // 002D LDCONST R3 K14 + 0x70020006, // 002E JMP #0036 + 0x8C18010F, // 002F GETMET R6 R0 K15 + 0x88200110, // 0030 GETMBR R8 R0 K16 + 0x7C180400, // 0031 CALL R6 2 + 0x8C1C0111, // 0032 GETMET R7 R0 K17 + 0x58240012, // 0033 LDCONST R9 K18 + 0x7C1C0400, // 0034 CALL R7 2 + 0x880C0D13, // 0035 GETMBR R3 R6 K19 + 0x70020006, // 0036 JMP #003E + 0x8814090B, // 0037 GETMBR R5 R4 K11 + 0x1C140B0D, // 0038 EQ R5 R5 K13 + 0x78160003, // 0039 JMPF R5 #003E + 0x50080200, // 003A LDBOOL R2 1 0 + 0x8C140100, // 003B GETMET R5 R0 K0 + 0x7C140200, // 003C CALL R5 1 + 0x580C000E, // 003D LDCONST R3 K14 + 0x7002000D, // 003E JMP #004D + 0x4C140000, // 003F LDNIL R5 + 0x20140805, // 0040 NE R5 R4 R5 + 0x7816000A, // 0041 JMPF R5 #004D + 0x88140909, // 0042 GETMBR R5 R4 K9 + 0x1C140B14, // 0043 EQ R5 R5 K20 + 0x78160007, // 0044 JMPF R5 #004D + 0x50080200, // 0045 LDBOOL R2 1 0 + 0x8C14010F, // 0046 GETMET R5 R0 K15 + 0x881C0110, // 0047 GETMBR R7 R0 K16 + 0x7C140400, // 0048 CALL R5 2 + 0x8C180111, // 0049 GETMET R6 R0 K17 + 0x58200012, // 004A LDCONST R8 K18 + 0x7C180400, // 004B CALL R6 2 + 0x880C0B13, // 004C GETMBR R3 R5 K19 + 0x8C140115, // 004D GETMET R5 R0 K21 + 0x7C140200, // 004E CALL R5 1 + 0x780A0010, // 004F JMPF R2 #0061 + 0x8C140116, // 0050 GETMET R5 R0 K22 + 0x601C0018, // 0051 GETGBL R7 G24 + 0x58200017, // 0052 LDCONST R8 K23 + 0x5C240200, // 0053 MOVE R9 R1 + 0x5C280600, // 0054 MOVE R10 R3 + 0x7C1C0600, // 0055 CALL R7 3 + 0x7C140400, // 0056 CALL R5 2 + 0x8C140118, // 0057 GETMET R5 R0 K24 + 0x7C140200, // 0058 CALL R5 1 + 0x74160005, // 0059 JMPT R5 #0060 + 0x8C140119, // 005A GETMET R5 R0 K25 + 0x7C140200, // 005B CALL R5 1 + 0x74160002, // 005C JMPT R5 #0060 + 0x8C14011A, // 005D GETMET R5 R0 K26 + 0x7C140200, // 005E CALL R5 1 + 0x7001FFF6, // 005F JMP #0057 + 0x7002000E, // 0060 JMP #0070 + 0x8C140116, // 0061 GETMET R5 R0 K22 + 0x601C0018, // 0062 GETGBL R7 G24 + 0x5820001B, // 0063 LDCONST R8 K27 + 0x5C240200, // 0064 MOVE R9 R1 + 0x7C1C0400, // 0065 CALL R7 2 + 0x7C140400, // 0066 CALL R5 2 + 0x8C140118, // 0067 GETMET R5 R0 K24 + 0x7C140200, // 0068 CALL R5 1 + 0x74160005, // 0069 JMPT R5 #0070 + 0x8C140119, // 006A GETMET R5 R0 K25 + 0x7C140200, // 006B CALL R5 1 + 0x74160002, // 006C JMPT R5 #0070 + 0x8C14011A, // 006D GETMET R5 R0 K26 + 0x7C140200, // 006E CALL R5 1 + 0x7001FFF6, // 006F JMP #0067 + 0x8C14011C, // 0070 GETMET R5 R0 K28 + 0x7C140200, // 0071 CALL R5 1 + 0x80000000, // 0072 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: generate_engine_run +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_generate_engine_run, /* name */ + be_nested_proto( + 11, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 9]) { /* constants */ + /* K0 */ be_nested_str_weak(run_statements), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(has_template_calls), + /* K3 */ be_nested_str_weak(name), + /* K4 */ be_nested_str_weak(comment), + /* K5 */ be_nested_str_weak(add), + /* K6 */ be_nested_str_weak(engine_X2Eadd_X28_X25s__X29_X25s), + /* K7 */ be_nested_str_weak(stop_iteration), + /* K8 */ be_nested_str_weak(engine_X2Erun_X28_X29), + }), + be_str_weak(generate_engine_run), + &be_const_str_solidified, + ( &(const binstruction[31]) { /* code */ + 0x6004000C, // 0000 GETGBL R1 G12 + 0x88080100, // 0001 GETMBR R2 R0 K0 + 0x7C040200, // 0002 CALL R1 1 + 0x1C040301, // 0003 EQ R1 R1 K1 + 0x78060002, // 0004 JMPF R1 #0008 + 0x88040102, // 0005 GETMBR R1 R0 K2 + 0x74060000, // 0006 JMPT R1 #0008 + 0x80000200, // 0007 RET 0 + 0x60040010, // 0008 GETGBL R1 G16 + 0x88080100, // 0009 GETMBR R2 R0 K0 + 0x7C040200, // 000A CALL R1 1 + 0xA802000B, // 000B EXBLK 0 #0018 + 0x5C080200, // 000C MOVE R2 R1 + 0x7C080000, // 000D CALL R2 0 + 0x940C0503, // 000E GETIDX R3 R2 K3 + 0x94100504, // 000F GETIDX R4 R2 K4 + 0x8C140105, // 0010 GETMET R5 R0 K5 + 0x601C0018, // 0011 GETGBL R7 G24 + 0x58200006, // 0012 LDCONST R8 K6 + 0x5C240600, // 0013 MOVE R9 R3 + 0x5C280800, // 0014 MOVE R10 R4 + 0x7C1C0600, // 0015 CALL R7 3 + 0x7C140400, // 0016 CALL R5 2 + 0x7001FFF3, // 0017 JMP #000C + 0x58040007, // 0018 LDCONST R1 K7 + 0xAC040200, // 0019 CATCH R1 1 0 + 0xB0080000, // 001A RAISE 2 R0 R0 + 0x8C040105, // 001B GETMET R1 R0 K5 + 0x580C0008, // 001C LDCONST R3 K8 + 0x7C040400, // 001D CALL R1 2 + 0x80000000, // 001E RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: skip_statement +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_skip_statement, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(at_end), + /* K1 */ be_nested_str_weak(current), + /* K2 */ be_nested_str_weak(type), + /* K3 */ be_nested_str_weak(next), + }), + be_str_weak(skip_statement), + &be_const_str_solidified, + ( &(const binstruction[17]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x7406000C, // 0002 JMPT R1 #0010 + 0x8C040101, // 0003 GETMET R1 R0 K1 + 0x7C040200, // 0004 CALL R1 1 + 0x4C080000, // 0005 LDNIL R2 + 0x1C080202, // 0006 EQ R2 R1 R2 + 0x740A0003, // 0007 JMPT R2 #000C + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0x540E0022, // 0009 LDINT R3 35 + 0x1C080403, // 000A EQ R2 R2 R3 + 0x780A0000, // 000B JMPF R2 #000D + 0x70020002, // 000C JMP #0010 + 0x8C080103, // 000D GETMET R2 R0 K3 + 0x7C080200, // 000E CALL R2 1 + 0x7001FFEF, // 000F JMP #0000 + 0x80000000, // 0010 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _create_instance_for_validation +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__create_instance_for_validation, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(symbol_table), + /* K1 */ be_nested_str_weak(get), + /* K2 */ be_nested_str_weak(instance), + }), + be_str_weak(_create_instance_for_validation), + &be_const_str_solidified, + ( &(const binstruction[11]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x4C0C0000, // 0004 LDNIL R3 + 0x200C0403, // 0005 NE R3 R2 R3 + 0x780E0001, // 0006 JMPF R3 #0009 + 0x880C0502, // 0007 GETMBR R3 R2 K2 + 0x70020000, // 0008 JMP #000A + 0x4C0C0000, // 0009 LDNIL R3 + 0x80040600, // 000A RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: _process_user_function_call +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler__process_user_function_call, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[10]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(process_function_arguments), + /* K3 */ be_nested_str_weak(), + /* K4 */ be_nested_str_weak(engine_X2C_X20_X25s), + /* K5 */ be_nested_str_weak(engine), + /* K6 */ be_nested_str_weak(animation_X2Eget_user_function_X28_X27_X25s_X27_X29_X28_X25s_X29), + /* K7 */ be_nested_str_weak(error), + /* K8 */ be_nested_str_weak(User_X20functions_X20must_X20be_X20called_X20with_X20parentheses_X3A_X20user_X2Efunction_name_X28_X29), + /* K9 */ be_nested_str_weak(nil), + }), + be_str_weak(_process_user_function_call), + &be_const_str_solidified, + ( &(const binstruction[34]) { /* code */ + 0x8C080100, // 0000 GETMET R2 R0 K0 + 0x7C080200, // 0001 CALL R2 1 + 0x4C0C0000, // 0002 LDNIL R3 + 0x20080403, // 0003 NE R2 R2 R3 + 0x780A0017, // 0004 JMPF R2 #001D + 0x8C080100, // 0005 GETMET R2 R0 K0 + 0x7C080200, // 0006 CALL R2 1 + 0x88080501, // 0007 GETMBR R2 R2 K1 + 0x540E0017, // 0008 LDINT R3 24 + 0x1C080403, // 0009 EQ R2 R2 R3 + 0x780A0011, // 000A JMPF R2 #001D + 0x8C080102, // 000B GETMET R2 R0 K2 + 0x50100200, // 000C LDBOOL R4 1 0 + 0x7C080400, // 000D CALL R2 2 + 0x200C0503, // 000E NE R3 R2 K3 + 0x780E0004, // 000F JMPF R3 #0015 + 0x600C0018, // 0010 GETGBL R3 G24 + 0x58100004, // 0011 LDCONST R4 K4 + 0x5C140400, // 0012 MOVE R5 R2 + 0x7C0C0400, // 0013 CALL R3 2 + 0x70020000, // 0014 JMP #0016 + 0x580C0005, // 0015 LDCONST R3 K5 + 0x60100018, // 0016 GETGBL R4 G24 + 0x58140006, // 0017 LDCONST R5 K6 + 0x5C180200, // 0018 MOVE R6 R1 + 0x5C1C0600, // 0019 MOVE R7 R3 + 0x7C100600, // 001A CALL R4 3 + 0x80040800, // 001B RET 1 R4 + 0x70020003, // 001C JMP #0021 + 0x8C080107, // 001D GETMET R2 R0 K7 + 0x58100008, // 001E LDCONST R4 K8 + 0x7C080400, // 001F CALL R2 2 + 0x80061200, // 0020 RET 1 K9 + 0x80000000, // 0021 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_error_report +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_get_error_report, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(), + /* K1 */ be_nested_str_weak(has_warnings), + /* K2 */ be_nested_str_weak(Compilation_X20warnings_X3A_X0A), + /* K3 */ be_nested_str_weak(warnings), + /* K4 */ be_nested_str_weak(_X20_X20), + /* K5 */ be_nested_str_weak(_X0A), + /* K6 */ be_nested_str_weak(stop_iteration), + /* K7 */ be_nested_str_weak(No_X20compilation_X20warnings), + }), + be_str_weak(get_error_report), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x58040000, // 0000 LDCONST R1 K0 + 0x8C080101, // 0001 GETMET R2 R0 K1 + 0x7C080200, // 0002 CALL R2 1 + 0x780A000D, // 0003 JMPF R2 #0012 + 0x00040302, // 0004 ADD R1 R1 K2 + 0x60080010, // 0005 GETGBL R2 G16 + 0x880C0103, // 0006 GETMBR R3 R0 K3 + 0x7C080200, // 0007 CALL R2 1 + 0xA8020005, // 0008 EXBLK 0 #000F + 0x5C0C0400, // 0009 MOVE R3 R2 + 0x7C0C0000, // 000A CALL R3 0 + 0x00120803, // 000B ADD R4 K4 R3 + 0x00100905, // 000C ADD R4 R4 K5 + 0x00040204, // 000D ADD R1 R1 R4 + 0x7001FFF9, // 000E JMP #0009 + 0x58080006, // 000F LDCONST R2 K6 + 0xAC080200, // 0010 CATCH R2 1 0 + 0xB0080000, // 0011 RAISE 2 R0 R0 + 0x1C080300, // 0012 EQ R2 R1 K0 + 0x780A0000, // 0013 JMPF R2 #0015 + 0x80060E00, // 0014 RET 1 K7 + 0x80040200, // 0015 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: expect_left_bracket +********************************************************************/ +be_local_closure(class_SimpleDSLTranspiler_expect_left_bracket, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(current), + /* K1 */ be_nested_str_weak(type), + /* K2 */ be_nested_str_weak(next), + /* K3 */ be_nested_str_weak(error), + /* K4 */ be_nested_str_weak(Expected_X20_X27_X5B_X27), + }), + be_str_weak(expect_left_bracket), + &be_const_str_solidified, + ( &(const binstruction[16]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x4C080000, // 0002 LDNIL R2 + 0x20080202, // 0003 NE R2 R1 R2 + 0x780A0006, // 0004 JMPF R2 #000C + 0x88080301, // 0005 GETMBR R2 R1 K1 + 0x540E001B, // 0006 LDINT R3 28 + 0x1C080403, // 0007 EQ R2 R2 R3 + 0x780A0002, // 0008 JMPF R2 #000C + 0x8C080102, // 0009 GETMET R2 R0 K2 + 0x7C080200, // 000A CALL R2 1 + 0x70020002, // 000B JMP #000F + 0x8C080103, // 000C GETMET R2 R0 K3 + 0x58100004, // 000D LDCONST R4 K4 + 0x7C080400, // 000E CALL R2 2 + 0x80000000, // 000F RET 0 }) ) ); @@ -16045,566 +15500,212 @@ be_local_closure(class_SimpleDSLTranspiler_get_symbol_table_report, /* name */ ** Solidified class: SimpleDSLTranspiler ********************************************************************/ be_local_class(SimpleDSLTranspiler, - 9, + 8, NULL, - be_nested_map(125, + be_nested_map(124, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(_validate_single_parameter, 52), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, - { be_const_key_weak(expect_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, - { be_const_key_weak(process_template, 48), be_const_closure(class_SimpleDSLTranspiler_process_template_closure) }, - { be_const_key_weak(warnings, 65), be_const_var(3) }, - { be_const_key_weak(join_output, -1), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, - { be_const_key_weak(expect_comma, 59), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, - { be_const_key_weak(get_symbol_table_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_symbol_table_report_closure) }, - { be_const_key_weak(_process_user_function_call, 18), be_const_closure(class_SimpleDSLTranspiler__process_user_function_call_closure) }, - { be_const_key_weak(_unwrap_resolve, 27), be_const_closure(class_SimpleDSLTranspiler__unwrap_resolve_closure) }, - { be_const_key_weak(peek, 83), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, - { be_const_key_weak(process_multiplicative_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, - { be_const_key_weak(get_error_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, - { be_const_key_weak(add, -1), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, - { be_const_key_weak(_validate_template_parameter_name, 82), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_name_closure) }, - { be_const_key_weak(convert_to_vrgb, -1), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, - { be_const_key_weak(check_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, - { be_const_key_weak(expect_left_bracket, 97), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, - { be_const_key_weak(process_percentage_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, - { be_const_key_weak(check_right_bracket, 42), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, - { be_const_key_weak(_create_instance_for_validation, -1), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, - { be_const_key_weak(CONTEXT_REPEAT_COUNT, 12), be_const_int(6) }, - { be_const_key_weak(_process_parameters_core, -1), be_const_closure(class_SimpleDSLTranspiler__process_parameters_core_closure) }, - { be_const_key_weak(generate_template_function, -1), be_const_closure(class_SimpleDSLTranspiler_generate_template_function_closure) }, - { be_const_key_weak(_validate_template_parameter_type, 49), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_type_closure) }, - { be_const_key_weak(CONTEXT_ANIMATION, 117), be_const_int(3) }, - { be_const_key_weak(expect_colon, 121), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, - { be_const_key_weak(tokens, -1), be_const_var(0) }, - { be_const_key_weak(_validate_template_parameter_usage, 108), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage_closure) }, - { be_const_key_weak(check_right_paren, 102), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, - { be_const_key_weak(process_standalone_log, -1), be_const_closure(class_SimpleDSLTranspiler_process_standalone_log_closure) }, - { be_const_key_weak(symbol_table, -1), be_const_var(6) }, - { be_const_key_weak(get_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_get_warnings_closure) }, - { be_const_key_weak(_process_named_arguments_for_color_provider, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider_closure) }, - { be_const_key_weak(process_log_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_log_call_closure) }, - { be_const_key_weak(has_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_has_warnings_closure) }, - { be_const_key_weak(convert_color, -1), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, - { be_const_key_weak(skip_whitespace, 14), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, - { be_const_key_weak(process_wait_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent_closure) }, - { be_const_key_weak(_validate_color_provider_factory_exists, 32), be_const_closure(class_SimpleDSLTranspiler__validate_color_provider_factory_exists_closure) }, - { be_const_key_weak(process_array_literal, -1), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, - { be_const_key_weak(run_statements, -1), be_const_var(4) }, - { be_const_key_weak(_is_valid_identifier, -1), be_const_closure(class_SimpleDSLTranspiler__is_valid_identifier_closure) }, - { be_const_key_weak(_determine_symbol_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__determine_symbol_return_type_closure) }, - { be_const_key_weak(_split_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler__split_function_arguments_closure) }, - { be_const_key_weak(expect_left_paren, 115), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, - { be_const_key_weak(generate_engine_run, -1), be_const_closure(class_SimpleDSLTranspiler_generate_engine_run_closure) }, - { be_const_key_weak(warning, 111), be_const_closure(class_SimpleDSLTranspiler_warning_closure) }, - { be_const_key_weak(process_sequence_assignment_fluent, 8), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent_closure) }, - { be_const_key_weak(next, -1), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, - { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, - { be_const_key_weak(_validate_object_reference, 62), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, - { be_const_key_weak(expect_assign, -1), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, - { be_const_key_weak(CONTEXT_GENERIC, -1), be_const_int(10) }, - { be_const_key_weak(process_additive_expression, 78), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_closure) }, - { be_const_key_weak(expect_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, - { be_const_key_weak(_add_typed_parameter_to_symbol_table, -1), be_const_closure(class_SimpleDSLTranspiler__add_typed_parameter_to_symbol_table_closure) }, - { be_const_key_weak(process_sequence_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, - { be_const_key_weak(has_template_calls, -1), be_const_var(8) }, - { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, - { be_const_key_weak(init, 104), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, - { be_const_key_weak(CONTEXT_ARGUMENT, 54), be_const_int(4) }, - { be_const_key_weak(process_palette_color, 58), be_const_closure(class_SimpleDSLTranspiler_process_palette_color_closure) }, - { be_const_key_weak(validate_user_name, -1), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, - { be_const_key_weak(expect_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, - { be_const_key_weak(CONTEXT_TIME, -1), be_const_int(8) }, - { be_const_key_weak(process_animation, -1), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, - { be_const_key_weak(_process_simple_value_assignment, -1), be_const_closure(class_SimpleDSLTranspiler__process_simple_value_assignment_closure) }, - { be_const_key_weak(process_unary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, - { be_const_key_weak(process_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_closure) }, - { be_const_key_weak(expect_keyword, -1), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, - { be_const_key_weak(get_indent, -1), be_const_closure(class_SimpleDSLTranspiler_get_indent_closure) }, - { be_const_key_weak(process_log_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_log_statement_fluent_closure) }, - { be_const_key_weak(process_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, - { be_const_key_weak(output, -1), be_const_var(2) }, - { be_const_key_weak(_validate_template_call_arguments, 90), be_const_closure(class_SimpleDSLTranspiler__validate_template_call_arguments_closure) }, - { be_const_key_weak(_process_named_arguments_unified, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_unified_closure) }, - { be_const_key_weak(_validate_value_provider_reference, 93), be_const_closure(class_SimpleDSLTranspiler__validate_value_provider_reference_closure) }, - { be_const_key_weak(skip_whitespace_including_newlines, -1), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, - { be_const_key_weak(process_restart_statement_fluent, 45), be_const_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent_closure) }, - { be_const_key_weak(process_berry_code_block, -1), be_const_closure(class_SimpleDSLTranspiler_process_berry_code_block_closure) }, - { be_const_key_weak(expect_dot, -1), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, - { be_const_key_weak(CONTEXT_EXPRESSION, -1), be_const_int(9) }, - { be_const_key_weak(CONTEXT_COLOR, -1), be_const_int(2) }, - { be_const_key_weak(indent_level, -1), be_const_var(7) }, - { be_const_key_weak(expect_left_brace, 30), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, - { be_const_key_weak(process_sequence_assignment_generic, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic_closure) }, - { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, - { be_const_key_weak(CONTEXT_PROPERTY, -1), be_const_int(5) }, - { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, - { be_const_key_weak(can_use_as_identifier, -1), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, - { be_const_key_weak(at_end, 66), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, - { be_const_key_weak(process_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, - { be_const_key_weak(pos, 9), be_const_var(1) }, - { be_const_key_weak(process_property_assignment, -1), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, - { be_const_key_weak(process_repeat_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent_closure) }, - { be_const_key_weak(process_nested_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, - { be_const_key_weak(CONTEXT_ARRAY_ELEMENT, -1), be_const_int(7) }, - { be_const_key_weak(process_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, - { be_const_key_weak(current, -1), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, - { be_const_key_weak(process_import, -1), be_const_closure(class_SimpleDSLTranspiler_process_import_closure) }, - { be_const_key_weak(transpile_template_body, 69), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_closure) }, - { be_const_key_weak(generate_default_strip_initialization, -1), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, - { be_const_key_weak(process_primary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, - { be_const_key_weak(CONTEXT_VARIABLE, -1), be_const_int(1) }, - { be_const_key_weak(_determine_function_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__determine_function_return_type_closure) }, - { be_const_key_weak(process_play_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, - { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, - { be_const_key_weak(strip_initialized, -1), be_const_var(5) }, - { be_const_key_weak(transpile, 113), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, - { be_const_key_weak(_process_named_arguments_for_animation, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_animation_closure) }, - { be_const_key_weak(_create_symbol_by_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type_closure) }, - { be_const_key_weak(CONTEXT_COLOR_PROVIDER, 85), be_const_int(11) }, - { be_const_key_weak(process_color, -1), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, - { be_const_key_weak(_validate_animation_factory_exists, -1), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, - { be_const_key_weak(error, 29), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, - { be_const_key_weak(process_time_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, - { be_const_key_weak(get_named_color_value, 22), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, + { be_const_key_weak(CONTEXT_COLOR_PROVIDER, -1), be_const_int(11) }, { be_const_key_weak(convert_time_to_ms, -1), be_const_closure(class_SimpleDSLTranspiler_convert_time_to_ms_closure) }, - { be_const_key_weak(ExpressionResult, -1), be_const_class(be_class_ExpressionResult) }, + { be_const_key_weak(skip_whitespace_including_newlines, -1), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_including_newlines_closure) }, + { be_const_key_weak(expect_left_paren, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_paren_closure) }, + { be_const_key_weak(expect_left_brace, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_brace_closure) }, + { be_const_key_weak(transpile_template_body, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_template_body_closure) }, + { be_const_key_weak(expect_right_paren, 113), be_const_closure(class_SimpleDSLTranspiler_expect_right_paren_closure) }, + { be_const_key_weak(expect_left_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_left_bracket_closure) }, + { be_const_key_weak(_split_function_arguments, 87), be_const_closure(class_SimpleDSLTranspiler__split_function_arguments_closure) }, + { be_const_key_weak(get_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_get_warnings_closure) }, + { be_const_key_weak(CONTEXT_REPEAT_COUNT, -1), be_const_int(6) }, + { be_const_key_weak(process_wait_statement_fluent, 121), be_const_closure(class_SimpleDSLTranspiler_process_wait_statement_fluent_closure) }, + { be_const_key_weak(process_run, -1), be_const_closure(class_SimpleDSLTranspiler_process_run_closure) }, + { be_const_key_weak(CONTEXT_VARIABLE, 74), be_const_int(1) }, + { be_const_key_weak(get_error_report, 17), be_const_closure(class_SimpleDSLTranspiler_get_error_report_closure) }, + { be_const_key_weak(output, 58), be_const_var(1) }, + { be_const_key_weak(CONTEXT_PROPERTY, 45), be_const_int(5) }, + { be_const_key_weak(_process_user_function_call, -1), be_const_closure(class_SimpleDSLTranspiler__process_user_function_call_closure) }, + { be_const_key_weak(_create_instance_for_validation, -1), be_const_closure(class_SimpleDSLTranspiler__create_instance_for_validation_closure) }, + { be_const_key_weak(_validate_template_parameter_usage, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_usage_closure) }, + { be_const_key_weak(_determine_symbol_return_type, 99), be_const_closure(class_SimpleDSLTranspiler__determine_symbol_return_type_closure) }, + { be_const_key_weak(process_berry_code_block, -1), be_const_closure(class_SimpleDSLTranspiler_process_berry_code_block_closure) }, + { be_const_key_weak(_process_named_arguments_for_color_provider, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_for_color_provider_closure) }, + { be_const_key_weak(join_output, -1), be_const_closure(class_SimpleDSLTranspiler_join_output_closure) }, + { be_const_key_weak(CONTEXT_ANIMATION, -1), be_const_int(3) }, + { be_const_key_weak(_validate_animation_factory_exists, 14), be_const_closure(class_SimpleDSLTranspiler__validate_animation_factory_exists_closure) }, + { be_const_key_weak(symbol_table, -1), be_const_var(5) }, + { be_const_key_weak(skip_statement, -1), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, + { be_const_key_weak(warnings, -1), be_const_var(2) }, + { be_const_key_weak(process_unary_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_unary_expression_closure) }, + { be_const_key_weak(process_value, 12), be_const_closure(class_SimpleDSLTranspiler_process_value_closure) }, + { be_const_key_weak(process_restart_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_restart_statement_fluent_closure) }, + { be_const_key_weak(_process_parameters_core, 41), be_const_closure(class_SimpleDSLTranspiler__process_parameters_core_closure) }, + { be_const_key_weak(transpile, -1), be_const_closure(class_SimpleDSLTranspiler_transpile_closure) }, + { be_const_key_weak(process_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_arguments_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(_validate_value_provider_reference, -1), be_const_closure(class_SimpleDSLTranspiler__validate_value_provider_reference_closure) }, + { be_const_key_weak(_is_valid_identifier, -1), be_const_closure(class_SimpleDSLTranspiler__is_valid_identifier_closure) }, + { be_const_key_weak(_unwrap_resolve, 103), be_const_closure(class_SimpleDSLTranspiler__unwrap_resolve_closure) }, + { be_const_key_weak(process_template, -1), be_const_closure(class_SimpleDSLTranspiler_process_template_closure) }, + { be_const_key_weak(skip_function_arguments, -1), be_const_closure(class_SimpleDSLTranspiler_skip_function_arguments_closure) }, + { be_const_key_weak(at_end, -1), be_const_closure(class_SimpleDSLTranspiler_at_end_closure) }, + { be_const_key_weak(process_nested_function_call, 93), be_const_closure(class_SimpleDSLTranspiler_process_nested_function_call_closure) }, + { be_const_key_weak(generate_default_strip_initialization, 46), be_const_closure(class_SimpleDSLTranspiler_generate_default_strip_initialization_closure) }, + { be_const_key_weak(check_right_bracket, 51), be_const_closure(class_SimpleDSLTranspiler_check_right_bracket_closure) }, + { be_const_key_weak(add, -1), be_const_closure(class_SimpleDSLTranspiler_add_closure) }, + { be_const_key_weak(process_event_handler, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_handler_closure) }, + { be_const_key_weak(_validate_template_call_arguments, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_call_arguments_closure) }, + { be_const_key_weak(process_log_call, 67), be_const_closure(class_SimpleDSLTranspiler_process_log_call_closure) }, + { be_const_key_weak(process_standalone_log, 39), be_const_closure(class_SimpleDSLTranspiler_process_standalone_log_closure) }, + { be_const_key_weak(get_symbol_table_report, -1), be_const_closure(class_SimpleDSLTranspiler_get_symbol_table_report_closure) }, + { be_const_key_weak(process_repeat_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_repeat_statement_fluent_closure) }, + { be_const_key_weak(process_property_assignment, 94), be_const_closure(class_SimpleDSLTranspiler_process_property_assignment_closure) }, + { be_const_key_weak(process_sequence_assignment_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_fluent_closure) }, + { be_const_key_weak(skip_whitespace, 59), be_const_closure(class_SimpleDSLTranspiler_skip_whitespace_closure) }, + { be_const_key_weak(get_named_color_value, -1), be_const_closure(class_SimpleDSLTranspiler_get_named_color_value_closure) }, + { be_const_key_weak(CONTEXT_TIME, 119), be_const_int(8) }, + { be_const_key_weak(error, -1), be_const_closure(class_SimpleDSLTranspiler_error_closure) }, + { be_const_key_weak(_add_typed_parameter_to_symbol_table, 28), be_const_closure(class_SimpleDSLTranspiler__add_typed_parameter_to_symbol_table_closure) }, + { be_const_key_weak(CONTEXT_GENERIC, -1), be_const_int(10) }, + { be_const_key_weak(expect_dot, 40), be_const_closure(class_SimpleDSLTranspiler_expect_dot_closure) }, + { be_const_key_weak(_process_simple_value_assignment, -1), be_const_closure(class_SimpleDSLTranspiler__process_simple_value_assignment_closure) }, + { be_const_key_weak(expect_identifier, 32), be_const_closure(class_SimpleDSLTranspiler_expect_identifier_closure) }, + { be_const_key_weak(validate_user_name, 105), be_const_closure(class_SimpleDSLTranspiler_validate_user_name_closure) }, + { be_const_key_weak(process_sequence_statement, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_statement_closure) }, + { be_const_key_weak(can_use_as_identifier, 71), be_const_closure(class_SimpleDSLTranspiler_can_use_as_identifier_closure) }, + { be_const_key_weak(process_color, 95), be_const_closure(class_SimpleDSLTranspiler_process_color_closure) }, + { be_const_key_weak(strip_initialized, -1), be_const_var(4) }, + { be_const_key_weak(expect_comma, -1), be_const_closure(class_SimpleDSLTranspiler_expect_comma_closure) }, + { be_const_key_weak(expect_right_brace, 44), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, + { be_const_key_weak(ExpressionResult, 101), be_const_class(be_class_ExpressionResult) }, + { be_const_key_weak(expect_assign, -1), be_const_closure(class_SimpleDSLTranspiler_expect_assign_closure) }, + { be_const_key_weak(expect_keyword, -1), be_const_closure(class_SimpleDSLTranspiler_expect_keyword_closure) }, + { be_const_key_weak(collect_inline_comment, -1), be_const_closure(class_SimpleDSLTranspiler_collect_inline_comment_closure) }, + { be_const_key_weak(CONTEXT_ARRAY_ELEMENT, 123), be_const_int(7) }, + { be_const_key_weak(process_time_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_time_value_closure) }, + { be_const_key_weak(process_array_literal, -1), be_const_closure(class_SimpleDSLTranspiler_process_array_literal_closure) }, + { be_const_key_weak(has_warnings, -1), be_const_closure(class_SimpleDSLTranspiler_has_warnings_closure) }, + { be_const_key_weak(process_import, -1), be_const_closure(class_SimpleDSLTranspiler_process_import_closure) }, + { be_const_key_weak(_process_named_arguments_unified, -1), be_const_closure(class_SimpleDSLTranspiler__process_named_arguments_unified_closure) }, + { be_const_key_weak(convert_to_vrgb, 61), be_const_closure(class_SimpleDSLTranspiler_convert_to_vrgb_closure) }, + { be_const_key_weak(init, -1), be_const_closure(class_SimpleDSLTranspiler_init_closure) }, + { be_const_key_weak(process_event_parameters, 52), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, + { be_const_key_weak(peek, -1), be_const_closure(class_SimpleDSLTranspiler_peek_closure) }, + { be_const_key_weak(_determine_function_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__determine_function_return_type_closure) }, + { be_const_key_weak(check_right_paren, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_paren_closure) }, + { be_const_key_weak(has_template_calls, -1), be_const_var(7) }, + { be_const_key_weak(process_sequence_assignment_generic, 86), be_const_closure(class_SimpleDSLTranspiler_process_sequence_assignment_generic_closure) }, + { be_const_key_weak(process_multiplicative_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_multiplicative_expression_closure) }, + { be_const_key_weak(run_statements, -1), be_const_var(3) }, + { be_const_key_weak(process_palette_color, 83), be_const_closure(class_SimpleDSLTranspiler_process_palette_color_closure) }, + { be_const_key_weak(warning, 81), be_const_closure(class_SimpleDSLTranspiler_warning_closure) }, + { be_const_key_weak(CONTEXT_COLOR, 75), be_const_int(2) }, { be_const_key_weak(process_palette, -1), be_const_closure(class_SimpleDSLTranspiler_process_palette_closure) }, - { be_const_key_weak(expect_right_brace, 10), be_const_closure(class_SimpleDSLTranspiler_expect_right_brace_closure) }, - { be_const_key_weak(expect_number, 122), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, - { be_const_key_weak(process_event_parameters, -1), be_const_closure(class_SimpleDSLTranspiler_process_event_parameters_closure) }, - { be_const_key_weak(skip_statement, 6), be_const_closure(class_SimpleDSLTranspiler_skip_statement_closure) }, - { be_const_key_weak(process_set, 3), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, + { be_const_key_weak(generate_template_function_direct, -1), be_const_closure(class_SimpleDSLTranspiler_generate_template_function_direct_closure) }, + { be_const_key_weak(expect_right_bracket, -1), be_const_closure(class_SimpleDSLTranspiler_expect_right_bracket_closure) }, + { be_const_key_weak(next, 65), be_const_closure(class_SimpleDSLTranspiler_next_closure) }, + { be_const_key_weak(process_percentage_value, -1), be_const_closure(class_SimpleDSLTranspiler_process_percentage_value_closure) }, + { be_const_key_weak(check_right_brace, -1), be_const_closure(class_SimpleDSLTranspiler_check_right_brace_closure) }, + { be_const_key_weak(process_log_statement_fluent, 30), be_const_closure(class_SimpleDSLTranspiler_process_log_statement_fluent_closure) }, + { be_const_key_weak(convert_color, 56), be_const_closure(class_SimpleDSLTranspiler_convert_color_closure) }, + { be_const_key_weak(process_additive_expression, -1), be_const_closure(class_SimpleDSLTranspiler_process_additive_expression_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(process_play_statement_fluent, -1), be_const_closure(class_SimpleDSLTranspiler_process_play_statement_fluent_closure) }, + { be_const_key_weak(expect_colon, -1), be_const_closure(class_SimpleDSLTranspiler_expect_colon_closure) }, + { be_const_key_weak(CONTEXT_EXPRESSION, -1), be_const_int(9) }, + { be_const_key_weak(process_primary_expression, 43), be_const_closure(class_SimpleDSLTranspiler_process_primary_expression_closure) }, + { be_const_key_weak(_validate_template_parameter_name, -1), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_name_closure) }, + { be_const_key_weak(process_function_call, -1), be_const_closure(class_SimpleDSLTranspiler_process_function_call_closure) }, + { be_const_key_weak(_create_symbol_by_return_type, -1), be_const_closure(class_SimpleDSLTranspiler__create_symbol_by_return_type_closure) }, + { be_const_key_weak(CONTEXT_ARGUMENT, 38), be_const_int(4) }, + { be_const_key_weak(pull_lexer, 37), be_const_var(0) }, + { be_const_key_weak(_validate_object_reference, 34), be_const_closure(class_SimpleDSLTranspiler__validate_object_reference_closure) }, + { be_const_key_weak(get_indent, -1), be_const_closure(class_SimpleDSLTranspiler_get_indent_closure) }, + { be_const_key_weak(process_sequence, -1), be_const_closure(class_SimpleDSLTranspiler_process_sequence_closure) }, + { be_const_key_weak(generate_engine_run, 7), be_const_closure(class_SimpleDSLTranspiler_generate_engine_run_closure) }, + { be_const_key_weak(process_statement, 27), be_const_closure(class_SimpleDSLTranspiler_process_statement_closure) }, + { be_const_key_weak(process_set, 24), be_const_closure(class_SimpleDSLTranspiler_process_set_closure) }, + { be_const_key_weak(current, 18), be_const_closure(class_SimpleDSLTranspiler_current_closure) }, + { be_const_key_weak(expect_number, -1), be_const_closure(class_SimpleDSLTranspiler_expect_number_closure) }, + { be_const_key_weak(_validate_template_parameter_type, 15), be_const_closure(class_SimpleDSLTranspiler__validate_template_parameter_type_closure) }, + { be_const_key_weak(process_animation, -1), be_const_closure(class_SimpleDSLTranspiler_process_animation_closure) }, + { be_const_key_weak(indent_level, -1), be_const_var(6) }, + { be_const_key_weak(_validate_single_parameter, -1), be_const_closure(class_SimpleDSLTranspiler__validate_single_parameter_closure) }, })), be_str_weak(SimpleDSLTranspiler) ); - -/******************************************************************** -** Solidified function: animation_dsl_init -********************************************************************/ -be_local_closure(animation_dsl_init, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(animation), - /* K1 */ be_nested_str_weak(animation_web_ui), - /* K2 */ be_nested_str_weak(web_ui), - }), - be_str_weak(animation_dsl_init), - &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x88080101, // 0001 GETMBR R2 R0 K1 - 0x5C0C0400, // 0002 MOVE R3 R2 - 0x7C0C0000, // 0003 CALL R3 0 - 0x90060403, // 0004 SETMBR R1 K2 R3 - 0x80040000, // 0005 RET 1 R0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: load_file -********************************************************************/ -be_local_closure(load_file, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 0, /* 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(r), - /* K2 */ be_nested_str_weak(Cannot_X20open_X20DSL_X20file_X3A_X20_X25s), - /* K3 */ be_nested_str_weak(io_error), - /* K4 */ be_nested_str_weak(read), - /* K5 */ be_nested_str_weak(close), - /* K6 */ be_nested_str_weak(execute), - }), - be_str_weak(load_file), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x60080011, // 0001 GETGBL R2 G17 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x58100001, // 0003 LDCONST R4 K1 - 0x7C080400, // 0004 CALL R2 2 - 0x4C0C0000, // 0005 LDNIL R3 - 0x1C0C0403, // 0006 EQ R3 R2 R3 - 0x780E0004, // 0007 JMPF R3 #000D - 0x600C0018, // 0008 GETGBL R3 G24 - 0x58100002, // 0009 LDCONST R4 K2 - 0x5C140000, // 000A MOVE R5 R0 - 0x7C0C0400, // 000B CALL R3 2 - 0xB0060603, // 000C RAISE 1 K3 R3 - 0x8C0C0504, // 000D GETMET R3 R2 K4 - 0x7C0C0200, // 000E CALL R3 1 - 0x8C100505, // 000F GETMET R4 R2 K5 - 0x7C100200, // 0010 CALL R4 1 - 0x8C100306, // 0011 GETMET R4 R1 K6 - 0x5C180600, // 0012 MOVE R6 R3 - 0x7C100400, // 0013 CALL R4 2 - 0x80040800, // 0014 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_color_name -********************************************************************/ -be_local_closure(is_color_name, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - /* K2 */ be_nested_str_weak(color_names), - /* K3 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(is_color_name), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x60080010, // 0001 GETGBL R2 G16 - 0x880C0301, // 0002 GETMBR R3 R1 K1 - 0x880C0702, // 0003 GETMBR R3 R3 K2 - 0x7C080200, // 0004 CALL R2 1 - 0xA8020007, // 0005 EXBLK 0 #000E - 0x5C0C0400, // 0006 MOVE R3 R2 - 0x7C0C0000, // 0007 CALL R3 0 - 0x1C100003, // 0008 EQ R4 R0 R3 - 0x78120002, // 0009 JMPF R4 #000D - 0x50100200, // 000A LDBOOL R4 1 0 - 0xA8040001, // 000B EXBLK 1 1 - 0x80040800, // 000C RET 1 R4 - 0x7001FFF7, // 000D JMP #0006 - 0x58080003, // 000E LDCONST R2 K3 - 0xAC080200, // 000F CATCH R2 1 0 - 0xB0080000, // 0010 RAISE 2 R0 R0 - 0x50080000, // 0011 LDBOOL R2 0 0 - 0x80040400, // 0012 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_error_token -********************************************************************/ -be_local_closure(create_error_token, /* name */ - be_nested_proto( - 12, /* nstack */ - 3, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - }), - be_str_weak(create_error_token), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0xA40E0000, // 0000 IMPORT R3 K0 - 0x8C100701, // 0001 GETMET R4 R3 K1 - 0x541A0026, // 0002 LDINT R6 39 - 0x5C1C0000, // 0003 MOVE R7 R0 - 0x5C200200, // 0004 MOVE R8 R1 - 0x5C240400, // 0005 MOVE R9 R2 - 0x6028000C, // 0006 GETGBL R10 G12 - 0x5C2C0000, // 0007 MOVE R11 R0 - 0x7C280200, // 0008 CALL R10 1 - 0x7C100C00, // 0009 CALL R4 6 - 0x80040800, // 000A RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tokenize_dsl -********************************************************************/ -be_local_closure(tokenize_dsl, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(DSLLexer), - /* K2 */ be_nested_str_weak(tokenize), - }), - be_str_weak(tokenize_dsl), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080301, // 0001 GETMET R2 R1 K1 - 0x5C100000, // 0002 MOVE R4 R0 - 0x7C080400, // 0003 CALL R2 2 - 0x8C0C0502, // 0004 GETMET R3 R2 K2 - 0x7C0C0200, // 0005 CALL R3 1 - 0x80040600, // 0006 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: compile_dsl -********************************************************************/ -be_local_closure(compile_dsl, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 0, /* 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(DSLLexer), - /* K2 */ be_nested_str_weak(tokenize), - /* K3 */ be_nested_str_weak(lexical_error), - /* K4 */ be_nested_str_weak(dsl_compilation_error), - /* K5 */ be_nested_str_weak(SimpleDSLTranspiler), - /* K6 */ be_nested_str_weak(transpile), - }), - be_str_weak(compile_dsl), - &be_const_str_solidified, - ( &(const binstruction[23]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080301, // 0001 GETMET R2 R1 K1 - 0x5C100000, // 0002 MOVE R4 R0 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0xA8020004, // 0005 EXBLK 0 #000B - 0x8C100502, // 0006 GETMET R4 R2 K2 - 0x7C100200, // 0007 CALL R4 1 - 0x5C0C0800, // 0008 MOVE R3 R4 - 0xA8040001, // 0009 EXBLK 1 1 - 0x70020005, // 000A JMP #0011 - 0x58100003, // 000B LDCONST R4 K3 - 0xAC100202, // 000C CATCH R4 1 2 - 0x70020001, // 000D JMP #0010 - 0xB0060805, // 000E RAISE 1 K4 R5 - 0x70020000, // 000F JMP #0011 - 0xB0080000, // 0010 RAISE 2 R0 R0 - 0x8C100305, // 0011 GETMET R4 R1 K5 - 0x5C180600, // 0012 MOVE R6 R3 - 0x7C100400, // 0013 CALL R4 2 - 0x8C140906, // 0014 GETMET R5 R4 K6 - 0x7C140200, // 0015 CALL R5 1 - 0x80040A00, // 0016 RET 1 R5 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_keyword -********************************************************************/ -be_local_closure(is_keyword, /* name */ - be_nested_proto( - 5, /* nstack */ - 1, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(Token), - /* K2 */ be_nested_str_weak(keywords), - /* K3 */ be_nested_str_weak(stop_iteration), - }), - be_str_weak(is_keyword), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x60080010, // 0001 GETGBL R2 G16 - 0x880C0301, // 0002 GETMBR R3 R1 K1 - 0x880C0702, // 0003 GETMBR R3 R3 K2 - 0x7C080200, // 0004 CALL R2 1 - 0xA8020007, // 0005 EXBLK 0 #000E - 0x5C0C0400, // 0006 MOVE R3 R2 - 0x7C0C0000, // 0007 CALL R3 0 - 0x1C100003, // 0008 EQ R4 R0 R3 - 0x78120002, // 0009 JMPF R4 #000D - 0x50100200, // 000A LDBOOL R4 1 0 - 0xA8040001, // 000B EXBLK 1 1 - 0x80040800, // 000C RET 1 R4 - 0x7001FFF7, // 000D JMP #0006 - 0x58080003, // 000E LDCONST R2 K3 - 0xAC080200, // 000F CATCH R2 1 0 - 0xB0080000, // 0010 RAISE 2 R0 R0 - 0x50080000, // 0011 LDBOOL R2 0 0 - 0x80040400, // 0012 RET 1 R2 - }) - ) -); -/*******************************************************************/ - -extern const bclass be_class_Token; -// compact class 'Token' ktab size: 52, total: 108 (saved 448 bytes) -static const bvalue be_ktab_class_Token[52] = { - /* K0 */ be_nested_str_weak(type), - /* K1 */ be_nested_str_weak(animation_dsl), - /* K2 */ be_nested_str_weak(Token), - /* K3 */ be_nested_str_weak(value), - /* K4 */ be_nested_str_weak(line), - /* K5 */ be_nested_str_weak(column), - /* K6 */ be_nested_str_weak(length), - /* K7 */ be_const_int(1), - /* K8 */ be_nested_str_weak(), - /* K9 */ be_nested_str_weak(string), - /* K10 */ be_nested_str_weak(math), - /* K11 */ be_const_int(2), - /* K12 */ be_nested_str_weak(round), - /* K13 */ be_nested_str_weak(endswith), - /* K14 */ be_nested_str_weak(ms), - /* K15 */ be_const_int(0), - /* K16 */ be_nested_str_weak(s), - /* K17 */ be_nested_str_weak(m), - /* K18 */ be_nested_str_weak(h), - /* K19 */ be_const_int(3600000), - /* K20 */ be_nested_str_weak(tasmota), - /* K21 */ be_nested_str_weak(scale_uint), - /* K22 */ be_nested_str_weak(is_literal), - /* K23 */ be_const_class(be_class_Token), - /* K24 */ be_nested_str_weak(names), - /* K25 */ be_nested_str_weak(UNKNOWN), - /* K26 */ be_nested_str_weak(end_X20of_X20file), - /* K27 */ be_nested_str_weak(newline), - /* K28 */ be_nested_str_weak(keyword_X20_X27_X25s_X27), - /* K29 */ be_nested_str_weak(identifier_X20_X27_X25s_X27), - /* K30 */ be_const_int(3), - /* K31 */ be_nested_str_weak(string_X20_X27_X25s_X27), - /* K32 */ be_nested_str_weak(number_X20_X27_X25s_X27), - /* K33 */ be_nested_str_weak(color_X20_X27_X25s_X27), - /* K34 */ be_nested_str_weak(time_X20_X27_X25s_X27), - /* K35 */ be_nested_str_weak(percentage_X20_X27_X25s_X27), - /* K36 */ be_nested_str_weak(invalid_X20token_X20_X27_X25s_X27), - /* K37 */ be_nested_str_weak(_X27_X25s_X27), - /* K38 */ be_nested_str_weak(is_boolean), - /* K39 */ be_nested_str_weak(true), - /* K40 */ be_nested_str_weak(statement_keywords), - /* K41 */ be_nested_str_weak(stop_iteration), - /* K42 */ be_nested_str_weak(introspect), - /* K43 */ be_nested_str_weak(global), - /* K44 */ be_nested_str_weak(animation), - /* K45 */ be_nested_str_weak(members), - /* K46 */ be_nested_str_weak(find), - /* K47 */ be_nested_str_weak(false), - /* K48 */ be_nested_str_weak(to_string), - /* K49 */ be_nested_str_weak(Token_X28_X25s_X20at_X20_X25s_X3A_X25s_X29), - /* K50 */ be_nested_str_weak(_X2E_X2E_X2E), - /* K51 */ be_nested_str_weak(Token_X28_X25s_X2C_X20_X27_X25s_X27_X20at_X20_X25s_X3A_X25s_X29), +// compact class 'AnimationWebUI' ktab size: 62, total: 73 (saved 88 bytes) +static const bvalue be_ktab_class_AnimationWebUI[62] = { + /* K0 */ be_nested_str_weak(webserver), + /* K1 */ be_nested_str_weak(content_start), + /* K2 */ be_nested_str_weak(Berry_X20Animation_X20Framework), + /* K3 */ be_nested_str_weak(content_send_style), + /* K4 */ be_nested_str_weak(content_send), + /* K5 */ be_nested_str_long(_X3Cstyle_X3E_X2Eanim_X2Dcontainer_X7Bmin_X2Dwidth_X3A350px_X3Bmargin_X3A0_X20auto_X3Bpadding_X3A10px_X3Bwidth_X3A100_X25_X3Bmax_X2Dwidth_X3Anone_X3B_X7Dbody_X20_X3E_X20div_X7Bwidth_X3Acalc_X28100_X25_X20_X2D_X2020px_X29_X20_X21important_X3Bmax_X2Dwidth_X3A1200px_X20_X21important_X3Bdisplay_X3Ablock_X20_X21important_X3Bbox_X2Dsizing_X3Aborder_X2Dbox_X20_X21important_X3B_X7D_X2Eanim_X2Deditor_X7Bwidth_X3A100_X25_X3Bmin_X2Dheight_X3A300px_X3Bfont_X2Dfamily_X3Amonospace_X3Bfont_X2Dsize_X3A12px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_frm_X29_X3Bpadding_X3A8px_X3Bbackground_X3Avar_X28_X2D_X2Dc_intxt_X29_X3Bcolor_X3A_X23b19cd9_X3Bbox_X2Dsizing_X3Aborder_X2Dbox_X3B_X7D_X2Eanim_X2Doutput_X7Bwidth_X3A100_X25_X3Bmin_X2Dheight_X3A200px_X3Bfont_X2Dfamily_X3Amonospace_X3Bfont_X2Dsize_X3A11px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_frm_X29_X3Bpadding_X3A8px_X3Bbackground_X3Avar_X28_X2D_X2Dc_intxt_X29_X3Bcolor_X3A_X23fb1_X3Bbox_X2Dsizing_X3Aborder_X2Dbox_X3B_X7D_X2Eanim_X2Derror_X7Bcolor_X3Avar_X28_X2D_X2Dc_btnrst_X29_X3Bbackground_X3A_X23ffe6e6_X3Bpadding_X3A8px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_btnrst_X29_X3Bmargin_X3A5px_X200_X3B_X7D_X2Eanim_X2Dsuccess_X7Bcolor_X3Avar_X28_X2D_X2Dc_btnsv_X29_X3Bbackground_X3A_X23e6ffe6_X3Bpadding_X3A8px_X3Bborder_X3A1px_X20solid_X20var_X28_X2D_X2Dc_btnsv_X29_X3Bmargin_X3A5px_X200_X3B_X7Dbutton_X3Adisabled_X7Bopacity_X3A0_X2E5_X3Bcursor_X3Anot_X2Dallowed_X3B_X7D_X2Etextarea_X2Dcontainer_X7Bposition_X3Arelative_X3B_X7D_X2Ecopy_X2Dbtn_X7Bposition_X3Aabsolute_X3Btop_X3A8px_X3Bright_X3A0_X3Bwidth_X3A20px_X3Bheight_X3A20px_X3Bcursor_X3Apointer_X3Buser_X2Dselect_X3Anone_X3Btransition_X3Aall_X200_X2E2s_X3Bbackground_X3Atransparent_X3Bborder_X3Anone_X3B_X7D_X2Eanim_X2Deditor_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Abefore_X2C_X2Eanim_X2Doutput_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Abefore_X7Bcontent_X3A_X27_X27_X3Bposition_X3Aabsolute_X3Btop_X3A2px_X3Bleft_X3A2px_X3Bwidth_X3A10px_X3Bheight_X3A10px_X3Bborder_X2Dleft_X3A2px_X20solid_X20var_X28_X2D_X2Dc_txt_X29_X3Bborder_X2Dtop_X3A2px_X20solid_X20var_X28_X2D_X2Dc_txt_X29_X3Bbackground_X3Atransparent_X3B_X7D_X2Eanim_X2Deditor_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Aafter_X2C_X2Eanim_X2Doutput_X20_X2B_X20_X2Ecopy_X2Dbtn_X3A_X3Aafter_X7Bcontent_X3A_X27_X27_X3Bposition_X3Aabsolute_X3Btop_X3A6px_X3Bleft_X3A6px_X3Bwidth_X3A10px_X3Bheight_X3A10px_X3Bborder_X3A2px_X20solid_X20var_X28_X2D_X2Dc_txt_X29_X3B_X7D_X2Ecopy_X2Dbtn_X3Ahover_X3A_X3Abefore_X2C_X2Ecopy_X2Dbtn_X3Ahover_X3A_X3Aafter_X7Bopacity_X3A0_X2E7_X3B_X7D_X2Ecopy_X2Dmessage_X7Bposition_X3Aabsolute_X3Btop_X3A35px_X3Bright_X3A8px_X3Bbackground_X3Avar_X28_X2D_X2Dc_intxt_X29_X3Bcolor_X3Awhite_X3Bpadding_X3A4px_X208px_X3Bborder_X2Dradius_X3A3px_X3Bfont_X2Dsize_X3A11px_X3Bopacity_X3A0_X3Btransition_X3Aopacity_X200_X2E3s_X3Bpointer_X2Devents_X3Anone_X3Bwhite_X2Dspace_X3Anowrap_X3B_X7D_X2Ecopy_X2Dmessage_X2Eshow_X7Bopacity_X3A1_X3B_X7D_X3C_X2Fstyle_X3E), + /* K6 */ be_nested_str_weak(_X3Cdiv_X20class_X3D_X27anim_X2Dcontainer_X27_X3E_X3Ch3_X3EDSL_X20Code_X20Editor_X3C_X2Fh3_X3E_X3Cdiv_X20class_X3D_X27textarea_X2Dcontainer_X27_X3E_X3Ctextarea_X20id_X3D_X27dsl_code_X27_X20class_X3D_X27anim_X2Deditor_X27_X20spellcheck_X3D_X27false_X27_X20placeholder_X3D_X27Enter_X20your_X20Berry_X20Animation_X20DSL_X20code_X20here_X2E_X2E_X2E_X27_X3E), + /* K7 */ be_nested_str_weak(last_dsl_code), + /* K8 */ be_nested_str_long(_X3C_X2Ftextarea_X3E_X3Cdiv_X20class_X3D_X27copy_X2Dbtn_X27_X20onclick_X3D_X27copyDslCode_X28_X29_X27_X20title_X3D_X27Copy_X20DSL_X20code_X27_X3E_X3C_X2Fdiv_X3E_X3Cdiv_X20id_X3D_X27dsl_X2Dcopy_X2Dmsg_X27_X20class_X3D_X27copy_X2Dmessage_X27_X3E_X3C_X2Fdiv_X3E_X3C_X2Fdiv_X3E_X3Cdiv_X20id_X3D_X27status_X2Dmessage_X27_X3E_X3Cdiv_X20class_X3D_X27anim_X2Dsuccess_X27_X3E_X3Cstrong_X3EStatus_X3A_X3C_X2Fstrong_X3E_X20Ready_X3C_X2Fdiv_X3E_X3C_X2Fdiv_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cbutton_X20id_X3D_X27btn_X2Dcompile_X27_X20onclick_X3D_X27sendAction_X28_X22compile_X22_X29_X27_X20class_X3D_X27button_X20bgrn_X27_X3ECompile_X20_X26_X20Run_X3C_X2Fbutton_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cbutton_X20id_X3D_X27btn_X2Dcompile_X2Donly_X27_X20onclick_X3D_X27sendAction_X28_X22compile_only_X22_X29_X27_X20class_X3D_X27button_X27_X3ECompile_X20Only_X3C_X2Fbutton_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cbutton_X20id_X3D_X27btn_X2Dstop_X27_X20onclick_X3D_X27sendAction_X28_X22stop_X22_X29_X27_X20class_X3D_X27button_X27_X3EStop_X20Animation_X3C_X2Fbutton_X3E), + /* K9 */ be_nested_str_weak(_X3Ch3_X3EGenerated_X20Berry_X20Code_X3C_X2Fh3_X3E_X3Cdiv_X20class_X3D_X27textarea_X2Dcontainer_X27_X3E_X3Ctextarea_X20id_X3D_X27berry_output_X27_X20class_X3D_X27anim_X2Doutput_X27_X20readonly_X3E), + /* K10 */ be_nested_str_weak(html_escape), + /* K11 */ be_nested_str_weak(last_berry_code), + /* K12 */ be_nested_str_weak(_X3C_X2Ftextarea_X3E_X3Cdiv_X20class_X3D_X27copy_X2Dbtn_X27_X20onclick_X3D_X27copyBerryCode_X28_X29_X27_X20title_X3D_X27Copy_X20Berry_X20code_X27_X3E_X3C_X2Fdiv_X3E_X3Cdiv_X20id_X3D_X27berry_X2Dcopy_X2Dmsg_X27_X20class_X3D_X27copy_X2Dmessage_X27_X3E_X3C_X2Fdiv_X3E_X3C_X2Fdiv_X3E), + /* K13 */ be_nested_str_weak(content_button), + /* K14 */ be_nested_str_weak(BUTTON_MANAGEMENT), + /* K15 */ be_nested_str_long(_X3Cscript_X3Efunction_X20showStatus_X28message_X2CisError_X29_X7Bvar_X20statusDiv_X3Deb_X28_X27status_X2Dmessage_X27_X29_X3Bif_X28message_X29_X7BstatusDiv_X2EinnerHTML_X3D_X27_X3Cdiv_X20class_X3D_X22anim_X2D_X27_X2B_X28isError_X3F_X27error_X27_X3A_X27success_X27_X29_X2B_X27_X22_X3E_X3Cstrong_X3E_X27_X2B_X28isError_X3F_X27Error_X27_X3A_X27Success_X27_X29_X2B_X27_X3A_X3C_X2Fstrong_X3E_X20_X27_X2Bmessage_X2B_X27_X3C_X2Fdiv_X3E_X27_X3B_X7Delse_X7BstatusDiv_X2EinnerHTML_X3D_X27_X27_X3B_X7D_X7Dfunction_X20showProcessingStatus_X28_X29_X7Bvar_X20statusDiv_X3Deb_X28_X27status_X2Dmessage_X27_X29_X3BstatusDiv_X2EinnerHTML_X3D_X27_X3Cdiv_X20class_X3D_X22anim_X2Dsuccess_X22_X3E_X3Cstrong_X3EStatus_X3A_X3C_X2Fstrong_X3E_X20Processing_X2E_X2E_X2E_X3C_X2Fdiv_X3E_X27_X3B_X7Dfunction_X20setButtonsDisabled_X28disabled_X29_X7Bvar_X20btnIds_X3D_X5B_X27btn_X2Dcompile_X27_X2C_X27btn_X2Dcompile_X2Donly_X27_X2C_X27btn_X2Dstop_X27_X5D_X3Bfor_X28var_X20i_X3D0_X3Bi_X3CbtnIds_X2Elength_X3Bi_X2B_X2B_X29_X7Bvar_X20btn_X3Deb_X28btnIds_X5Bi_X5D_X29_X3Bif_X28btn_X29btn_X2Edisabled_X3Ddisabled_X3B_X7D_X7D), + /* K16 */ be_nested_str_long(function_X20sendAction_X28action_X29_X7BsetButtonsDisabled_X28true_X29_X3BshowProcessingStatus_X28_X29_X3Bvar_X20xhr_X3Dnew_X20XMLHttpRequest_X28_X29_X3Bvar_X20formData_X3Dnew_X20FormData_X28_X29_X3BformData_X2Eappend_X28_X27action_X27_X2Caction_X29_X3Bif_X28action_X21_X3D_X3D_X27stop_X27_X26_X26action_X21_X3D_X3D_X27clear_X27_X29_X7BformData_X2Eappend_X28_X27dsl_code_X27_X2Ceb_X28_X27dsl_code_X27_X29_X2Evalue_X29_X3B_X7Dxhr_X2Eopen_X28_X27POST_X27_X2C_X27_X2Fberry_anim_X3Fapi_X3Daction_X27_X2Ctrue_X29_X3Bxhr_X2Eonreadystatechange_X3Dfunction_X28_X29_X7Bif_X28xhr_X2EreadyState_X3D_X3D_X3D4_X29_X7BsetButtonsDisabled_X28false_X29_X3Bif_X28xhr_X2Estatus_X3D_X3D_X3D200_X29_X7Btry_X7Bvar_X20result_X3DJSON_X2Eparse_X28xhr_X2EresponseText_X29_X3Bif_X28result_X2Esuccess_X29_X7BshowStatus_X28result_X2Emessage_X2Cfalse_X29_X3Bif_X28result_X2Eberry_code_X21_X3D_X3Dundefined_X29_X7Beb_X28_X27berry_output_X27_X29_X2Evalue_X3Dresult_X2Eberry_code_X3B_X7Dif_X28result_X2Edsl_code_X21_X3D_X3Dundefined_X29_X7Beb_X28_X27dsl_code_X27_X29_X2Evalue_X3Dresult_X2Edsl_code_X3B_X7D_X7Delse_X7BshowStatus_X28result_X2Eerror_X2Ctrue_X29_X3Bif_X28result_X2Eerror_X2Eincludes_X28_X27Compilation_X20failed_X27_X29_X29_X7Beb_X28_X27berry_output_X27_X29_X2Evalue_X3D_X27_X23_X20Compilation_X20failed_X5Cn_X23_X20_X27_X2Bresult_X2Eerror_X3B_X7D_X7D_X7Dcatch_X28e_X29_X7BshowStatus_X28_X27Invalid_X20response_X20from_X20server_X27_X2Ctrue_X29_X3B_X7D_X7Delse_X7BshowStatus_X28_X27Network_X20error_X3A_X20_X27_X2Bxhr_X2Estatus_X2Ctrue_X29_X3B_X7D_X7D_X7D_X3Bxhr_X2Esend_X28formData_X29_X3B_X7D), + /* K17 */ be_nested_str_long(function_X20showCopyMessage_X28msgId_X2Ctext_X2CisError_X29_X7Bvar_X20msgDiv_X3Deb_X28msgId_X29_X3BmsgDiv_X2EtextContent_X3Dtext_X3BmsgDiv_X2Estyle_X2Ebackground_X3D_X27color_X2Dmix_X28in_X20srgb_X2C_X20var_X28_X27_X2B_X28isError_X3F_X27_X2D_X2Dc_btnrst_X27_X3A_X27_X2D_X2Dc_btnsv_X27_X29_X2B_X27_X29_X2090_X25_X2C_X20transparent_X29_X27_X3BmsgDiv_X2EclassList_X2Eadd_X28_X27show_X27_X29_X3BsetTimeout_X28function_X28_X29_X7BmsgDiv_X2EclassList_X2Eremove_X28_X27show_X27_X29_X3B_X7D_X2C2000_X29_X3B_X7Dfunction_X20copyTextarea_X28textareaId_X2CmsgId_X29_X7Bvar_X20textarea_X3Deb_X28textareaId_X29_X3Btextarea_X2Eselect_X28_X29_X3Btextarea_X2EsetSelectionRange_X280_X2C99999_X29_X3Btry_X7Bdocument_X2EexecCommand_X28_X27copy_X27_X29_X3BshowCopyMessage_X28msgId_X2C_X27Copied_X21_X27_X2Cfalse_X29_X3B_X7Dcatch_X28err_X29_X7BshowCopyMessage_X28msgId_X2C_X27Copy_X20failed_X27_X2Ctrue_X29_X3B_X7D_X7Dfunction_X20copyDslCode_X28_X29_X7BcopyTextarea_X28_X27dsl_code_X27_X2C_X27dsl_X2Dcopy_X2Dmsg_X27_X29_X3B_X7Dfunction_X20copyBerryCode_X28_X29_X7BcopyTextarea_X28_X27berry_output_X27_X2C_X27berry_X2Dcopy_X2Dmsg_X27_X29_X3B_X7D_X3C_X2Fscript_X3E), + /* K18 */ be_nested_str_weak(content_stop), + /* K19 */ be_nested_str_weak(animation_dsl), + /* K20 */ be_nested_str_weak(has_arg), + /* K21 */ be_nested_str_weak(api), + /* K22 */ be_nested_str_weak(arg), + /* K23 */ be_nested_str_weak(action), + /* K24 */ be_nested_str_weak(content_open), + /* K25 */ be_nested_str_weak(application_X2Fjson), + /* K26 */ be_nested_str_weak(compile), + /* K27 */ be_nested_str_weak(compile_only), + /* K28 */ be_nested_str_weak(dsl_code), + /* K29 */ be_nested_str_weak(success), + /* K30 */ be_nested_str_weak(berry_code), + /* K31 */ be_nested_str_weak(execute), + /* K32 */ be_nested_str_weak(message), + /* K33 */ be_nested_str_weak(Animation_X20compiled_X20and_X20started), + /* K34 */ be_nested_str_weak(DSL_X20compiled_X20successfully), + /* K35 */ be_nested_str_weak(error), + /* K36 */ be_nested_str_weak(_X25s_X3A_X20_X25s), + /* K37 */ be_nested_str_weak(_X23_X20Compilation_X20failed_X0A_X23_X20_X25s), + /* K38 */ be_nested_str_weak(No_X20DSL_X20code_X20provided), + /* K39 */ be_nested_str_weak(stop), + /* K40 */ be_nested_str_weak(animation), + /* K41 */ be_nested_str_weak(init_strip), + /* K42 */ be_nested_str_weak(Animation_X20stopped), + /* K43 */ be_nested_str_weak(Unknown_X20action_X3A_X20_X25s), + /* K44 */ be_nested_str_weak(No_X20action_X20specified), + /* K45 */ be_nested_str_weak(json), + /* K46 */ be_nested_str_weak(dump), + /* K47 */ be_nested_str_weak(content_close), + /* K48 */ be_nested_str_weak(page_main), + /* K49 */ be_nested_str_weak(_X3Cp_X3E_X3C_X2Fp_X3E_X3Cform_X20id_X3Dbut_part_mgr_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27berry_anim_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3ELED_X20Animation_X20Console_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3Cp_X3E_X3C_X2Fp_X3E), + /* K50 */ be_nested_str_weak(log), + /* K51 */ be_nested_str_weak(LED_X3A_X20Berry_X20Animation_X20WebUI_X20deinitialized), + /* K52 */ be_const_int(3), + /* K53 */ be_nested_str_weak(on), + /* K54 */ be_nested_str_weak(_X2Fberry_anim), + /* K55 */ be_nested_str_weak(DEFAULT_DSL), + /* K56 */ be_nested_str_weak(), + /* K57 */ be_nested_str_weak(tasmota), + /* K58 */ be_nested_str_weak(add_driver), + /* K59 */ be_nested_str_weak(is_network_up), + /* K60 */ be_nested_str_weak(web_add_handler), + /* K61 */ be_nested_str_weak(LED_X3A_X20Berry_X20Animation_X20WebUI_X20initialized), }; -extern const bclass be_class_Token; +extern const bclass be_class_AnimationWebUI; /******************************************************************** -** Solidified function: is_type +** Solidified function: page_main ********************************************************************/ -be_local_closure(class_Token_is_type, /* name */ +be_local_closure(class_AnimationWebUI_page_main, /* name */ be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_type), - &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x1C080401, // 0001 EQ R2 R2 R1 - 0x80040400, // 0002 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: with_type -********************************************************************/ -be_local_closure(class_Token_with_type, /* name */ - be_nested_proto( - 10, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(with_type), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0xA40A0200, // 0000 IMPORT R2 K1 - 0x8C0C0502, // 0001 GETMET R3 R2 K2 - 0x5C140200, // 0002 MOVE R5 R1 - 0x88180103, // 0003 GETMBR R6 R0 K3 - 0x881C0104, // 0004 GETMBR R7 R0 K4 - 0x88200105, // 0005 GETMBR R8 R0 K5 - 0x88240106, // 0006 GETMBR R9 R0 K6 - 0x7C0C0C00, // 0007 CALL R3 6 - 0x80040600, // 0008 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: end_column -********************************************************************/ -be_local_closure(class_Token_end_column, /* name */ - be_nested_proto( - 3, /* nstack */ + 7, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -16612,15 +15713,214 @@ be_local_closure(class_Token_end_column, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(end_column), + &be_ktab_class_AnimationWebUI, /* shared constants */ + be_str_weak(page_main), + &be_const_str_solidified, + ( &(const binstruction[44]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080301, // 0001 GETMET R2 R1 K1 + 0x58100002, // 0002 LDCONST R4 K2 + 0x7C080400, // 0003 CALL R2 2 + 0x8C080303, // 0004 GETMET R2 R1 K3 + 0x7C080200, // 0005 CALL R2 1 + 0x8C080304, // 0006 GETMET R2 R1 K4 + 0x58100005, // 0007 LDCONST R4 K5 + 0x7C080400, // 0008 CALL R2 2 + 0x8C080304, // 0009 GETMET R2 R1 K4 + 0x58100006, // 000A LDCONST R4 K6 + 0x7C080400, // 000B CALL R2 2 + 0x8C080304, // 000C GETMET R2 R1 K4 + 0x88100107, // 000D GETMBR R4 R0 K7 + 0x7C080400, // 000E CALL R2 2 + 0x8C080304, // 000F GETMET R2 R1 K4 + 0x58100008, // 0010 LDCONST R4 K8 + 0x7C080400, // 0011 CALL R2 2 + 0x8C080304, // 0012 GETMET R2 R1 K4 + 0x58100009, // 0013 LDCONST R4 K9 + 0x7C080400, // 0014 CALL R2 2 + 0x8C080304, // 0015 GETMET R2 R1 K4 + 0x8C10030A, // 0016 GETMET R4 R1 K10 + 0x8818010B, // 0017 GETMBR R6 R0 K11 + 0x7C100400, // 0018 CALL R4 2 + 0x7C080400, // 0019 CALL R2 2 + 0x8C080304, // 001A GETMET R2 R1 K4 + 0x5810000C, // 001B LDCONST R4 K12 + 0x7C080400, // 001C CALL R2 2 + 0x8C08030D, // 001D GETMET R2 R1 K13 + 0x8810030E, // 001E GETMBR R4 R1 K14 + 0x7C080400, // 001F CALL R2 2 + 0x8C080304, // 0020 GETMET R2 R1 K4 + 0x5810000F, // 0021 LDCONST R4 K15 + 0x7C080400, // 0022 CALL R2 2 + 0x8C080304, // 0023 GETMET R2 R1 K4 + 0x58100010, // 0024 LDCONST R4 K16 + 0x7C080400, // 0025 CALL R2 2 + 0x8C080304, // 0026 GETMET R2 R1 K4 + 0x58100011, // 0027 LDCONST R4 K17 + 0x7C080400, // 0028 CALL R2 2 + 0x8C080312, // 0029 GETMET R2 R1 K18 + 0x7C080200, // 002A CALL R2 1 + 0x80000000, // 002B RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: handle_request +********************************************************************/ +be_local_closure(class_AnimationWebUI_handle_request, /* name */ + be_nested_proto( + 12, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationWebUI, /* shared constants */ + be_str_weak(handle_request), + &be_const_str_solidified, + ( &(const binstruction[109]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0xA40A2600, // 0001 IMPORT R2 K19 + 0x8C0C0314, // 0002 GETMET R3 R1 K20 + 0x58140015, // 0003 LDCONST R5 K21 + 0x7C0C0400, // 0004 CALL R3 2 + 0x780E0063, // 0005 JMPF R3 #006A + 0x8C0C0316, // 0006 GETMET R3 R1 K22 + 0x58140015, // 0007 LDCONST R5 K21 + 0x7C0C0400, // 0008 CALL R3 2 + 0x1C100717, // 0009 EQ R4 R3 K23 + 0x7812005D, // 000A JMPF R4 #0069 + 0x8C100318, // 000B GETMET R4 R1 K24 + 0x541A00C7, // 000C LDINT R6 200 + 0x581C0019, // 000D LDCONST R7 K25 + 0x7C100600, // 000E CALL R4 3 + 0x60100013, // 000F GETGBL R4 G19 + 0x7C100000, // 0010 CALL R4 0 + 0x8C140314, // 0011 GETMET R5 R1 K20 + 0x581C0017, // 0012 LDCONST R7 K23 + 0x7C140400, // 0013 CALL R5 2 + 0x78160048, // 0014 JMPF R5 #005E + 0x8C140316, // 0015 GETMET R5 R1 K22 + 0x581C0017, // 0016 LDCONST R7 K23 + 0x7C140400, // 0017 CALL R5 2 + 0x1C180B1A, // 0018 EQ R6 R5 K26 + 0x741A0001, // 0019 JMPT R6 #001C + 0x1C180B1B, // 001A EQ R6 R5 K27 + 0x781A0030, // 001B JMPF R6 #004D + 0x8C180314, // 001C GETMET R6 R1 K20 + 0x5820001C, // 001D LDCONST R8 K28 + 0x7C180400, // 001E CALL R6 2 + 0x781A0028, // 001F JMPF R6 #0049 + 0x8C180316, // 0020 GETMET R6 R1 K22 + 0x5820001C, // 0021 LDCONST R8 K28 + 0x7C180400, // 0022 CALL R6 2 + 0x90020E06, // 0023 SETMBR R0 K7 R6 + 0xA8020011, // 0024 EXBLK 0 #0037 + 0x8C18051A, // 0025 GETMET R6 R2 K26 + 0x88200107, // 0026 GETMBR R8 R0 K7 + 0x7C180400, // 0027 CALL R6 2 + 0x90021606, // 0028 SETMBR R0 K11 R6 + 0x50180200, // 0029 LDBOOL R6 1 0 + 0x98123A06, // 002A SETIDX R4 K29 R6 + 0x8818010B, // 002B GETMBR R6 R0 K11 + 0x98123C06, // 002C SETIDX R4 K30 R6 + 0x1C180B1A, // 002D EQ R6 R5 K26 + 0x781A0004, // 002E JMPF R6 #0034 + 0x8C18051F, // 002F GETMET R6 R2 K31 + 0x88200107, // 0030 GETMBR R8 R0 K7 + 0x7C180400, // 0031 CALL R6 2 + 0x98124121, // 0032 SETIDX R4 K32 K33 + 0x70020000, // 0033 JMP #0035 + 0x98124122, // 0034 SETIDX R4 K32 K34 + 0xA8040001, // 0035 EXBLK 1 1 + 0x70020010, // 0036 JMP #0048 + 0xAC180002, // 0037 CATCH R6 0 2 + 0x7002000D, // 0038 JMP #0047 + 0x50200000, // 0039 LDBOOL R8 0 0 + 0x98123A08, // 003A SETIDX R4 K29 R8 + 0x60200018, // 003B GETGBL R8 G24 + 0x58240024, // 003C LDCONST R9 K36 + 0x5C280C00, // 003D MOVE R10 R6 + 0x5C2C0E00, // 003E MOVE R11 R7 + 0x7C200600, // 003F CALL R8 3 + 0x98124608, // 0040 SETIDX R4 K35 R8 + 0x60200018, // 0041 GETGBL R8 G24 + 0x58240025, // 0042 LDCONST R9 K37 + 0x94280923, // 0043 GETIDX R10 R4 K35 + 0x7C200400, // 0044 CALL R8 2 + 0x90021608, // 0045 SETMBR R0 K11 R8 + 0x70020000, // 0046 JMP #0048 + 0xB0080000, // 0047 RAISE 2 R0 R0 + 0x70020002, // 0048 JMP #004C + 0x50180000, // 0049 LDBOOL R6 0 0 + 0x98123A06, // 004A SETIDX R4 K29 R6 + 0x98124726, // 004B SETIDX R4 K35 K38 + 0x7002000F, // 004C JMP #005D + 0x1C180B27, // 004D EQ R6 R5 K39 + 0x781A0006, // 004E JMPF R6 #0056 + 0xB81A5000, // 004F GETNGBL R6 K40 + 0x8C180D29, // 0050 GETMET R6 R6 K41 + 0x7C180200, // 0051 CALL R6 1 + 0x50180200, // 0052 LDBOOL R6 1 0 + 0x98123A06, // 0053 SETIDX R4 K29 R6 + 0x9812412A, // 0054 SETIDX R4 K32 K42 + 0x70020006, // 0055 JMP #005D + 0x50180000, // 0056 LDBOOL R6 0 0 + 0x98123A06, // 0057 SETIDX R4 K29 R6 + 0x60180018, // 0058 GETGBL R6 G24 + 0x581C002B, // 0059 LDCONST R7 K43 + 0x5C200A00, // 005A MOVE R8 R5 + 0x7C180400, // 005B CALL R6 2 + 0x98124606, // 005C SETIDX R4 K35 R6 + 0x70020002, // 005D JMP #0061 + 0x50140000, // 005E LDBOOL R5 0 0 + 0x98123A05, // 005F SETIDX R4 K29 R5 + 0x9812472C, // 0060 SETIDX R4 K35 K44 + 0xA4165A00, // 0061 IMPORT R5 K45 + 0x8C180304, // 0062 GETMET R6 R1 K4 + 0x8C200B2E, // 0063 GETMET R8 R5 K46 + 0x5C280800, // 0064 MOVE R10 R4 + 0x7C200400, // 0065 CALL R8 2 + 0x7C180400, // 0066 CALL R6 2 + 0x8C18032F, // 0067 GETMET R6 R1 K47 + 0x7C180200, // 0068 CALL R6 1 + 0x70020001, // 0069 JMP #006C + 0x8C0C0130, // 006A GETMET R3 R0 K48 + 0x7C0C0200, // 006B CALL R3 1 + 0x80000000, // 006C RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: web_add_button +********************************************************************/ +be_local_closure(class_AnimationWebUI_web_add_button, /* name */ + be_nested_proto( + 5, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + &be_ktab_class_AnimationWebUI, /* shared constants */ + be_str_weak(web_add_button), &be_const_str_solidified, ( &(const binstruction[ 5]) { /* code */ - 0x88040105, // 0000 GETMBR R1 R0 K5 - 0x88080106, // 0001 GETMBR R2 R0 K6 - 0x00040202, // 0002 ADD R1 R1 R2 - 0x04040307, // 0003 SUB R1 R1 K7 - 0x80040200, // 0004 RET 1 R1 + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080304, // 0001 GETMET R2 R1 K4 + 0x58100031, // 0002 LDCONST R4 K49 + 0x7C080400, // 0003 CALL R2 2 + 0x80000000, // 0004 RET 0 }) ) ); @@ -16628,11 +15928,11 @@ be_local_closure(class_Token_end_column, /* name */ /******************************************************************** -** Solidified function: is_operator +** Solidified function: deinit ********************************************************************/ -be_local_closure(class_Token_is_operator, /* name */ +be_local_closure(class_AnimationWebUI_deinit, /* name */ be_nested_proto( - 3, /* nstack */ + 4, /* nstack */ 1, /* argc */ 10, /* varg */ 0, /* has upvals */ @@ -16640,21 +15940,69 @@ be_local_closure(class_Token_is_operator, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_operator), + &be_ktab_class_AnimationWebUI, /* shared constants */ + be_str_weak(deinit), &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x540A0007, // 0001 LDINT R2 8 - 0x28040202, // 0002 GE R1 R1 R2 - 0x78060003, // 0003 JMPF R1 #0008 - 0x88040100, // 0004 GETMBR R1 R0 K0 - 0x540A0016, // 0005 LDINT R2 23 - 0x18040202, // 0006 LE R1 R1 R2 - 0x74060000, // 0007 JMPT R1 #0009 - 0x50040001, // 0008 LDBOOL R1 0 1 - 0x50040200, // 0009 LDBOOL R1 1 0 - 0x80040200, // 000A RET 1 R1 + ( &(const binstruction[ 5]) { /* code */ + 0xB8066400, // 0000 GETNGBL R1 K50 + 0x58080033, // 0001 LDCONST R2 K51 + 0x580C0034, // 0002 LDCONST R3 K52 + 0x7C040400, // 0003 CALL R1 2 + 0x80000000, // 0004 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: web_add_handler +********************************************************************/ +be_local_closure(class_AnimationWebUI_web_add_handler, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 10, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 1, /* has sup protos */ + ( &(const struct bproto*[ 1]) { + be_nested_proto( + 2, /* nstack */ + 0, /* argc */ + 0, /* varg */ + 1, /* has upvals */ + ( &(const bupvaldesc[ 1]) { /* upvals */ + be_local_const_upval(1, 0), + }), + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(handle_request), + }), + be_str_weak(_X3Clambda_X3E), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x68000000, // 0000 GETUPV R0 U0 + 0x8C000100, // 0001 GETMET R0 R0 K0 + 0x7C000200, // 0002 CALL R0 1 + 0x80040000, // 0003 RET 1 R0 + }) + ), + }), + 1, /* has constants */ + &be_ktab_class_AnimationWebUI, /* shared constants */ + be_str_weak(web_add_handler), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080335, // 0001 GETMET R2 R1 K53 + 0x58100036, // 0002 LDCONST R4 K54 + 0x84140000, // 0003 CLOSURE R5 P0 + 0x7C080600, // 0004 CALL R2 3 + 0xA0000000, // 0005 CLOSE R0 + 0x80000000, // 0006 RET 0 }) ) ); @@ -16664,656 +16012,38 @@ be_local_closure(class_Token_is_operator, /* name */ /******************************************************************** ** Solidified function: init ********************************************************************/ -be_local_closure(class_Token_init, /* name */ +be_local_closure(class_AnimationWebUI_init, /* name */ be_nested_proto( - 8, /* nstack */ - 6, /* argc */ + 4, /* nstack */ + 1, /* argc */ 10, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ + &be_ktab_class_AnimationWebUI, /* shared constants */ be_str_weak(init), &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x90020001, // 0000 SETMBR R0 K0 R1 - 0x4C180000, // 0001 LDNIL R6 - 0x20180406, // 0002 NE R6 R2 R6 - 0x781A0001, // 0003 JMPF R6 #0006 - 0x5C180400, // 0004 MOVE R6 R2 - 0x70020000, // 0005 JMP #0007 - 0x58180008, // 0006 LDCONST R6 K8 - 0x90020606, // 0007 SETMBR R0 K3 R6 - 0x4C180000, // 0008 LDNIL R6 - 0x20180606, // 0009 NE R6 R3 R6 - 0x781A0001, // 000A JMPF R6 #000D - 0x5C180600, // 000B MOVE R6 R3 - 0x70020000, // 000C JMP #000E - 0x58180007, // 000D LDCONST R6 K7 - 0x90020806, // 000E SETMBR R0 K4 R6 - 0x4C180000, // 000F LDNIL R6 - 0x20180806, // 0010 NE R6 R4 R6 - 0x781A0001, // 0011 JMPF R6 #0014 - 0x5C180800, // 0012 MOVE R6 R4 - 0x70020000, // 0013 JMP #0015 - 0x58180007, // 0014 LDCONST R6 K7 - 0x90020A06, // 0015 SETMBR R0 K5 R6 - 0x4C180000, // 0016 LDNIL R6 - 0x20180A06, // 0017 NE R6 R5 R6 - 0x781A0001, // 0018 JMPF R6 #001B - 0x5C180A00, // 0019 MOVE R6 R5 - 0x70020002, // 001A JMP #001E - 0x6018000C, // 001B GETGBL R6 G12 - 0x881C0103, // 001C GETMBR R7 R0 K3 - 0x7C180200, // 001D CALL R6 1 - 0x90020C06, // 001E SETMBR R0 K6 R6 - 0x80000000, // 001F RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_delimiter -********************************************************************/ -be_local_closure(class_Token_is_delimiter, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_delimiter), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x540A0017, // 0001 LDINT R2 24 - 0x28040202, // 0002 GE R1 R1 R2 - 0x78060003, // 0003 JMPF R1 #0008 - 0x88040100, // 0004 GETMBR R1 R0 K0 - 0x540A001C, // 0005 LDINT R2 29 - 0x18040202, // 0006 LE R1 R1 R2 - 0x74060000, // 0007 JMPT R1 #0009 - 0x50040001, // 0008 LDBOOL R1 0 1 - 0x50040200, // 0009 LDBOOL R1 1 0 - 0x80040200, // 000A RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_numeric_value -********************************************************************/ -be_local_closure(class_Token_get_numeric_value, /* name */ - be_nested_proto( - 11, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(get_numeric_value), - &be_const_str_solidified, - ( &(const binstruction[117]) { /* code */ - 0xA4061200, // 0000 IMPORT R1 K9 - 0xA40A1400, // 0001 IMPORT R2 K10 - 0x880C0100, // 0002 GETMBR R3 R0 K0 - 0x1C0C070B, // 0003 EQ R3 R3 K11 - 0x780E0006, // 0004 JMPF R3 #000C - 0x8C0C050C, // 0005 GETMET R3 R2 K12 - 0x6014000A, // 0006 GETGBL R5 G10 - 0x88180103, // 0007 GETMBR R6 R0 K3 - 0x7C140200, // 0008 CALL R5 1 - 0x7C0C0400, // 0009 CALL R3 2 - 0x80040600, // 000A RET 1 R3 - 0x70020066, // 000B JMP #0073 - 0x880C0100, // 000C GETMBR R3 R0 K0 - 0x54120004, // 000D LDINT R4 5 - 0x1C0C0604, // 000E EQ R3 R3 R4 - 0x780E003D, // 000F JMPF R3 #004E - 0x880C0103, // 0010 GETMBR R3 R0 K3 - 0x8C10030D, // 0011 GETMET R4 R1 K13 - 0x5C180600, // 0012 MOVE R6 R3 - 0x581C000E, // 0013 LDCONST R7 K14 - 0x7C100600, // 0014 CALL R4 3 - 0x78120008, // 0015 JMPF R4 #001F - 0x8C10050C, // 0016 GETMET R4 R2 K12 - 0x6018000A, // 0017 GETGBL R6 G10 - 0x541DFFFC, // 0018 LDINT R7 -3 - 0x401E1E07, // 0019 CONNECT R7 K15 R7 - 0x941C0607, // 001A GETIDX R7 R3 R7 - 0x7C180200, // 001B CALL R6 1 - 0x7C100400, // 001C CALL R4 2 - 0x80040800, // 001D RET 1 R4 - 0x7002002D, // 001E JMP #004D - 0x8C10030D, // 001F GETMET R4 R1 K13 - 0x5C180600, // 0020 MOVE R6 R3 - 0x581C0010, // 0021 LDCONST R7 K16 - 0x7C100600, // 0022 CALL R4 3 - 0x7812000A, // 0023 JMPF R4 #002F - 0x8C10050C, // 0024 GETMET R4 R2 K12 - 0x6018000A, // 0025 GETGBL R6 G10 - 0x541DFFFD, // 0026 LDINT R7 -2 - 0x401E1E07, // 0027 CONNECT R7 K15 R7 - 0x941C0607, // 0028 GETIDX R7 R3 R7 - 0x7C180200, // 0029 CALL R6 1 - 0x541E03E7, // 002A LDINT R7 1000 - 0x08180C07, // 002B MUL R6 R6 R7 - 0x7C100400, // 002C CALL R4 2 - 0x80040800, // 002D RET 1 R4 - 0x7002001D, // 002E JMP #004D - 0x8C10030D, // 002F GETMET R4 R1 K13 - 0x5C180600, // 0030 MOVE R6 R3 - 0x581C0011, // 0031 LDCONST R7 K17 - 0x7C100600, // 0032 CALL R4 3 - 0x7812000A, // 0033 JMPF R4 #003F - 0x8C10050C, // 0034 GETMET R4 R2 K12 - 0x6018000A, // 0035 GETGBL R6 G10 - 0x541DFFFD, // 0036 LDINT R7 -2 - 0x401E1E07, // 0037 CONNECT R7 K15 R7 - 0x941C0607, // 0038 GETIDX R7 R3 R7 - 0x7C180200, // 0039 CALL R6 1 - 0x541EEA5F, // 003A LDINT R7 60000 - 0x08180C07, // 003B MUL R6 R6 R7 - 0x7C100400, // 003C CALL R4 2 - 0x80040800, // 003D RET 1 R4 - 0x7002000D, // 003E JMP #004D - 0x8C10030D, // 003F GETMET R4 R1 K13 - 0x5C180600, // 0040 MOVE R6 R3 - 0x581C0012, // 0041 LDCONST R7 K18 - 0x7C100600, // 0042 CALL R4 3 - 0x78120008, // 0043 JMPF R4 #004D - 0x8C10050C, // 0044 GETMET R4 R2 K12 - 0x6018000A, // 0045 GETGBL R6 G10 - 0x541DFFFD, // 0046 LDINT R7 -2 - 0x401E1E07, // 0047 CONNECT R7 K15 R7 - 0x941C0607, // 0048 GETIDX R7 R3 R7 - 0x7C180200, // 0049 CALL R6 1 - 0x08180D13, // 004A MUL R6 R6 K19 - 0x7C100400, // 004B CALL R4 2 - 0x80040800, // 004C RET 1 R4 - 0x70020024, // 004D JMP #0073 - 0x880C0100, // 004E GETMBR R3 R0 K0 - 0x54120005, // 004F LDINT R4 6 - 0x1C0C0604, // 0050 EQ R3 R3 R4 - 0x780E0011, // 0051 JMPF R3 #0064 - 0x8C0C050C, // 0052 GETMET R3 R2 K12 - 0x6014000A, // 0053 GETGBL R5 G10 - 0x5419FFFD, // 0054 LDINT R6 -2 - 0x401A1E06, // 0055 CONNECT R6 K15 R6 - 0x881C0103, // 0056 GETMBR R7 R0 K3 - 0x94180E06, // 0057 GETIDX R6 R7 R6 - 0x7C140200, // 0058 CALL R5 1 - 0x7C0C0400, // 0059 CALL R3 2 - 0xB8122800, // 005A GETNGBL R4 K20 - 0x8C100915, // 005B GETMET R4 R4 K21 - 0x5C180600, // 005C MOVE R6 R3 - 0x581C000F, // 005D LDCONST R7 K15 - 0x54220063, // 005E LDINT R8 100 - 0x5824000F, // 005F LDCONST R9 K15 - 0x542A00FE, // 0060 LDINT R10 255 - 0x7C100C00, // 0061 CALL R4 6 - 0x80040800, // 0062 RET 1 R4 - 0x7002000E, // 0063 JMP #0073 - 0x880C0100, // 0064 GETMBR R3 R0 K0 - 0x54120006, // 0065 LDINT R4 7 - 0x1C0C0604, // 0066 EQ R3 R3 R4 - 0x780E000A, // 0067 JMPF R3 #0073 - 0x600C000A, // 0068 GETGBL R3 G10 - 0x5411FFFD, // 0069 LDINT R4 -2 - 0x40121E04, // 006A CONNECT R4 K15 R4 - 0x88140103, // 006B GETMBR R5 R0 K3 - 0x94100A04, // 006C GETIDX R4 R5 R4 - 0x7C0C0200, // 006D CALL R3 1 - 0x8C10050C, // 006E GETMET R4 R2 K12 - 0x541A00FF, // 006F LDINT R6 256 - 0x08180606, // 0070 MUL R6 R3 R6 - 0x7C100400, // 0071 CALL R4 2 - 0x80040800, // 0072 RET 1 R4 - 0x4C0C0000, // 0073 LDNIL R3 - 0x80040600, // 0074 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: can_end_expression -********************************************************************/ -be_local_closure(class_Token_can_end_expression, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(can_end_expression), - &be_const_str_solidified, - ( &(const binstruction[17]) { /* code */ - 0x8C040116, // 0000 GETMET R1 R0 K22 - 0x7C040200, // 0001 CALL R1 1 - 0x7406000B, // 0002 JMPT R1 #000F - 0x88040100, // 0003 GETMBR R1 R0 K0 - 0x1C040307, // 0004 EQ R1 R1 K7 - 0x74060008, // 0005 JMPT R1 #000F - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x540A0023, // 0007 LDINT R2 36 - 0x1C040202, // 0008 EQ R1 R1 R2 - 0x74060004, // 0009 JMPT R1 #000F - 0x88040100, // 000A GETMBR R1 R0 K0 - 0x540A0018, // 000B LDINT R2 25 - 0x1C040202, // 000C EQ R1 R1 R2 - 0x74060000, // 000D JMPT R1 #000F - 0x50040001, // 000E LDBOOL R1 0 1 - 0x50040200, // 000F LDBOOL R1 1 0 - 0x80040200, // 0010 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: to_string -********************************************************************/ -be_local_closure(class_Token_to_string, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 12, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(to_string), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x58040017, // 0000 LDCONST R1 K23 - 0x2808010F, // 0001 GE R2 R0 K15 - 0x780A0007, // 0002 JMPF R2 #000B - 0x6008000C, // 0003 GETGBL R2 G12 - 0x880C0318, // 0004 GETMBR R3 R1 K24 - 0x7C080200, // 0005 CALL R2 1 - 0x14080002, // 0006 LT R2 R0 R2 - 0x780A0002, // 0007 JMPF R2 #000B - 0x88080318, // 0008 GETMBR R2 R1 K24 - 0x94080400, // 0009 GETIDX R2 R2 R0 - 0x80040400, // 000A RET 1 R2 - 0x80063200, // 000B RET 1 K25 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: to_error_string -********************************************************************/ -be_local_closure(class_Token_to_error_string, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(to_error_string), - &be_const_str_solidified, - ( &(const binstruction[94]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x540A0025, // 0001 LDINT R2 38 - 0x1C040202, // 0002 EQ R1 R1 R2 - 0x78060001, // 0003 JMPF R1 #0006 - 0x80063400, // 0004 RET 1 K26 - 0x70020056, // 0005 JMP #005D - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x540A0022, // 0007 LDINT R2 35 - 0x1C040202, // 0008 EQ R1 R1 R2 - 0x78060001, // 0009 JMPF R1 #000C - 0x80063600, // 000A RET 1 K27 - 0x70020050, // 000B JMP #005D - 0x88040100, // 000C GETMBR R1 R0 K0 - 0x1C04030F, // 000D EQ R1 R1 K15 - 0x78060005, // 000E JMPF R1 #0015 - 0x60040018, // 000F GETGBL R1 G24 - 0x5808001C, // 0010 LDCONST R2 K28 - 0x880C0103, // 0011 GETMBR R3 R0 K3 - 0x7C040400, // 0012 CALL R1 2 - 0x80040200, // 0013 RET 1 R1 - 0x70020047, // 0014 JMP #005D - 0x88040100, // 0015 GETMBR R1 R0 K0 - 0x1C040307, // 0016 EQ R1 R1 K7 - 0x78060005, // 0017 JMPF R1 #001E - 0x60040018, // 0018 GETGBL R1 G24 - 0x5808001D, // 0019 LDCONST R2 K29 - 0x880C0103, // 001A GETMBR R3 R0 K3 - 0x7C040400, // 001B CALL R1 2 - 0x80040200, // 001C RET 1 R1 - 0x7002003E, // 001D JMP #005D - 0x88040100, // 001E GETMBR R1 R0 K0 - 0x1C04031E, // 001F EQ R1 R1 K30 - 0x78060005, // 0020 JMPF R1 #0027 - 0x60040018, // 0021 GETGBL R1 G24 - 0x5808001F, // 0022 LDCONST R2 K31 - 0x880C0103, // 0023 GETMBR R3 R0 K3 - 0x7C040400, // 0024 CALL R1 2 - 0x80040200, // 0025 RET 1 R1 - 0x70020035, // 0026 JMP #005D - 0x88040100, // 0027 GETMBR R1 R0 K0 - 0x1C04030B, // 0028 EQ R1 R1 K11 - 0x78060005, // 0029 JMPF R1 #0030 - 0x60040018, // 002A GETGBL R1 G24 - 0x58080020, // 002B LDCONST R2 K32 - 0x880C0103, // 002C GETMBR R3 R0 K3 - 0x7C040400, // 002D CALL R1 2 - 0x80040200, // 002E RET 1 R1 - 0x7002002C, // 002F JMP #005D - 0x88040100, // 0030 GETMBR R1 R0 K0 - 0x540A0003, // 0031 LDINT R2 4 - 0x1C040202, // 0032 EQ R1 R1 R2 - 0x78060005, // 0033 JMPF R1 #003A - 0x60040018, // 0034 GETGBL R1 G24 - 0x58080021, // 0035 LDCONST R2 K33 - 0x880C0103, // 0036 GETMBR R3 R0 K3 - 0x7C040400, // 0037 CALL R1 2 - 0x80040200, // 0038 RET 1 R1 - 0x70020022, // 0039 JMP #005D - 0x88040100, // 003A GETMBR R1 R0 K0 - 0x540A0004, // 003B LDINT R2 5 - 0x1C040202, // 003C EQ R1 R1 R2 - 0x78060005, // 003D JMPF R1 #0044 - 0x60040018, // 003E GETGBL R1 G24 - 0x58080022, // 003F LDCONST R2 K34 - 0x880C0103, // 0040 GETMBR R3 R0 K3 - 0x7C040400, // 0041 CALL R1 2 - 0x80040200, // 0042 RET 1 R1 - 0x70020018, // 0043 JMP #005D - 0x88040100, // 0044 GETMBR R1 R0 K0 - 0x540A0005, // 0045 LDINT R2 6 - 0x1C040202, // 0046 EQ R1 R1 R2 - 0x78060005, // 0047 JMPF R1 #004E - 0x60040018, // 0048 GETGBL R1 G24 - 0x58080023, // 0049 LDCONST R2 K35 - 0x880C0103, // 004A GETMBR R3 R0 K3 - 0x7C040400, // 004B CALL R1 2 - 0x80040200, // 004C RET 1 R1 - 0x7002000E, // 004D JMP #005D - 0x88040100, // 004E GETMBR R1 R0 K0 - 0x540A0026, // 004F LDINT R2 39 - 0x1C040202, // 0050 EQ R1 R1 R2 - 0x78060005, // 0051 JMPF R1 #0058 - 0x60040018, // 0052 GETGBL R1 G24 - 0x58080024, // 0053 LDCONST R2 K36 - 0x880C0103, // 0054 GETMBR R3 R0 K3 - 0x7C040400, // 0055 CALL R1 2 - 0x80040200, // 0056 RET 1 R1 - 0x70020004, // 0057 JMP #005D - 0x60040018, // 0058 GETGBL R1 G24 - 0x58080025, // 0059 LDCONST R2 K37 - 0x880C0103, // 005A GETMBR R3 R0 K3 - 0x7C040400, // 005B CALL R1 2 - 0x80040200, // 005C RET 1 R1 - 0x80000000, // 005D RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_separator -********************************************************************/ -be_local_closure(class_Token_is_separator, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_separator), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x540A001D, // 0001 LDINT R2 30 - 0x28040202, // 0002 GE R1 R1 R2 - 0x78060003, // 0003 JMPF R1 #0008 - 0x88040100, // 0004 GETMBR R1 R0 K0 - 0x540A0021, // 0005 LDINT R2 34 - 0x18040202, // 0006 LE R1 R1 R2 - 0x74060000, // 0007 JMPT R1 #0009 - 0x50040001, // 0008 LDBOOL R1 0 1 - 0x50040200, // 0009 LDBOOL R1 1 0 - 0x80040200, // 000A RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_keyword -********************************************************************/ -be_local_closure(class_Token_is_keyword, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_keyword), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x1C08050F, // 0001 EQ R2 R2 K15 - 0x780A0002, // 0002 JMPF R2 #0006 - 0x88080103, // 0003 GETMBR R2 R0 K3 - 0x1C080401, // 0004 EQ R2 R2 R1 - 0x740A0000, // 0005 JMPT R2 #0007 - 0x50080001, // 0006 LDBOOL R2 0 1 - 0x50080200, // 0007 LDBOOL R2 1 0 - 0x80040400, // 0008 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_literal -********************************************************************/ -be_local_closure(class_Token_is_literal, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_literal), - &be_const_str_solidified, - ( &(const binstruction[25]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x1C04030B, // 0001 EQ R1 R1 K11 - 0x74060013, // 0002 JMPT R1 #0017 - 0x88040100, // 0003 GETMBR R1 R0 K0 - 0x1C04031E, // 0004 EQ R1 R1 K30 - 0x74060010, // 0005 JMPT R1 #0017 - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x540A0003, // 0007 LDINT R2 4 - 0x1C040202, // 0008 EQ R1 R1 R2 - 0x7406000C, // 0009 JMPT R1 #0017 - 0x88040100, // 000A GETMBR R1 R0 K0 - 0x540A0004, // 000B LDINT R2 5 - 0x1C040202, // 000C EQ R1 R1 R2 - 0x74060008, // 000D JMPT R1 #0017 - 0x88040100, // 000E GETMBR R1 R0 K0 - 0x540A0005, // 000F LDINT R2 6 - 0x1C040202, // 0010 EQ R1 R1 R2 - 0x74060004, // 0011 JMPT R1 #0017 - 0x88040100, // 0012 GETMBR R1 R0 K0 - 0x540A0006, // 0013 LDINT R2 7 - 0x1C040202, // 0014 EQ R1 R1 R2 - 0x74060000, // 0015 JMPT R1 #0017 - 0x50040001, // 0016 LDBOOL R1 0 1 - 0x50040200, // 0017 LDBOOL R1 1 0 - 0x80040200, // 0018 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: can_start_expression -********************************************************************/ -be_local_closure(class_Token_can_start_expression, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(can_start_expression), - &be_const_str_solidified, - ( &(const binstruction[29]) { /* code */ - 0x8C040116, // 0000 GETMET R1 R0 K22 - 0x7C040200, // 0001 CALL R1 1 - 0x74060017, // 0002 JMPT R1 #001B - 0x88040100, // 0003 GETMBR R1 R0 K0 - 0x1C040307, // 0004 EQ R1 R1 K7 - 0x74060014, // 0005 JMPT R1 #001B - 0x88040100, // 0006 GETMBR R1 R0 K0 - 0x540A0023, // 0007 LDINT R2 36 - 0x1C040202, // 0008 EQ R1 R1 R2 - 0x74060010, // 0009 JMPT R1 #001B - 0x88040100, // 000A GETMBR R1 R0 K0 - 0x540A0017, // 000B LDINT R2 24 - 0x1C040202, // 000C EQ R1 R1 R2 - 0x7406000C, // 000D JMPT R1 #001B - 0x88040100, // 000E GETMBR R1 R0 K0 - 0x540A0016, // 000F LDINT R2 23 - 0x1C040202, // 0010 EQ R1 R1 R2 - 0x74060008, // 0011 JMPT R1 #001B - 0x88040100, // 0012 GETMBR R1 R0 K0 - 0x540A0009, // 0013 LDINT R2 10 - 0x1C040202, // 0014 EQ R1 R1 R2 - 0x74060004, // 0015 JMPT R1 #001B - 0x88040100, // 0016 GETMBR R1 R0 K0 - 0x540A0008, // 0017 LDINT R2 9 - 0x1C040202, // 0018 EQ R1 R1 R2 - 0x74060000, // 0019 JMPT R1 #001B - 0x50040001, // 001A LDBOOL R1 0 1 - 0x50040200, // 001B LDBOOL R1 1 0 - 0x80040200, // 001C RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_boolean_value -********************************************************************/ -be_local_closure(class_Token_get_boolean_value, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(get_boolean_value), - &be_const_str_solidified, - ( &(const binstruction[ 8]) { /* code */ - 0x8C040126, // 0000 GETMET R1 R0 K38 - 0x7C040200, // 0001 CALL R1 1 - 0x78060002, // 0002 JMPF R1 #0006 - 0x88040103, // 0003 GETMBR R1 R0 K3 - 0x1C040327, // 0004 EQ R1 R1 K39 - 0x80040200, // 0005 RET 1 R1 - 0x4C040000, // 0006 LDNIL R1 - 0x80040200, // 0007 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_numeric -********************************************************************/ -be_local_closure(class_Token_is_numeric, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_numeric), - &be_const_str_solidified, ( &(const binstruction[18]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x1C04030B, // 0001 EQ R1 R1 K11 - 0x7406000C, // 0002 JMPT R1 #0010 - 0x88040100, // 0003 GETMBR R1 R0 K0 - 0x540A0004, // 0004 LDINT R2 5 - 0x1C040202, // 0005 EQ R1 R1 R2 - 0x74060008, // 0006 JMPT R1 #0010 - 0x88040100, // 0007 GETMBR R1 R0 K0 - 0x540A0005, // 0008 LDINT R2 6 - 0x1C040202, // 0009 EQ R1 R1 R2 - 0x74060004, // 000A JMPT R1 #0010 - 0x88040100, // 000B GETMBR R1 R0 K0 - 0x540A0006, // 000C LDINT R2 7 - 0x1C040202, // 000D EQ R1 R1 R2 - 0x74060000, // 000E JMPT R1 #0010 - 0x50040001, // 000F LDBOOL R1 0 1 - 0x50040200, // 0010 LDBOOL R1 1 0 - 0x80040200, // 0011 RET 1 R1 + 0x88040137, // 0000 GETMBR R1 R0 K55 + 0x90020E01, // 0001 SETMBR R0 K7 R1 + 0x90021738, // 0002 SETMBR R0 K11 K56 + 0xB8067200, // 0003 GETNGBL R1 K57 + 0x8C04033A, // 0004 GETMET R1 R1 K58 + 0x5C0C0000, // 0005 MOVE R3 R0 + 0x7C040400, // 0006 CALL R1 2 + 0xB8067200, // 0007 GETNGBL R1 K57 + 0x8C04033B, // 0008 GETMET R1 R1 K59 + 0x7C040200, // 0009 CALL R1 1 + 0x78060001, // 000A JMPF R1 #000D + 0x8C04013C, // 000B GETMET R1 R0 K60 + 0x7C040200, // 000C CALL R1 1 + 0xB8066400, // 000D GETNGBL R1 K50 + 0x5808003D, // 000E LDCONST R2 K61 + 0x580C0034, // 000F LDCONST R3 K52 + 0x7C040400, // 0010 CALL R1 2 + 0x80000000, // 0011 RET 0 }) ) ); @@ -17321,664 +16051,90 @@ be_local_closure(class_Token_is_numeric, /* name */ /******************************************************************** -** Solidified function: is_statement_start +** Solidified class: AnimationWebUI ********************************************************************/ -be_local_closure(class_Token_is_statement_start, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_statement_start), - &be_const_str_solidified, - ( &(const binstruction[23]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x2004030F, // 0001 NE R1 R1 K15 - 0x78060001, // 0002 JMPF R1 #0005 - 0x50040000, // 0003 LDBOOL R1 0 0 - 0x80040200, // 0004 RET 1 R1 - 0x60040010, // 0005 GETGBL R1 G16 - 0x88080128, // 0006 GETMBR R2 R0 K40 - 0x7C040200, // 0007 CALL R1 1 - 0xA8020008, // 0008 EXBLK 0 #0012 - 0x5C080200, // 0009 MOVE R2 R1 - 0x7C080000, // 000A CALL R2 0 - 0x880C0103, // 000B GETMBR R3 R0 K3 - 0x1C0C0602, // 000C EQ R3 R3 R2 - 0x780E0002, // 000D JMPF R3 #0011 - 0x500C0200, // 000E LDBOOL R3 1 0 - 0xA8040001, // 000F EXBLK 1 1 - 0x80040600, // 0010 RET 1 R3 - 0x7001FFF6, // 0011 JMP #0009 - 0x58040029, // 0012 LDCONST R1 K41 - 0xAC040200, // 0013 CATCH R1 1 0 - 0xB0080000, // 0014 RAISE 2 R0 R0 - 0x50040000, // 0015 LDBOOL R1 0 0 - 0x80040200, // 0016 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_dsl_function -********************************************************************/ -be_local_closure(class_Token_is_dsl_function, /* name */ - be_nested_proto( - 7, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_dsl_function), - &be_const_str_solidified, - ( &(const binstruction[32]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x2004030F, // 0001 NE R1 R1 K15 - 0x78060001, // 0002 JMPF R1 #0005 - 0x50040000, // 0003 LDBOOL R1 0 0 - 0x80040200, // 0004 RET 1 R1 - 0xA8020011, // 0005 EXBLK 0 #0018 - 0xA4065400, // 0006 IMPORT R1 K42 - 0xB80A5600, // 0007 GETNGBL R2 K43 - 0x8808052C, // 0008 GETMBR R2 R2 K44 - 0x4C0C0000, // 0009 LDNIL R3 - 0x200C0403, // 000A NE R3 R2 R3 - 0x780E0009, // 000B JMPF R3 #0016 - 0x8C0C032D, // 000C GETMET R3 R1 K45 - 0x5C140400, // 000D MOVE R5 R2 - 0x7C0C0400, // 000E CALL R3 2 - 0x8C10072E, // 000F GETMET R4 R3 K46 - 0x88180103, // 0010 GETMBR R6 R0 K3 - 0x7C100400, // 0011 CALL R4 2 - 0x4C140000, // 0012 LDNIL R5 - 0x20100805, // 0013 NE R4 R4 R5 - 0xA8040001, // 0014 EXBLK 1 1 - 0x80040800, // 0015 RET 1 R4 - 0xA8040001, // 0016 EXBLK 1 1 - 0x70020005, // 0017 JMP #001E - 0xAC040002, // 0018 CATCH R1 0 2 - 0x70020002, // 0019 JMP #001D - 0x500C0000, // 001A LDBOOL R3 0 0 - 0x80040600, // 001B RET 1 R3 - 0x70020000, // 001C JMP #001E - 0xB0080000, // 001D RAISE 2 R0 R0 - 0x50040000, // 001E LDBOOL R1 0 0 - 0x80040200, // 001F RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_identifier -********************************************************************/ -be_local_closure(class_Token_is_identifier, /* name */ - be_nested_proto( - 3, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_identifier), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x1C080507, // 0001 EQ R2 R2 K7 - 0x780A0002, // 0002 JMPF R2 #0006 - 0x88080103, // 0003 GETMBR R2 R0 K3 - 0x1C080401, // 0004 EQ R2 R2 R1 - 0x740A0000, // 0005 JMPT R2 #0007 - 0x50080001, // 0006 LDBOOL R2 0 1 - 0x50080200, // 0007 LDBOOL R2 1 0 - 0x80040400, // 0008 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: is_boolean -********************************************************************/ -be_local_closure(class_Token_is_boolean, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(is_boolean), - &be_const_str_solidified, - ( &(const binstruction[12]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x1C04030F, // 0001 EQ R1 R1 K15 - 0x78060005, // 0002 JMPF R1 #0009 - 0x88040103, // 0003 GETMBR R1 R0 K3 - 0x1C040327, // 0004 EQ R1 R1 K39 - 0x74060003, // 0005 JMPT R1 #000A - 0x88040103, // 0006 GETMBR R1 R0 K3 - 0x1C04032F, // 0007 EQ R1 R1 K47 - 0x74060000, // 0008 JMPT R1 #000A - 0x50040001, // 0009 LDBOOL R1 0 1 - 0x50040200, // 000A LDBOOL R1 1 0 - 0x80040200, // 000B RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: tostring -********************************************************************/ -be_local_closure(class_Token_tostring, /* name */ - be_nested_proto( - 9, /* nstack */ - 1, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(tostring), - &be_const_str_solidified, - ( &(const binstruction[56]) { /* code */ - 0x8C040130, // 0000 GETMET R1 R0 K48 - 0x880C0100, // 0001 GETMBR R3 R0 K0 - 0x7C040400, // 0002 CALL R1 2 - 0x88080100, // 0003 GETMBR R2 R0 K0 - 0x540E0025, // 0004 LDINT R3 38 - 0x1C080403, // 0005 EQ R2 R2 R3 - 0x780A0007, // 0006 JMPF R2 #000F - 0x60080018, // 0007 GETGBL R2 G24 - 0x580C0031, // 0008 LDCONST R3 K49 - 0x5C100200, // 0009 MOVE R4 R1 - 0x88140104, // 000A GETMBR R5 R0 K4 - 0x88180105, // 000B GETMBR R6 R0 K5 - 0x7C080800, // 000C CALL R2 4 - 0x80040400, // 000D RET 1 R2 - 0x70020027, // 000E JMP #0037 - 0x88080100, // 000F GETMBR R2 R0 K0 - 0x540E0022, // 0010 LDINT R3 35 - 0x1C080403, // 0011 EQ R2 R2 R3 - 0x780A0007, // 0012 JMPF R2 #001B - 0x60080018, // 0013 GETGBL R2 G24 - 0x580C0031, // 0014 LDCONST R3 K49 - 0x5C100200, // 0015 MOVE R4 R1 - 0x88140104, // 0016 GETMBR R5 R0 K4 - 0x88180105, // 0017 GETMBR R6 R0 K5 - 0x7C080800, // 0018 CALL R2 4 - 0x80040400, // 0019 RET 1 R2 - 0x7002001B, // 001A JMP #0037 - 0x6008000C, // 001B GETGBL R2 G12 - 0x880C0103, // 001C GETMBR R3 R0 K3 - 0x7C080200, // 001D CALL R2 1 - 0x540E0013, // 001E LDINT R3 20 - 0x24080403, // 001F GT R2 R2 R3 - 0x780A000D, // 0020 JMPF R2 #002F - 0x540A0010, // 0021 LDINT R2 17 - 0x400A1E02, // 0022 CONNECT R2 K15 R2 - 0x880C0103, // 0023 GETMBR R3 R0 K3 - 0x94080602, // 0024 GETIDX R2 R3 R2 - 0x00080532, // 0025 ADD R2 R2 K50 - 0x600C0018, // 0026 GETGBL R3 G24 - 0x58100033, // 0027 LDCONST R4 K51 - 0x5C140200, // 0028 MOVE R5 R1 - 0x5C180400, // 0029 MOVE R6 R2 - 0x881C0104, // 002A GETMBR R7 R0 K4 - 0x88200105, // 002B GETMBR R8 R0 K5 - 0x7C0C0A00, // 002C CALL R3 5 - 0x80040600, // 002D RET 1 R3 - 0x70020007, // 002E JMP #0037 - 0x60080018, // 002F GETGBL R2 G24 - 0x580C0033, // 0030 LDCONST R3 K51 - 0x5C100200, // 0031 MOVE R4 R1 - 0x88140103, // 0032 GETMBR R5 R0 K3 - 0x88180104, // 0033 GETMBR R6 R0 K4 - 0x881C0105, // 0034 GETMBR R7 R0 K5 - 0x7C080A00, // 0035 CALL R2 5 - 0x80040400, // 0036 RET 1 R2 - 0x80000000, // 0037 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: with_value -********************************************************************/ -be_local_closure(class_Token_with_value, /* name */ - be_nested_proto( - 11, /* nstack */ - 2, /* argc */ - 10, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - &be_ktab_class_Token, /* shared constants */ - be_str_weak(with_value), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0xA40A0200, // 0000 IMPORT R2 K1 - 0x8C0C0502, // 0001 GETMET R3 R2 K2 - 0x88140100, // 0002 GETMBR R5 R0 K0 - 0x5C180200, // 0003 MOVE R6 R1 - 0x881C0104, // 0004 GETMBR R7 R0 K4 - 0x88200105, // 0005 GETMBR R8 R0 K5 - 0x6024000C, // 0006 GETGBL R9 G12 - 0x5C280200, // 0007 MOVE R10 R1 - 0x7C240200, // 0008 CALL R9 1 - 0x7C0C0C00, // 0009 CALL R3 6 - 0x80040600, // 000A RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified class: Token -********************************************************************/ -be_local_class(Token, - 5, +be_local_class(AnimationWebUI, + 2, NULL, - be_nested_map(75, + be_nested_map(9, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(with_value, 17), be_const_closure(class_Token_with_value_closure) }, - { be_const_key_weak(TIME, -1), be_const_int(5) }, - { be_const_key_weak(ASSIGN, 25), be_const_int(8) }, - { be_const_key_weak(POWER, -1), be_const_int(14) }, - { be_const_key_weak(MULTIPLIER, -1), be_const_int(7) }, - { be_const_key_weak(MULTIPLY, 0), be_const_int(11) }, - { be_const_key_weak(with_type, 74), be_const_closure(class_Token_with_type_closure) }, - { be_const_key_weak(end_column, -1), be_const_closure(class_Token_end_column_closure) }, - { be_const_key_weak(value, 29), be_const_var(1) }, - { be_const_key_weak(LEFT_PAREN, -1), be_const_int(24) }, - { be_const_key_weak(is_operator, -1), be_const_closure(class_Token_is_operator_closure) }, - { be_const_key_weak(LOGICAL_NOT, -1), be_const_int(23) }, - { be_const_key_weak(NEWLINE, -1), be_const_int(35) }, - { be_const_key_weak(LEFT_BRACKET, -1), be_const_int(28) }, - { be_const_key_weak(tostring, 28), be_const_closure(class_Token_tostring_closure) }, - { be_const_key_weak(GREATER_EQUAL, -1), be_const_int(20) }, - { be_const_key_weak(is_delimiter, -1), be_const_closure(class_Token_is_delimiter_closure) }, - { be_const_key_weak(COMMENT, -1), be_const_int(37) }, - { be_const_key_weak(LOGICAL_OR, -1), be_const_int(22) }, - { be_const_key_weak(is_type, 73), be_const_closure(class_Token_is_type_closure) }, - { be_const_key_weak(PERCENTAGE, -1), be_const_int(6) }, - { be_const_key_weak(SEMICOLON, -1), be_const_int(31) }, - { be_const_key_weak(column, 72), be_const_var(3) }, - { be_const_key_weak(color_names, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(37, - ( (struct bvalue*) &(const bvalue[]) { - be_nested_str_weak(red), - be_nested_str_weak(green), - be_nested_str_weak(blue), - be_nested_str_weak(white), - be_nested_str_weak(black), - be_nested_str_weak(yellow), - be_nested_str_weak(orange), - be_nested_str_weak(purple), - be_nested_str_weak(pink), - be_nested_str_weak(cyan), - be_nested_str_weak(magenta), - be_nested_str_weak(gray), - be_nested_str_weak(grey), - be_nested_str_weak(silver), - be_nested_str_weak(gold), - be_nested_str_weak(brown), - be_nested_str_weak(lime), - be_nested_str_weak(navy), - be_nested_str_weak(olive), - be_nested_str_weak(maroon), - be_nested_str_weak(teal), - be_nested_str_weak(aqua), - be_nested_str_weak(fuchsia), - be_nested_str_weak(indigo), - be_nested_str_weak(violet), - be_nested_str_weak(crimson), - be_nested_str_weak(coral), - be_nested_str_weak(salmon), - be_nested_str_weak(khaki), - be_nested_str_weak(plum), - be_nested_str_weak(orchid), - be_nested_str_weak(turquoise), - be_nested_str_weak(tan), - be_nested_str_weak(beige), - be_nested_str_weak(ivory), - be_nested_str_weak(snow), - be_nested_str_weak(transparent), - })) ) } )) }, - { be_const_key_weak(is_identifier, 44), be_const_closure(class_Token_is_identifier_closure) }, - { be_const_key_weak(is_dsl_function, -1), be_const_closure(class_Token_is_dsl_function_closure) }, - { be_const_key_weak(EOF, 61), be_const_int(38) }, - { be_const_key_weak(GREATER_THAN, -1), be_const_int(19) }, - { be_const_key_weak(is_numeric, 66), be_const_closure(class_Token_is_numeric_closure) }, - { be_const_key_weak(MODULO, -1), be_const_int(13) }, - { be_const_key_weak(init, 67), be_const_closure(class_Token_init_closure) }, - { be_const_key_weak(get_numeric_value, -1), be_const_closure(class_Token_get_numeric_value_closure) }, - { be_const_key_weak(IDENTIFIER, -1), be_const_int(1) }, - { be_const_key_weak(KEYWORD, 8), be_const_int(0) }, - { be_const_key_weak(RIGHT_PAREN, 68), be_const_int(25) }, - { be_const_key_weak(can_end_expression, 27), be_const_closure(class_Token_can_end_expression_closure) }, - { be_const_key_weak(MINUS, 56), be_const_int(10) }, - { be_const_key_weak(COLOR, -1), be_const_int(4) }, - { be_const_key_weak(get_boolean_value, 46), be_const_closure(class_Token_get_boolean_value_closure) }, - { be_const_key_weak(to_string, -1), be_const_static_closure(class_Token_to_string_closure) }, - { be_const_key_weak(COLON, -1), be_const_int(32) }, - { be_const_key_weak(EVENT_INTERRUPT, -1), be_const_int(41) }, - { be_const_key_weak(LESS_THAN, 64), be_const_int(17) }, - { be_const_key_weak(VARIABLE_REF, -1), be_const_int(36) }, - { be_const_key_weak(type, -1), be_const_var(0) }, - { be_const_key_weak(NOT_EQUAL, 34), be_const_int(16) }, - { be_const_key_weak(length, 63), be_const_var(4) }, - { be_const_key_weak(to_error_string, -1), be_const_closure(class_Token_to_error_string_closure) }, - { be_const_key_weak(line, 24), be_const_var(2) }, - { be_const_key_weak(is_separator, -1), be_const_closure(class_Token_is_separator_closure) }, - { be_const_key_weak(NUMBER, -1), be_const_int(2) }, - { be_const_key_weak(keywords, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(73, - ( (struct bvalue*) &(const bvalue[]) { - be_nested_str_weak(strip), - be_nested_str_weak(set), - be_nested_str_weak(import), - be_nested_str_weak(berry), - be_nested_str_weak(color), - be_nested_str_weak(palette), - be_nested_str_weak(animation), - be_nested_str_weak(sequence), - be_nested_str_weak(function), - be_nested_str_weak(zone), - be_nested_str_weak(template), - be_nested_str_weak(param), - be_nested_str_weak(type), - be_nested_str_weak(play), - be_nested_str_weak(for), - be_nested_str_weak(with), - be_nested_str_weak(repeat), - be_nested_str_weak(times), - be_nested_str_weak(forever), - be_nested_str_weak(if), - be_nested_str_weak(else), - be_nested_str_weak(elif), - be_nested_str_weak(choose), - be_nested_str_weak(random), - be_nested_str_weak(on), - be_nested_str_weak(run), - be_nested_str_weak(wait), - be_nested_str_weak(goto), - be_nested_str_weak(interrupt), - be_nested_str_weak(resume), - be_nested_str_weak(while), - be_nested_str_weak(from), - be_nested_str_weak(to), - be_nested_str_weak(return), - be_nested_str_weak(reset), - be_nested_str_weak(restart), - be_nested_str_weak(at), - be_nested_str_weak(ease), - be_nested_str_weak(sync), - be_nested_str_weak(every), - be_nested_str_weak(stagger), - be_nested_str_weak(across), - be_nested_str_weak(pixels), - be_nested_str_weak(rgb), - be_nested_str_weak(hsv), - be_nested_str_weak(all), - be_nested_str_weak(even), - be_nested_str_weak(odd), - be_nested_str_weak(center), - be_nested_str_weak(edges), - be_nested_str_weak(left), - be_nested_str_weak(right), - be_nested_str_weak(top), - be_nested_str_weak(bottom), - be_nested_str_weak(true), - be_nested_str_weak(false), - be_nested_str_weak(nil), - be_nested_str_weak(transparent), - be_nested_str_weak(startup), - be_nested_str_weak(shutdown), - be_nested_str_weak(button_press), - be_nested_str_weak(button_hold), - be_nested_str_weak(motion_detected), - be_nested_str_weak(brightness_change), - be_nested_str_weak(timer), - be_nested_str_weak(time), - be_nested_str_weak(sound_peak), - be_nested_str_weak(network_message), - be_nested_str_weak(ms), - be_nested_str_weak(s), - be_nested_str_weak(m), - be_nested_str_weak(h), - be_nested_str_weak(bpm), - })) ) } )) }, - { be_const_key_weak(ERROR, -1), be_const_int(39) }, - { be_const_key_weak(DOT, 60), be_const_int(33) }, - { be_const_key_weak(EQUAL, 38), be_const_int(15) }, - { be_const_key_weak(is_literal, -1), be_const_closure(class_Token_is_literal_closure) }, - { be_const_key_weak(LOGICAL_AND, -1), be_const_int(21) }, - { be_const_key_weak(can_start_expression, -1), be_const_closure(class_Token_can_start_expression_closure) }, - { be_const_key_weak(DIVIDE, -1), be_const_int(12) }, - { be_const_key_weak(LEFT_BRACE, 3), be_const_int(26) }, - { be_const_key_weak(is_keyword, -1), be_const_closure(class_Token_is_keyword_closure) }, - { be_const_key_weak(LESS_EQUAL, -1), be_const_int(18) }, - { be_const_key_weak(RIGHT_BRACE, 20), be_const_int(27) }, - { be_const_key_weak(RIGHT_BRACKET, -1), be_const_int(29) }, - { be_const_key_weak(COMMA, -1), be_const_int(30) }, - { be_const_key_weak(is_statement_start, -1), be_const_closure(class_Token_is_statement_start_closure) }, - { be_const_key_weak(names, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(44, - ( (struct bvalue*) &(const bvalue[]) { - be_nested_str_weak(KEYWORD), - be_nested_str_weak(IDENTIFIER), - be_nested_str_weak(NUMBER), - be_nested_str_weak(STRING), - be_nested_str_weak(COLOR), - be_nested_str_weak(TIME), - be_nested_str_weak(PERCENTAGE), - be_nested_str_weak(MULTIPLIER), - be_nested_str_weak(ASSIGN), - be_nested_str_weak(PLUS), - be_nested_str_weak(MINUS), - be_nested_str_weak(MULTIPLY), - be_nested_str_weak(DIVIDE), - be_nested_str_weak(MODULO), - be_nested_str_weak(POWER), - be_nested_str_weak(EQUAL), - be_nested_str_weak(NOT_EQUAL), - be_nested_str_weak(LESS_THAN), - be_nested_str_weak(LESS_EQUAL), - be_nested_str_weak(GREATER_THAN), - be_nested_str_weak(GREATER_EQUAL), - be_nested_str_weak(LOGICAL_AND), - be_nested_str_weak(LOGICAL_OR), - be_nested_str_weak(LOGICAL_NOT), - be_nested_str_weak(LEFT_PAREN), - be_nested_str_weak(RIGHT_PAREN), - be_nested_str_weak(LEFT_BRACE), - be_nested_str_weak(RIGHT_BRACE), - be_nested_str_weak(LEFT_BRACKET), - be_nested_str_weak(RIGHT_BRACKET), - be_nested_str_weak(COMMA), - be_nested_str_weak(SEMICOLON), - be_nested_str_weak(COLON), - be_nested_str_weak(DOT), - be_nested_str_weak(ARROW), - be_nested_str_weak(NEWLINE), - be_nested_str_weak(VARIABLE_REF), - be_nested_str_weak(COMMENT), - be_nested_str_weak(EOF), - be_nested_str_weak(ERROR), - be_nested_str_weak(EVENT_ON), - be_nested_str_weak(EVENT_INTERRUPT), - be_nested_str_weak(EVENT_RESUME), - be_nested_str_weak(EVENT_AFTER), - })) ) } )) }, - { be_const_key_weak(ARROW, -1), be_const_int(34) }, - { be_const_key_weak(PLUS, -1), be_const_int(9) }, - { be_const_key_weak(is_boolean, -1), be_const_closure(class_Token_is_boolean_closure) }, - { be_const_key_weak(STRING, 14), be_const_int(3) }, - { be_const_key_weak(EVENT_ON, -1), be_const_int(40) }, - { be_const_key_weak(EVENT_AFTER, -1), be_const_int(43) }, - { be_const_key_weak(statement_keywords, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(14, - ( (struct bvalue*) &(const bvalue[]) { - be_nested_str_weak(strip), - be_nested_str_weak(set), - be_nested_str_weak(color), - be_nested_str_weak(palette), - be_nested_str_weak(animation), - be_nested_str_weak(sequence), - be_nested_str_weak(function), - be_nested_str_weak(zone), - be_nested_str_weak(on), - be_nested_str_weak(run), - be_nested_str_weak(template), - be_nested_str_weak(param), - be_nested_str_weak(import), - be_nested_str_weak(berry), - })) ) } )) }, - { be_const_key_weak(EVENT_RESUME, -1), be_const_int(42) }, + { be_const_key_weak(page_main, -1), be_const_closure(class_AnimationWebUI_page_main_closure) }, + { be_const_key_weak(handle_request, -1), be_const_closure(class_AnimationWebUI_handle_request_closure) }, + { be_const_key_weak(last_dsl_code, -1), be_const_var(0) }, + { be_const_key_weak(DEFAULT_DSL, -1), be_nested_str_long(_X23_X20Simple_X20Berry_X20Animation_X20Example_X20_X2D_X20Cylon_X20red_X20eye_X0A_X0Aset_X20strip_len_X20_X3D_X20strip_length_X28_X29_X0A_X0Aanimation_X20red_eye_X20_X3D_X20beacon_animation_X28_X0A_X20_X20color_X20_X3D_X20red_X0A_X20_X20pos_X20_X3D_X20smooth_X28min_value_X20_X3D_X200_X2C_X20max_value_X20_X3D_X20strip_len_X20_X2D_X202_X2C_X20duration_X20_X3D_X205s_X29_X0A_X20_X20beacon_size_X20_X3D_X203_X20_X20_X20_X20_X20_X20_X20_X23_X20small_X203_X20pixels_X20eye_X0A_X20_X20slew_size_X20_X3D_X202_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20with_X202_X20pixel_X20shading_X20around_X0A_X29_X0A_X0Arun_X20red_eye_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20run_X20the_X20animation_X0A) }, + { be_const_key_weak(deinit, 3), be_const_closure(class_AnimationWebUI_deinit_closure) }, + { be_const_key_weak(web_add_handler, 2), be_const_closure(class_AnimationWebUI_web_add_handler_closure) }, + { be_const_key_weak(last_berry_code, 7), be_const_var(1) }, + { be_const_key_weak(init, 8), be_const_closure(class_AnimationWebUI_init_closure) }, + { be_const_key_weak(web_add_button, -1), be_const_closure(class_AnimationWebUI_web_add_button_closure) }, })), - be_str_weak(Token) + be_str_weak(AnimationWebUI) ); -/******************************************************************** -** Solidified function: create_dsl_runtime -********************************************************************/ -be_local_closure(create_dsl_runtime, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(animation_dsl), - /* K1 */ be_nested_str_weak(animation), - /* K2 */ be_nested_str_weak(create_engine), - /* K3 */ be_nested_str_weak(DSLRuntime), - }), - be_str_weak(create_dsl_runtime), - &be_const_str_solidified, - ( &(const binstruction[10]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0xB80E0200, // 0001 GETNGBL R3 K1 - 0x8C0C0702, // 0002 GETMET R3 R3 K2 - 0x5C140000, // 0003 MOVE R5 R0 - 0x7C0C0400, // 0004 CALL R3 2 - 0x8C100503, // 0005 GETMET R4 R2 K3 - 0x5C180600, // 0006 MOVE R6 R3 - 0x5C1C0200, // 0007 MOVE R7 R1 - 0x7C100600, // 0008 CALL R4 3 - 0x80040800, // 0009 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified module: animation_dsl ********************************************************************/ be_local_module(animation_dsl, "animation_dsl", - be_nested_map(26, + be_nested_map(17, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(create_dsl_runtime, -1), be_const_closure(create_dsl_runtime_closure) }, - { be_const_key_weak(is_color_name, -1), be_const_closure(is_color_name_closure) }, - { be_const_key_weak(execute, -1), be_const_closure(execute_closure) }, + { be_const_key_weak(animation_web_ui, -1), be_const_class(be_class_AnimationWebUI) }, + { be_const_key_weak(MockEngine, 14), be_const_class(be_class_MockEngine) }, + { be_const_key_weak(compile_dsl, -1), be_const_closure(compile_dsl_closure) }, + { be_const_key_weak(is_keyword, -1), be_const_closure(is_keyword_closure) }, + { be_const_key_weak(Token, -1), be_const_class(be_class_Token) }, + { be_const_key_weak(create_lexer, -1), be_const_class(be_class_Lexer) }, + { be_const_key_weak(compile, -1), be_const_closure(compile_dsl_source_closure) }, + { be_const_key_weak(compile_file, 9), be_const_closure(compile_file_closure) }, { be_const_key_weak(named_colors, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { be_const_map( * be_nested_map(37, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(brown, -1), be_nested_str_weak(0xFFA52A2A) }, - { be_const_key_weak(silver, -1), be_nested_str_weak(0xFFC0C0C0) }, - { be_const_key_weak(salmon, -1), be_nested_str_weak(0xFFFA8072) }, - { be_const_key_weak(transparent, -1), be_nested_str_weak(0x00000000) }, - { be_const_key_weak(lime, 19), be_nested_str_weak(0xFF00FF00) }, - { be_const_key_weak(coral, 26), be_nested_str_weak(0xFFFF7F50) }, - { be_const_key_weak(cyan, -1), be_nested_str_weak(0xFF00FFFF) }, - { be_const_key_weak(olive, -1), be_nested_str_weak(0xFF808000) }, - { be_const_key_weak(snow, 16), be_nested_str_weak(0xFFFFFAFA) }, - { be_const_key_weak(violet, -1), be_nested_str_weak(0xFFEE82EE) }, - { be_const_key_weak(green, 20), be_nested_str_weak(0xFF008000) }, - { be_const_key_weak(turquoise, -1), be_nested_str_weak(0xFF40E0D0) }, - { be_const_key_weak(grey, -1), be_nested_str_weak(0xFF808080) }, - { be_const_key_weak(indigo, -1), be_nested_str_weak(0xFF4B0082) }, - { be_const_key_weak(navy, 23), be_nested_str_weak(0xFF000080) }, - { be_const_key_weak(white, 30), be_nested_str_weak(0xFFFFFFFF) }, - { be_const_key_weak(red, -1), be_nested_str_weak(0xFFFF0000) }, - { be_const_key_weak(orange, -1), be_nested_str_weak(0xFFFFA500) }, - { be_const_key_weak(gray, -1), be_nested_str_weak(0xFF808080) }, - { be_const_key_weak(purple, -1), be_nested_str_weak(0xFF800080) }, - { be_const_key_weak(beige, -1), be_nested_str_weak(0xFFF5F5DC) }, - { be_const_key_weak(fuchsia, -1), be_nested_str_weak(0xFFFF00FF) }, - { be_const_key_weak(crimson, 12), be_nested_str_weak(0xFFDC143C) }, - { be_const_key_weak(black, 18), be_nested_str_weak(0xFF000000) }, - { be_const_key_weak(magenta, 2), be_nested_str_weak(0xFFFF00FF) }, - { be_const_key_weak(yellow, 15), be_nested_str_weak(0xFFFFFF00) }, - { be_const_key_weak(tan, 27), be_nested_str_weak(0xFFD2B48C) }, - { be_const_key_weak(gold, -1), be_nested_str_weak(0xFFFFD700) }, - { be_const_key_weak(pink, -1), be_nested_str_weak(0xFFFFC0CB) }, - { be_const_key_weak(ivory, -1), be_nested_str_weak(0xFFFFFFF0) }, - { be_const_key_weak(khaki, 35), be_nested_str_weak(0xFFF0E68C) }, - { be_const_key_weak(aqua, -1), be_nested_str_weak(0xFF00FFFF) }, - { be_const_key_weak(blue, -1), be_nested_str_weak(0xFF0000FF) }, - { be_const_key_weak(plum, 21), be_nested_str_weak(0xFFDDA0DD) }, - { be_const_key_weak(orchid, -1), be_nested_str_weak(0xFFDA70D6) }, - { be_const_key_weak(teal, -1), be_nested_str_weak(0xFF008080) }, - { be_const_key_weak(maroon, -1), be_nested_str_weak(0xFF800000) }, + { be_const_key_weak(brown, -1), be_const_int(-5952982) }, + { be_const_key_weak(silver, -1), be_const_int(-4144960) }, + { be_const_key_weak(salmon, -1), be_const_int(-360334) }, + { be_const_key_weak(transparent, -1), be_const_int(0) }, + { be_const_key_weak(lime, 19), be_const_int(-16711936) }, + { be_const_key_weak(coral, 26), be_const_int(-32944) }, + { be_const_key_weak(cyan, -1), be_const_int(-16711681) }, + { be_const_key_weak(olive, -1), be_const_int(-8355840) }, + { be_const_key_weak(snow, 16), be_const_int(-1286) }, + { be_const_key_weak(violet, -1), be_const_int(-1146130) }, + { be_const_key_weak(green, 20), be_const_int(-16744448) }, + { be_const_key_weak(turquoise, -1), be_const_int(-12525360) }, + { be_const_key_weak(grey, -1), be_const_int(-8355712) }, + { be_const_key_weak(indigo, -1), be_const_int(-11861886) }, + { be_const_key_weak(navy, 23), be_const_int(-16777088) }, + { be_const_key_weak(white, 30), be_const_int(-1) }, + { be_const_key_weak(red, -1), be_const_int(-65536) }, + { be_const_key_weak(orange, -1), be_const_int(-23296) }, + { be_const_key_weak(gray, -1), be_const_int(-8355712) }, + { be_const_key_weak(purple, -1), be_const_int(-8388480) }, + { be_const_key_weak(beige, -1), be_const_int(-657956) }, + { be_const_key_weak(fuchsia, -1), be_const_int(-65281) }, + { be_const_key_weak(crimson, 12), be_const_int(-2354116) }, + { be_const_key_weak(black, 18), be_const_int(-16777216) }, + { be_const_key_weak(magenta, 2), be_const_int(-65281) }, + { be_const_key_weak(yellow, 15), be_const_int(-256) }, + { be_const_key_weak(tan, 27), be_const_int(-2968436) }, + { be_const_key_weak(gold, -1), be_const_int(-10496) }, + { be_const_key_weak(pink, -1), be_const_int(-16181) }, + { be_const_key_weak(ivory, -1), be_const_int(-16) }, + { be_const_key_weak(khaki, 35), be_const_int(-989556) }, + { be_const_key_weak(aqua, -1), be_const_int(-16711681) }, + { be_const_key_weak(blue, -1), be_const_int(-16776961) }, + { be_const_key_weak(plum, 21), be_const_int(-2252579) }, + { be_const_key_weak(orchid, -1), be_const_int(-2461482) }, + { be_const_key_weak(teal, -1), be_const_int(-16744320) }, + { be_const_key_weak(maroon, -1), be_const_int(-8388608) }, })) ) } )) }, - { be_const_key_weak(compile_dsl, -1), be_const_closure(compile_dsl_closure) }, - { be_const_key_weak(_symbol_table, -1), be_const_class(be_class_SymbolTable) }, - { be_const_key_weak(create_eof_token, 11), be_const_closure(create_eof_token_closure) }, - { be_const_key_weak(VERSION, 3), be_const_int(65536) }, - { be_const_key_weak(compile, 25), be_const_closure(compile_dsl_source_closure) }, - { be_const_key_weak(is_keyword, 16), be_const_closure(is_keyword_closure) }, - { be_const_key_weak(SimpleDSLTranspiler, -1), be_const_class(be_class_SimpleDSLTranspiler) }, - { be_const_key_weak(create_error_token, 13), be_const_closure(create_error_token_closure) }, - { be_const_key_weak(create_newline_token, -1), be_const_closure(create_newline_token_closure) }, { be_const_key_weak(load_file, -1), be_const_closure(load_file_closure) }, - { be_const_key_weak(DSLLexer, 0), be_const_class(be_class_DSLLexer) }, - { be_const_key_weak(_symbol_entry, -1), be_const_class(be_class_SymbolEntry) }, + { be_const_key_weak(_symbol_entry, 6), be_const_class(be_class_SymbolEntry) }, + { be_const_key_weak(is_color_name, 7), be_const_closure(is_color_name_closure) }, + { be_const_key_weak(execute, 0), be_const_closure(execute_closure) }, { be_const_key_weak(init, -1), be_const_closure(animation_dsl_init_closure) }, - { be_const_key_weak(MockEngine, -1), be_const_class(be_class_MockEngine) }, - { be_const_key_weak(create_runtime, -1), be_const_closure(create_runtime_closure) }, - { be_const_key_weak(get_operator_precedence, 9), be_const_closure(get_operator_precedence_closure) }, - { be_const_key_weak(tokenize_dsl, -1), be_const_closure(tokenize_dsl_closure) }, - { be_const_key_weak(animation_web_ui, -1), be_const_class(be_class_AnimationWebUI) }, - { be_const_key_weak(DSLRuntime, 10), be_const_class(be_class_DSLRuntime) }, - { be_const_key_weak(compile_file, -1), be_const_closure(compile_file_closure) }, - { be_const_key_weak(Token, -1), be_const_class(be_class_Token) }, - { be_const_key_weak(is_right_associative, -1), be_const_closure(is_right_associative_closure) }, + { be_const_key_weak(VERSION, -1), be_const_int(65536) }, + { be_const_key_weak(_symbol_table, 13), be_const_class(be_class_SymbolTable) }, + { be_const_key_weak(SimpleDSLTranspiler, -1), be_const_class(be_class_SimpleDSLTranspiler) }, })) ); BE_EXPORT_VARIABLE be_define_const_native_module(animation_dsl); diff --git a/lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be b/lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be new file mode 100644 index 000000000..ebe4419a2 --- /dev/null +++ b/lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be @@ -0,0 +1,308 @@ +# Demo Shutter Infinite Loop Test +# Specific test to isolate the infinite loop in demo_shutter_rainbow_central.anim +# +# Command to run test: +# ./berry -s -g -m lib/libesp32/berry_animation/src -e "import tasmota def log(x) print(x) end import animation" lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be + +import animation_dsl +import string + +# Test the exact problematic patterns from the demo file +def test_demo_shutter_patterns() + print("Testing specific patterns from demo_shutter_rainbow_central.anim...") + + # Test 1: The nested repeat structure that might cause issues + print(" Testing nested repeat structure...") + var nested_repeat = "template shutter_central {\n" + + " param colors type palette\n" + + " param duration\n" + + " \n" + + " color col1 = color_cycle(palette=colors, cycle_period=0)\n" + + " animation test_anim = solid(color=col1)\n" + + " \n" + + " sequence shutter_seq repeat forever {\n" + + " repeat col1.palette_size times {\n" + + " play test_anim for duration\n" + + " col1.next = 1\n" + + " }\n" + + " }\n" + + " \n" + + " run shutter_seq\n" + + "}\n" + + "\n" + + "palette rainbow = [red, green, blue]\n" + + "shutter_central(rainbow, 1s)" + + try + print(" Compiling nested repeat structure...") + var result1 = animation_dsl.compile(nested_repeat) + print(" ✓ Nested repeat structure works") + except .. as e, msg + print(f" ✗ Nested repeat structure failed: {e}: {msg}") + return false + end + + # Test 2: The col1.next = 1 pattern + print(" Testing color.next assignment...") + var color_next = "color col1 = color_cycle(palette=[red, green], cycle_period=0)\n" + + "col1.next = 1\n" + + "animation test_anim = solid(color=col1)\n" + + "run test_anim" + + try + print(" Compiling color.next assignment...") + var result2 = animation_dsl.compile(color_next) + print(" ✓ Color.next assignment works") + except .. as e, msg + print(f" ✗ Color.next assignment failed: {e}: {msg}") + return false + end + + # Test 3: The restart statement + print(" Testing restart statement...") + var restart_test = "set shutter_size = sawtooth(min_value=0, max_value=10, duration=1s)\n" + + "animation test_anim = solid(color=red)\n" + + "sequence test_seq {\n" + + " restart shutter_size\n" + + " play test_anim for 1s\n" + + "}\n" + + "run test_seq" + + try + print(" Compiling restart statement...") + var result3 = animation_dsl.compile(restart_test) + print(" ✓ Restart statement works") + except .. as e, msg + print(f" ✗ Restart statement failed: {e}: {msg}") + return false + end + + # Test 4: Complex expressions in beacon_animation + print(" Testing complex beacon_animation expressions...") + var complex_beacon = "template shutter_central {\n" + + " param colors type palette\n" + + " param duration\n" + + " \n" + + " set strip_len = strip_length()\n" + + " set strip_len2 = (strip_len + 1) / 2\n" + + " set shutter_size = sawtooth(min_value = 0, max_value = strip_len, duration = duration)\n" + + " \n" + + " color col1 = color_cycle(palette=colors, cycle_period=0)\n" + + " \n" + + " animation shutter_anim = beacon_animation(\n" + + " color = col1\n" + + " back_color = red\n" + + " pos = strip_len2 - (shutter_size + 1) / 2\n" + + " beacon_size = shutter_size\n" + + " slew_size = 0\n" + + " priority = 5\n" + + " )\n" + + " \n" + + " run shutter_anim\n" + + "}\n" + + "\n" + + "palette rainbow = [red, green, blue]\n" + + "shutter_central(rainbow, 1s)" + + try + print(" Compiling complex beacon_animation...") + var result4 = animation_dsl.compile(complex_beacon) + print(" ✓ Complex beacon_animation works") + except .. as e, msg + print(f" ✗ Complex beacon_animation failed: {e}: {msg}") + return false + end + + # Test 5: The full problematic sequence structure + print(" Testing full sequence structure (this may hang)...") + var full_sequence = "template shutter_central {\n" + + " param colors type palette\n" + + " param duration\n" + + " \n" + + " set strip_len = strip_length()\n" + + " set strip_len2 = (strip_len + 1) / 2\n" + + " set shutter_size = sawtooth(min_value = 0, max_value = strip_len, duration = duration)\n" + + " \n" + + " color col1 = color_cycle(palette=colors, cycle_period=0)\n" + + " color col2 = color_cycle(palette=colors, cycle_period=0)\n" + + " col2.next = 1\n" + + " \n" + + " animation shutter_inout = beacon_animation(\n" + + " color = col2\n" + + " back_color = col1\n" + + " pos = strip_len2 - (shutter_size + 1) / 2\n" + + " beacon_size = shutter_size\n" + + " slew_size = 0\n" + + " priority = 5\n" + + " )\n" + + " \n" + + " animation shutter_outin = beacon_animation(\n" + + " color = col1\n" + + " back_color = col2\n" + + " pos = strip_len2 - (strip_len - shutter_size + 1) / 2\n" + + " beacon_size = strip_len - shutter_size\n" + + " slew_size = 0\n" + + " priority = 5\n" + + " )\n" + + " \n" + + " sequence shutter_seq repeat forever {\n" + + " repeat col1.palette_size times {\n" + + " restart shutter_size\n" + + " play shutter_inout for duration\n" + + " col1.next = 1\n" + + " col2.next = 1\n" + + " }\n" + + " repeat col1.palette_size times {\n" + + " restart shutter_size\n" + + " play shutter_outin for duration\n" + + " col1.next = 1\n" + + " col2.next = 1\n" + + " }\n" + + " }\n" + + " \n" + + " run shutter_seq\n" + + "}\n" + + "\n" + + "palette rainbow_with_white = [red, orange, yellow, green, blue, indigo, white]\n" + + "shutter_central(rainbow_with_white, 1.5s)" + + print(" CRITICAL: This exact structure causes infinite loop") + print(" The combination of:") + print(" - 'repeat forever' outer loop") + print(" - Multiple nested 'repeat col1.palette_size times' loops") + print(" - 'restart' statements inside the loops") + print(" - '.next = 1' assignments on color_cycle objects") + print(" appears to trigger infinite recursion in the transpiler") + print("") + print(" RECOMMENDATION: Debug the transpiler's handling of:") + print(" 1. Nested repeat loop transpilation") + print(" 2. Variable scope resolution in nested contexts") + print(" 3. Color cycle object method resolution") + print(" 4. Restart statement processing") + + print("✓ Demo shutter patterns test completed") + return true +end + +# Test reading the actual demo file and analyzing its structure +def test_demo_file_analysis() + print("Analyzing demo_shutter_rainbow_central.anim structure...") + + var demo_content = "" + try + var f = open("lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_central.anim", "r") + demo_content = f.read() + f.close() + except .. as e, msg + print(f" ERROR: Could not read demo file: {e} - {msg}") + return false + end + + print(f" File size: {size(demo_content)} characters") + + # Count occurrences of potentially problematic patterns + var repeat_count = 0 + var pos = 0 + while true + pos = string.find(demo_content, "repeat", pos) + if pos == -1 break end + repeat_count += 1 + pos += 6 + end + + var next_count = 0 + pos = 0 + while true + pos = string.find(demo_content, ".next", pos) + if pos == -1 break end + next_count += 1 + pos += 5 + end + + var restart_count = 0 + pos = 0 + while true + pos = string.find(demo_content, "restart", pos) + if pos == -1 break end + restart_count += 1 + pos += 7 + end + + print(f" Found {repeat_count} 'repeat' statements") + print(f" Found {next_count} '.next' assignments") + print(f" Found {restart_count} 'restart' statements") + + # Check for nested repeat structures + if string.find(demo_content, "repeat forever") != -1 + print(" Contains 'repeat forever' - potential infinite loop source") + end + + if repeat_count > 2 + print(" Multiple nested repeat structures detected") + end + + print("✓ Demo file analysis completed") + return true +end + +# Test the actual demo file compilation (DANGEROUS - may hang) +def test_actual_demo_file_compilation() + print("Testing actual demo file compilation...") + print("WARNING: This test is designed to demonstrate the infinite loop") + print("If you run this test, it WILL hang and you'll need to kill the process") + print("") + print("To reproduce the infinite loop manually, run:") + print(" animation_dsl.compile(open('lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_central.anim', 'r').read())") + print("") + print("SKIPPING actual compilation to prevent hang") + print("✓ Actual demo file compilation test documented") + return true +end + +# Run all demo shutter infinite loop tests +def run_all_demo_shutter_tests() + print("=== Demo Shutter Infinite Loop Test Suite ===") + print("") + + var tests = [ + test_demo_file_analysis, + test_demo_shutter_patterns, + test_actual_demo_file_compilation + ] + + var passed = 0 + var total = size(tests) + + for test_func : tests + try + if test_func() + passed += 1 + else + print("✗ Test failed") + end + except .. as error_type, error_message + print(f"✗ Test crashed: {error_type} - {error_message}") + end + print("") + end + + print("=== Demo Shutter Test Results ===") + print(f"Passed: {passed}/{total}") + + if passed == total + print("All demo shutter tests passed! ✓") + print("") + print("CONCLUSION:") + print("The infinite loop appears to be caused by the complex nested") + print("repeat structure with 'repeat forever' and multiple inner") + print("'repeat col1.palette_size times' loops combined with") + print("'restart' statements and '.next' assignments.") + return true + else + print("Some demo shutter tests failed! ✗") + raise "test_failed" + end +end + +# Run the tests +return run_all_demo_shutter_tests() \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be index aea62927a..044b9cab8 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be @@ -146,7 +146,7 @@ def test_compilation_failures() var berry_code = animation_dsl.compile(dangerous_dsl) assert(false, "Should fail with dangerous function creation") except "dsl_compilation_error" as e, msg - assert(string.find(msg, "Function 'strip_length' cannot be used in computed expressions") >= 0, + assert(string.find(msg, "Expression 'animation.strip_length(engine)' cannot be used in computed expressions.") >= 0, "Should report dangerous function creation error") print("✓ Dangerous function creation properly rejected") end @@ -417,24 +417,6 @@ def test_complete_example() return true end -# Test the specific failing case mentioned in the original request -def test_specific_failing_case() - print("Testing specific failing case: set s2 = strip_length() + strip_length()...") - - var failing_dsl = "set s2 = strip_length() + strip_length()" - - try - var berry_code = animation_dsl.compile(failing_dsl) - assert(false, "Should fail - dangerous pattern should be rejected") - except "dsl_compilation_error" as e, msg - assert(string.find(msg, "Function 'strip_length' cannot be used in computed expressions") >= 0, - "Should report the specific error about function usage in computed expressions") - print("✓ Specific failing case properly rejected with correct error message") - end - - return true -end - # Run all tests def run_all_tests() print("=== DSL Compilation Test Suite ===") @@ -443,8 +425,7 @@ def run_all_tests() test_successful_compilation, test_compilation_failures, test_edge_cases, - test_complete_example, - test_specific_failing_case + test_complete_example ] var passed = 0 @@ -471,7 +452,7 @@ def run_all_tests() return true else print("❌ Some tests failed") - return false + raise "test_failed" end end diff --git a/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be b/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be index c4ad9698b..454e732a9 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be @@ -1,5 +1,5 @@ # DSL Lexer Test Suite -# Tests for DSLLexer class +# Tests for create_lexer class # # Command to run test is: # ./berry -s -g -m lib/libesp32/berry_animation -e "import tasmota" lib/libesp32/berry_animation/tests/dsl_lexer_test.be @@ -8,14 +8,33 @@ import animation import animation_dsl import string +# Helper function to extract all tokens from a pull lexer (for testing only) +def extract_all_tokens(lexer) + var tokens = [] + lexer.reset() # Start from beginning + + while !lexer.at_end() + var token = lexer.next_token() + + # EOF token removed - check for nil instead + if token == nil + break + end + + tokens.push(token) + end + + return tokens +end + # Test basic tokenization def test_basic_tokenization() print("Testing basic DSL tokenization...") var dsl_source = "strip length 60\ncolor red = 0xFF0000\nrun demo" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(dsl_source) + var tokens = extract_all_tokens(lexer) # Should have: strip, length, 60, color, red, =, #FF0000, run, demo, EOF print(" Found " + str(size(tokens)) + " tokens") @@ -27,17 +46,17 @@ def test_basic_tokenization() assert(size(tokens) >= 9, "Should have at least 9 tokens") # Check first few tokens - assert(tokens[0].type == animation_dsl.Token.KEYWORD && tokens[0].value == "strip") + assert(tokens[0].type == 0 #-animation_dsl.Token.KEYWORD-# && tokens[0].value == "strip") # Note: "length" might be IDENTIFIER, not KEYWORD - that's OK for DSL properties - assert(tokens[2].type == animation_dsl.Token.NUMBER && tokens[2].value == "60") + assert(tokens[2].type == 2 #-animation_dsl.Token.NUMBER-# && tokens[2].value == "60") # Check color tokens var found_color_keyword = false var found_color_value = false for token : tokens - if token.type == animation_dsl.Token.KEYWORD && token.value == "color" + if token.type == 0 #-animation_dsl.Token.KEYWORD-# && token.value == "color" found_color_keyword = true - elif token.type == animation_dsl.Token.COLOR && token.value == "0xFF0000" + elif token.type == 4 #-animation_dsl.Token.COLOR-# && token.value == "0xFF0000" found_color_value = true end end @@ -55,18 +74,18 @@ def test_color_tokenization() print("Testing color tokenization...") var color_tests = [ - ["0xFF0000", animation_dsl.Token.COLOR], - ["red", animation_dsl.Token.COLOR], - ["blue", animation_dsl.Token.COLOR], - ["white", animation_dsl.Token.COLOR] # transparent is a keyword, so use white instead + ["0xFF0000", 4 #-animation_dsl.Token.COLOR-#], + ["red", 4 #-animation_dsl.Token.COLOR-#], + ["blue", 4 #-animation_dsl.Token.COLOR-#], + ["white", 4 #-animation_dsl.Token.COLOR-#] # transparent is a keyword, so use white instead ] for test : color_tests var color_value = test[0] var expected_type = test[1] - var lexer = animation_dsl.DSLLexer("color test = " + color_value) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer("color test = " + color_value) + var tokens = extract_all_tokens(lexer) var found_color = false for token : tokens @@ -88,51 +107,33 @@ def test_numeric_tokenization() print("Testing numeric tokenization...") var numeric_tests = [ - ["42", animation_dsl.Token.NUMBER], - ["3.14", animation_dsl.Token.NUMBER], - ["2s", animation_dsl.Token.TIME], - ["500ms", animation_dsl.Token.TIME], - ["1m", animation_dsl.Token.TIME], - ["2h", animation_dsl.Token.TIME], - ["50%", animation_dsl.Token.PERCENTAGE], - ["2x", animation_dsl.Token.MULTIPLIER] + ["42", 2 #-animation_dsl.Token.NUMBER-#], + ["3.14", 2 #-animation_dsl.Token.NUMBER-#], + ["2s", 5 #-animation_dsl.Token.TIME-#], + ["500ms", 5 #-animation_dsl.Token.TIME-#], + ["1m", 5 #-animation_dsl.Token.TIME-#], + ["2h", 5 #-animation_dsl.Token.TIME-#], + ["50%", 6 #-animation_dsl.Token.PERCENTAGE-#], + ["2x", 7 #-animation_dsl.Token.MULTIPLIER-#] ] for test : numeric_tests var value = test[0] var expected_type = test[1] - var lexer = animation_dsl.DSLLexer("value = " + value) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer("value = " + value) + var tokens = extract_all_tokens(lexer) var found_numeric = false for token : tokens if token.value == value && token.type == expected_type found_numeric = true - # Test numeric value extraction - if token.is_numeric() - var numeric_val = token.get_numeric_value() - assert(numeric_val != nil, "Should extract numeric value from " + value) - end - - # Test time conversion - if token.type == animation_dsl.Token.TIME - var time_ms = token.get_numeric_value() - assert(time_ms != nil && time_ms > 0, "Should convert time to milliseconds") - end - - # Test percentage conversion - if token.type == animation_dsl.Token.PERCENTAGE - var percent_255 = token.get_numeric_value() - assert(percent_255 != nil && percent_255 >= 0 && percent_255 <= 255, "Should convert percentage to 0-255 range") - end - break end end - assert(found_numeric, "Should recognize '" + value + "' as " + animation_dsl.Token.to_string(expected_type)) + assert(found_numeric, "Should recognize '" + value + "' as " + animation_dsl.Token.names[expected_type]) end print("✓ Numeric tokenization test passed") @@ -149,11 +150,11 @@ def test_keyword_recognition() ] for keyword : keywords - var lexer = animation_dsl.DSLLexer(keyword + " test") - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(keyword + " test") + var tokens = extract_all_tokens(lexer) assert(size(tokens) >= 2, "Should have at least 2 tokens") - assert(tokens[0].type == animation_dsl.Token.KEYWORD, "'" + keyword + "' should be recognized as keyword") + assert(tokens[0].type == 0 #-animation_dsl.Token.KEYWORD-#, "'" + keyword + "' should be recognized as keyword") assert(tokens[0].value == keyword, "Keyword value should match") end @@ -166,41 +167,41 @@ def test_operators_and_delimiters() print("Testing operators and delimiters...") var operator_tests = [ - ["=", animation_dsl.Token.ASSIGN], - ["==", animation_dsl.Token.EQUAL], - ["!=", animation_dsl.Token.NOT_EQUAL], - ["<", animation_dsl.Token.LESS_THAN], - ["<=", animation_dsl.Token.LESS_EQUAL], - [">", animation_dsl.Token.GREATER_THAN], - [">=", animation_dsl.Token.GREATER_EQUAL], - ["&&", animation_dsl.Token.LOGICAL_AND], - ["||", animation_dsl.Token.LOGICAL_OR], - ["!", animation_dsl.Token.LOGICAL_NOT], - ["+", animation_dsl.Token.PLUS], - ["-", animation_dsl.Token.MINUS], - ["*", animation_dsl.Token.MULTIPLY], - ["/", animation_dsl.Token.DIVIDE], - ["%", animation_dsl.Token.MODULO], - ["^", animation_dsl.Token.POWER], - ["(", animation_dsl.Token.LEFT_PAREN], - [")", animation_dsl.Token.RIGHT_PAREN], - ["{", animation_dsl.Token.LEFT_BRACE], - ["}", animation_dsl.Token.RIGHT_BRACE], - ["[", animation_dsl.Token.LEFT_BRACKET], - ["]", animation_dsl.Token.RIGHT_BRACKET], - [",", animation_dsl.Token.COMMA], - [";", animation_dsl.Token.SEMICOLON], - [":", animation_dsl.Token.COLON], - [".", animation_dsl.Token.DOT], - ["->", animation_dsl.Token.ARROW] + ["=", 8 #-animation_dsl.Token.ASSIGN-#], + ["==", 15 #-animation_dsl.Token.EQUAL-#], + ["!=", 16 #-animation_dsl.Token.NOT_EQUAL-#], + ["<", 17 #-animation_dsl.Token.LESS_THAN-#], + ["<=", 18 #-animation_dsl.Token.LESS_EQUAL-#], + [">", 19 #-animation_dsl.Token.GREATER_THAN-#], + [">=", 20 #-animation_dsl.Token.GREATER_EQUAL-#], + ["&&", 21 #-animation_dsl.Token.LOGICAL_AND-#], + ["||", 22 #-animation_dsl.Token.LOGICAL_OR-#], + ["!", 23 #-animation_dsl.Token.LOGICAL_NOT-#], + ["+", 9 #-animation_dsl.Token.PLUS-#], + ["-", 10 #-animation_dsl.Token.MINUS-#], + ["*", 11 #-animation_dsl.Token.MULTIPLY-#], + ["/", 12 #-animation_dsl.Token.DIVIDE-#], + ["%", 13 #-animation_dsl.Token.MODULO-#], + ["^", 14 #-animation_dsl.Token.POWER-#], + ["(", 24 #-animation_dsl.Token.LEFT_PAREN-#], + [")", 25 #-animation_dsl.Token.RIGHT_PAREN-#], + ["{", 26 #-animation_dsl.Token.LEFT_BRACE-#], + ["}", 27 #-animation_dsl.Token.RIGHT_BRACE-#], + ["[", 28 #-animation_dsl.Token.LEFT_BRACKET-#], + ["]", 29 #-animation_dsl.Token.RIGHT_BRACKET-#], + [",", 30 #-animation_dsl.Token.COMMA-#], + [";", 31 #-animation_dsl.Token.SEMICOLON-#], + [":", 32 #-animation_dsl.Token.COLON-#], + [".", 33 #-animation_dsl.Token.DOT-#], + ["->", 34 #-animation_dsl.Token.ARROW-#] ] for test : operator_tests var op = test[0] var expected_type = test[1] - var lexer = animation_dsl.DSLLexer("a " + op + " b") - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer("a " + op + " b") + var tokens = extract_all_tokens(lexer) var found_operator = false for token : tokens @@ -210,7 +211,7 @@ def test_operators_and_delimiters() end end - assert(found_operator, "Should recognize '" + op + "' as " + animation_dsl.Token.to_string(expected_type)) + assert(found_operator, "Should recognize '" + op + "' as " + animation_dsl.Token.names[expected_type]) end print("✓ Operators and delimiters test passed") @@ -228,12 +229,12 @@ def test_string_literals() ] for str_test : string_tests - var lexer = animation_dsl.DSLLexer("text = " + str_test) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer("text = " + str_test) + var tokens = extract_all_tokens(lexer) var found_string = false for token : tokens - if token.type == animation_dsl.Token.STRING + if token.type == 3 #-animation_dsl.Token.STRING-# found_string = true break end @@ -245,8 +246,8 @@ def test_string_literals() # Test unterminated string (should raise exception) try - var lexer = animation_dsl.DSLLexer('text = "unterminated string') - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer('text = "unterminated string') + var tokens = extract_all_tokens(lexer) assert(false, "Unterminated string should raise exception") except "lexical_error" as e, msg # Expected - unterminated string should raise lexical_error @@ -267,12 +268,12 @@ def test_variable_references() ] for var_test : var_tests - var lexer = animation_dsl.DSLLexer("value = " + var_test) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer("value = " + var_test) + var tokens = extract_all_tokens(lexer) var found_var_ref = false for token : tokens - if token.type == animation_dsl.Token.VARIABLE_REF && token.value == var_test + if token.type == 36 #-animation_dsl.Token.VARIABLE_REF-# && token.value == var_test found_var_ref = true break end @@ -285,8 +286,8 @@ def test_variable_references() var invalid_tests = ["$123", "$"] for invalid_test : invalid_tests try - var lexer = animation_dsl.DSLLexer("value = " + invalid_test) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer("value = " + invalid_test) + var tokens = extract_all_tokens(lexer) assert(false, "Invalid variable reference should raise exception: " + invalid_test) except "lexical_error" as e, msg # Expected - invalid variable reference should raise lexical_error @@ -307,12 +308,12 @@ def test_comments() ] for comment_test : comment_tests - var lexer = animation_dsl.DSLLexer(comment_test) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(comment_test) + var tokens = extract_all_tokens(lexer) var found_comment = false for token : tokens - if token.type == animation_dsl.Token.COMMENT + if token.type == 37 #-animation_dsl.Token.COMMENT-# found_comment = true break end @@ -355,15 +356,15 @@ def test_complex_dsl() "# Execution\n" + "run campfire" - var lexer = animation_dsl.DSLLexer(complex_dsl) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(complex_dsl) + var tokens = extract_all_tokens(lexer) assert(size(tokens) > 50, "Should have many tokens") # Count token types var token_counts = {} for token : tokens - var type_name = animation_dsl.Token.to_string(token.type) + var type_name = animation_dsl.Token.names[token.type] if token_counts.contains(type_name) token_counts[type_name] += 1 else @@ -389,8 +390,8 @@ def test_error_handling() # Test invalid characters (should raise exception) try - var lexer1 = animation_dsl.DSLLexer("color red = @invalid") - var tokens1 = lexer1.tokenize() + var lexer1 = animation_dsl.create_lexer("color red = @invalid") + var tokens1 = extract_all_tokens(lexer1) assert(false, "Invalid character should raise exception") except "lexical_error" as e, msg # Expected - invalid character should raise lexical_error @@ -399,8 +400,8 @@ def test_error_handling() # Test invalid hex color (should raise exception) try - var lexer2 = animation_dsl.DSLLexer("color red = 0xGGGGGG") - var tokens2 = lexer2.tokenize() + var lexer2 = animation_dsl.create_lexer("color red = 0xGGGGGG") + var tokens2 = extract_all_tokens(lexer2) assert(false, "Invalid hex color should raise exception") except "lexical_error" as e, msg # Expected - invalid hex color should raise lexical_error @@ -409,8 +410,8 @@ def test_error_handling() # Test unterminated string (should raise exception) try - var lexer3 = animation_dsl.DSLLexer('text = "unterminated') - var tokens3 = lexer3.tokenize() + var lexer3 = animation_dsl.create_lexer('text = "unterminated') + var tokens3 = extract_all_tokens(lexer3) assert(false, "Unterminated string should raise exception") except "lexical_error" as e, msg # Expected - unterminated string should raise lexical_error diff --git a/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be b/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be index 8e5fba16e..6e08d3c09 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be @@ -1,5 +1,5 @@ # DSL Lexer Triple Quotes Test Suite -# Tests for triple-quoted string tokenization in DSLLexer +# Tests for triple-quoted string tokenization in create_lexer # # Command to run test is: # ./berry -s -g -m lib/libesp32/berry_animation/src -e "import tasmota" lib/libesp32/berry_animation/src/tests/dsl_lexer_triple_quotes_test.be @@ -7,18 +7,37 @@ import animation_dsl import string +# Helper function to extract all tokens from a pull lexer (for testing only) +def extract_all_tokens(lexer) + var tokens = [] + lexer.reset() # Start from beginning + + while !lexer.at_end() + var token = lexer.next_token() + + # EOF token removed - check for nil instead + if token == nil + break + end + + tokens.push(token) + end + + return tokens +end + # Test basic triple-quoted string tokenization with double quotes def test_triple_quotes_double() print("Testing triple-quoted string tokenization (triple quotes)...") var source = 'berry """\nHello World\n"""' - var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) - assert(size(tokens) >= 3, "Should have at least 3 tokens (berry, string, EOF)") - assert(tokens[0].type == animation_dsl.Token.KEYWORD, "First token should be KEYWORD") + assert(size(tokens) >= 2, "Should have at least 2 tokens (berry, string)") + assert(tokens[0].type == 0 #-animation_dsl.Token.KEYWORD-#, "First token should be KEYWORD") assert(tokens[0].value == "berry", "First token should be 'berry'") - assert(tokens[1].type == animation_dsl.Token.STRING, "Second token should be STRING") + assert(tokens[1].type == 3 #-animation_dsl.Token.STRING-#, "Second token should be STRING") assert(tokens[1].value == "\nHello World\n", "String content should be preserved") print("✓ Triple-quoted string (double quotes) tokenization test passed") @@ -30,13 +49,13 @@ def test_triple_quotes_single() print("Testing triple-quoted string tokenization (single quotes)...") var source = "berry '''\nHello World\n'''" - var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) - assert(size(tokens) >= 3, "Should have at least 3 tokens (berry, string, EOF)") - assert(tokens[0].type == animation_dsl.Token.KEYWORD, "First token should be KEYWORD") + assert(size(tokens) >= 2, "Should have at least 2 tokens (berry, string)") + assert(tokens[0].type == 0 #-animation_dsl.Token.KEYWORD-#, "First token should be KEYWORD") assert(tokens[0].value == "berry", "First token should be 'berry'") - assert(tokens[1].type == animation_dsl.Token.STRING, "Second token should be STRING") + assert(tokens[1].type == 3 #-animation_dsl.Token.STRING-#, "Second token should be STRING") assert(tokens[1].value == "\nHello World\n", "String content should be preserved") print("✓ Triple-quoted string (single quotes) tokenization test passed") @@ -48,11 +67,11 @@ def test_multiline_triple_quotes() print("Testing multiline triple-quoted string tokenization...") var source = 'berry """\nLine 1\nLine 2\nLine 3\n"""' - var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) - assert(size(tokens) >= 3, "Should have at least 3 tokens") - assert(tokens[1].type == animation_dsl.Token.STRING, "Second token should be STRING") + assert(size(tokens) >= 2, "Should have at least 2 tokens") + assert(tokens[1].type == 3 #-animation_dsl.Token.STRING-#, "Second token should be STRING") var expected_content = "\nLine 1\nLine 2\nLine 3\n" assert(tokens[1].value == expected_content, f"String content should be '{expected_content}', got '{tokens[1].value}'") @@ -66,11 +85,11 @@ def test_embedded_quotes() print("Testing triple-quoted string with embedded quotes...") var source = 'berry """\nprint("Hello")\nvar x = \'world\'\n"""' - var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) - assert(size(tokens) >= 3, "Should have at least 3 tokens") - assert(tokens[1].type == animation_dsl.Token.STRING, "Second token should be STRING") + assert(size(tokens) >= 2, "Should have at least 2 tokens") + assert(tokens[1].type == 3 #-animation_dsl.Token.STRING-#, "Second token should be STRING") var expected_content = '\nprint("Hello")\nvar x = \'world\'\n' assert(tokens[1].value == expected_content, f"String content should preserve embedded quotes") @@ -84,11 +103,11 @@ def test_empty_triple_quotes() print("Testing empty triple-quoted string...") var source = 'berry """"""' - var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) - assert(size(tokens) >= 3, "Should have at least 3 tokens") - assert(tokens[1].type == animation_dsl.Token.STRING, "Second token should be STRING") + assert(size(tokens) >= 2, "Should have at least 2 tokens") + assert(tokens[1].type == 3 #-animation_dsl.Token.STRING-#, "Second token should be STRING") assert(tokens[1].value == "", "Empty string should have empty value") print("✓ Empty triple-quoted string test passed") @@ -100,11 +119,11 @@ def test_unterminated_triple_quotes() print("Testing unterminated triple-quoted string...") var source = 'berry """\nUnterminated string' - var lexer = animation_dsl.DSLLexer(source) - # Should raise an exception for unterminated string + # Should raise an exception when trying to extract tokens (pull-mode lexer) try - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) # This should trigger the error assert(false, "Should raise exception for unterminated triple-quoted string") except "lexical_error" as e, msg # Expected - unterminated string should raise lexical_error @@ -129,11 +148,11 @@ def test_complex_content() 'print("Result:", result)\n' + '"""' - var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) - assert(size(tokens) >= 3, "Should have at least 3 tokens") - assert(tokens[1].type == animation_dsl.Token.STRING, "Second token should be STRING") + assert(size(tokens) >= 2, "Should have at least 2 tokens") + assert(tokens[1].type == 3 #-animation_dsl.Token.STRING-#, "Second token should be STRING") var content = tokens[1].value assert(string.find(content, "import math") >= 0, "Should contain import statement") @@ -150,13 +169,13 @@ def test_mixed_quote_types() print("Testing that triple quotes don't interfere with regular quotes...") var source = 'color red = 0xFF0000\nberry """\ntest\n"""\nvar x = "normal string"' - var lexer = animation_dsl.DSLLexer(source) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(source) + var tokens = extract_all_tokens(lexer) # Find the normal string token var normal_string_found = false for token : tokens - if token.type == animation_dsl.Token.STRING && token.value == "normal string" + if token.type == 3 #-animation_dsl.Token.STRING-# && token.value == "normal string" normal_string_found = true break end diff --git a/lib/libesp32/berry_animation/src/tests/dsl_runtime_test.be b/lib/libesp32/berry_animation/src/tests/dsl_runtime_test.be deleted file mode 100644 index 91ab0ce40..000000000 --- a/lib/libesp32/berry_animation/src/tests/dsl_runtime_test.be +++ /dev/null @@ -1,253 +0,0 @@ -# DSL Runtime Integration Test -# Tests the complete DSL execution lifecycle and file loading -# -# Command to run test is: -# ./berry -s -g -m lib/libesp32/berry_animation -e "import tasmota" lib/libesp32/berry_animation/tests/dsl_runtime_test.be - -import string -import animation -import animation_dsl - -def test_dsl_runtime() - print("=== DSL Runtime Integration Test ===") - - # Create strip and runtime - var strip = global.Leds(30) - var runtime = animation_dsl.create_runtime(strip, true) # Debug mode enabled - - var tests_passed = 0 - var tests_total = 0 - - # Test 1: Basic DSL loading and execution - tests_total += 1 - print("\nTest 1: Basic DSL loading") - - var simple_dsl = - "# strip length 30 # TEMPORARILY DISABLED\n" - "color custom_red = 0xFF0000\n" - "animation red_anim = pulsating_animation(color=static_color(color=custom_red), period=2s)\n" - "sequence demo {\n" - " play red_anim for 1s\n" - "}\n" - "run demo" - - if runtime.load_dsl(simple_dsl) - print("✓ Basic DSL loading successful") - tests_passed += 1 - else - print("✗ Basic DSL loading failed") - end - - # Test 2: Reload functionality - tests_total += 1 - print("\nTest 2: Reload functionality") - - # Load same DSL again - should work without issues - if runtime.load_dsl(simple_dsl) - print("✓ DSL reload successful") - tests_passed += 1 - else - print("✗ DSL reload failed") - end - - # Test 3: Generated code inspection - tests_total += 1 - print("\nTest 3: Generated code inspection") - - try - var generated_code = runtime.get_generated_code(simple_dsl) - if generated_code != nil && size(generated_code) > 0 - print("✓ Generated code available") - print(f"Generated code length: {size(generated_code)} characters") - - # Check for expected content - if string.find(generated_code, "import animation") >= 0 && - string.find(generated_code, "var custom_red_") >= 0 - print("✓ Generated code contains expected elements") - tests_passed += 1 - else - print("✗ Generated code missing expected elements") - print("Generated code preview:") - print(generated_code[0..200] + "...") - end - else - print("✗ Generated code not available") - end - except "dsl_compilation_error" as e, msg - print("✗ Generated code compilation failed: " + msg) - end - - # Test 4: Error handling - tests_total += 1 - print("\nTest 4: Error handling") - - var invalid_dsl = "color invalid_syntax = \n" + - "animation broken = unknown_function(param=value)" - - if !runtime.load_dsl(invalid_dsl) - print("✓ Error handling working - invalid DSL rejected") - tests_passed += 1 - else - print("✗ Error handling failed - invalid DSL accepted") - end - - # Test 5: DSL reload functionality - tests_total += 1 - print("\nTest 5: DSL reload functionality") - - if runtime.reload_dsl() - print("✓ DSL reload successful") - tests_passed += 1 - else - print("✗ DSL reload failed") - end - - # Test 6: Multiple DSL sources - tests_total += 1 - print("\nTest 6: Multiple DSL sources") - - var dsl1 = - "# strip length 30 # TEMPORARILY DISABLED\n" + - "color custom_blue = 0x0000FF\n" + - "animation blue_anim = pulsating_animation(color=static_color(color=custom_blue), period=2s)\n" + - "sequence blue_demo {\n" + - " play blue_anim for 1s\n" + - "}\n" + - "run blue_demo" - - var dsl2 = - "# strip length 30 # TEMPORARILY DISABLED\n" + - "color custom_green = 0x00FF00\n" + - "animation green_anim = pulsating_animation(color=static_color(color=custom_green), period=2s)\n" + - "sequence green_demo {\n" + - " play green_anim for 1s\n" + - "}\n" + - "run green_demo" - - if runtime.load_dsl(dsl1) && runtime.load_dsl(dsl2) - print("✓ Multiple DSL sources loaded successfully") - tests_passed += 1 - else - print("✗ Failed to load multiple DSL sources") - end - - # Test 7: Runtime state management - tests_total += 1 - print("\nTest 7: Runtime state management") - - if runtime.is_loaded() && runtime.get_active_source() != nil - print("✓ Runtime state management working") - tests_passed += 1 - else - print("✗ Runtime state management failed") - end - - # Test 8: engine access - tests_total += 1 - print("\nTest 8: engine access") - - var engine = runtime.get_engine() - if engine != nil - print("✓ Engine access working") - tests_passed += 1 - else - print("✗ engine access failed") - end - - # Final results - print(f"\n=== DSL Runtime Test Results ===") - print(f"Tests passed: {tests_passed}/{tests_total}") - print(f"Success rate: {tests_passed * 100 / tests_total}%") - - if tests_passed == tests_total - print("🎉 All DSL Runtime tests passed!") - return true - else - print("❌ Some DSL Runtime tests failed") - raise "test_failed" - end -end - -def test_dsl_file_operations() - print("\n=== DSL File Operations Test ===") - - # Create a test DSL file - var test_filename = "/tmp/test_animation.dsl" - var test_dsl_content = "# strip length 20 # TEMPORARILY DISABLED\n" + - "color custom_purple = 0x800080\n" + - "animation purple_anim = pulsating_animation(color=static_color(color=custom_purple), period=2s)\n" + - "sequence file_test {\n" + - " play purple_anim for 2s\n" + - "}\n" + - "run file_test" - - try - # Write test file - var file = open(test_filename, "w") - if file != nil - file.write(test_dsl_content) - file.close() - print(f"✓ Test file created: {test_filename}") - - # Test file loading - var strip = global.Leds(20) - var runtime = animation_dsl.create_runtime(strip, true) - - if runtime.load_dsl_file(test_filename) - print("✓ DSL file loading successful") - - # Verify content was loaded - var active_source = runtime.get_active_source() - if active_source != nil && string.find(active_source, "custom_purple") >= 0 - print("✓ File content loaded correctly") - return true - else - print("✗ File content not loaded correctly") - end - else - print("✗ DSL file loading failed") - end - else - print("✗ Could not create test file") - end - - except .. as e, msg - print(f"File operations test skipped: {msg}") - return true # Skip file tests if filesystem not available - end - - return false -end - -# Run the tests -def run_all_dsl_runtime_tests() - print("Starting DSL Runtime Integration Tests...") - - var basic_tests_passed = test_dsl_runtime() - var file_tests_passed = test_dsl_file_operations() - - print(f"\n=== Overall DSL Runtime Test Results ===") - if basic_tests_passed - print("✓ Core runtime tests: PASSED") - else - print("✗ Core runtime tests: FAILED") - raise "failed_tests" - end - - if file_tests_passed - print("✓ File operation tests: PASSED") - else - print("✓ File operation tests: SKIPPED (filesystem not available)") - raise "failed_tests" - end - - return basic_tests_passed -end - -run_all_dsl_runtime_tests() - -return { - "test_dsl_runtime": test_dsl_runtime, - "test_dsl_file_operations": test_dsl_file_operations, - "run_all_dsl_runtime_tests": run_all_dsl_runtime_tests -} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be index d0f128db5..2def36203 100644 --- a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be +++ b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be @@ -8,6 +8,25 @@ import animation import animation_dsl import string +# Helper function to extract all tokens from a pull lexer (for testing only) +def extract_all_tokens(lexer) + var tokens = [] + lexer.reset() # Start from beginning + + while !lexer.at_end() + var token = lexer.next_token() + + # EOF token removed - check for nil instead + if token == nil + break + end + + tokens.push(token) + end + + return tokens +end + # Test basic transpilation def test_basic_transpilation() print("Testing basic DSL transpilation...") @@ -630,9 +649,8 @@ def test_forward_references() var compilation_failed = false try - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) berry_code = transpiler.transpile() except "dsl_compilation_error" as e, msg compilation_failed = true @@ -700,23 +718,12 @@ def test_complex_dsl() print("Complex DSL compilation failed - checking for specific issues...") # Test individual components - var lexer = animation_dsl.DSLLexer(complex_dsl) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(complex_dsl) - if lexer.has_errors() - print("Lexical errors found:") - print(lexer.get_error_report()) - else - print("Lexical analysis passed") - - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) - var result = transpiler.transpile() - - if transpiler.has_errors() - print("Transpilation errors found:") - print(transpiler.get_error_report()) - end - end + print("Lexical analysis passed") + + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) + var result = transpiler.transpile() end print("✓ Complex DSL test completed") @@ -731,11 +738,13 @@ def test_transpiler_components() print("Testing basic transpiler instantiation...") # Test token processing - var lexer = animation_dsl.DSLLexer("color red = 0xFF0000") - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer("color red = 0xFF0000") + var tokens = extract_all_tokens(lexer) assert(size(tokens) >= 4, "Should have multiple tokens") - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + # Reset lexer position before creating transpiler + lexer.reset() + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) assert(!transpiler.at_end(), "Should not be at end initially") print("✓ Transpiler components test passed") diff --git a/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be b/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be index 776e6a20f..cfb08cd92 100644 --- a/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be +++ b/lib/libesp32/berry_animation/src/tests/palette_dsl_test.be @@ -4,6 +4,25 @@ import animation import animation_dsl +# Helper function to extract all tokens from a pull lexer (for testing only) +def extract_all_tokens(lexer) + var tokens = [] + lexer.reset() # Start from beginning + + while !lexer.at_end() + var token = lexer.next_token() + + # EOF token removed - check for nil instead + if token == nil + break + end + + tokens.push(token) + end + + return tokens +end + # Test basic palette definition and compilation def test_palette_definition() print("Testing palette definition...") @@ -359,12 +378,12 @@ def test_palette_keyword_recognition() print("Testing palette keyword recognition...") var simple_palette_dsl = "palette test = [(0, #FF0000)]" - var lexer = animation_dsl.DSLLexer(simple_palette_dsl) - var tokens = lexer.tokenize() + var lexer = animation_dsl.create_lexer(simple_palette_dsl) + var tokens = extract_all_tokens(lexer) var found_palette_keyword = false for token : tokens - if token.type == animation_dsl.Token.KEYWORD && token.value == "palette" + if token.type == 0 #-animation_dsl.Token.KEYWORD-# && token.value == "palette" found_palette_keyword = true break end diff --git a/lib/libesp32/berry_animation/src/tests/pull_lexer_test.be b/lib/libesp32/berry_animation/src/tests/pull_lexer_test.be new file mode 100644 index 000000000..92bbe3b50 --- /dev/null +++ b/lib/libesp32/berry_animation/src/tests/pull_lexer_test.be @@ -0,0 +1,1015 @@ +# Pull Lexer Test Suite +# Comprehensive tests for the pull-mode lexer interface + +import string +import tasmota +def log(m,l) tasmota.log(m,l) end +import animation +import animation_dsl + +# Import the pull lexer module +import "dsl/lexer.be" as pull_lexer_module +var Lexer = pull_lexer_module["create_lexer"] +var create_lexer = pull_lexer_module["create_lexer"] + +# Local helper functions to replace removed Token methods +# These replace the removed is_identifier(), is_type(), and is_keyword() methods from Token class +def is_identifier(token, name) + return token.type == 1 #-animation_dsl.Token.IDENTIFIER-# && token.value == name +end + +def is_type(token, token_type) + return token.type == token_type +end + +def is_keyword(token, keyword) + return token.type == 0 #-animation_dsl.Token.KEYWORD-# && token.value == keyword +end + +# Local helper function to count tokens (since token_count() was removed from Lexer) +# This creates a separate lexer instance to avoid state conflicts +def count_tokens(lexer) + # Create a separate lexer instance to count tokens + var counting_lexer = Lexer(lexer.source) + + var count = 0 + while !counting_lexer.at_end() + var token = counting_lexer.next_token() + if token == nil break end + count += 1 + end + + return count +end + +# Test basic pull lexer creation and initialization +def test_pull_lexer_creation() + print("Testing Lexer creation and initialization...") + + var simple_dsl = "color red_custom = 0xFF0000" + var lexer = Lexer(simple_dsl) + + # Test basic properties + assert(lexer != nil, "Lexer should be created") + assert(lexer.position == 0, "Initial position should be 0") + assert(!lexer.at_end(), "Should not be at end initially") + assert(count_tokens(lexer) > 0, "Should have tokens") + + # Test factory function + var factory_lexer = create_lexer(simple_dsl) + assert(factory_lexer != nil, "Factory function should create lexer") + + print("✓ Lexer creation test passed") + return true +end + +# Test basic token pulling functionality +def test_basic_token_pulling() + print("Testing basic token pulling...") + + var dsl_code = "color red_custom = 0xFF0000" + var lexer = Lexer(dsl_code) + + # Debug: Print all tokens to understand the structure + print(" Debug: Tokens in stream:") + var debug_lexer = Lexer(dsl_code) + var token_index = 0 + + # Pull tokens one by one, skipping whitespace/newlines + var tokens = [] + while !lexer.at_end() + var token = lexer.next_token() + if token == nil break end + print(f" [{token_index}] {token.tostring()}") + # Skip whitespace and newline tokens + if token.type != 35 #-animation_dsl.Token.NEWLINE-# + tokens.push(token) + token_index += 1 + end + end + + assert(size(tokens) >= 4, f"Should have at least 4 non-whitespace tokens, got {size(tokens)}") + + # Check the meaningful tokens + assert(is_keyword(tokens[0], "color"), f"First token should be 'color' keyword, got {tokens[0].tostring()}") + assert(is_identifier(tokens[1], "red_custom"), f"Second token should be 'red_custom' identifier, got {tokens[1].tostring()}") + assert(is_type(tokens[2], 8 #-animation_dsl.Token.ASSIGN-#), f"Third token should be assignment, got {tokens[2].tostring()}") + assert(is_type(tokens[3], 4 #-animation_dsl.Token.COLOR-#), f"Fourth token should be color literal, got {tokens[3].tostring()}") + assert(tokens[3].value == "0xFF0000", f"Color value should match, got '{tokens[3].value}'") + + print("✓ Basic token pulling test passed") + return true +end + +# Test peek functionality +def test_peek_functionality() + print("Testing peek functionality...") + + var dsl_code = "animation pulse = pulsating_animation(color=red_custom, period=2s)" + var lexer = Lexer(dsl_code) + + # Test peek without consuming + var peek1 = lexer.peek_token() + var peek2 = lexer.peek_token() + assert(peek1 != nil && peek2 != nil, "Peek should return tokens") + assert(peek1.value == peek2.value, "Multiple peeks should return same token") + assert(lexer.position == 0, "Peek should not advance position") + + # Test peek ahead + var peek_ahead_1 = lexer.peek_ahead(1) + var peek_ahead_2 = lexer.peek_ahead(2) + var peek_ahead_3 = lexer.peek_ahead(3) + + assert(is_keyword(peek_ahead_1, "animation"), "Peek ahead 1 should be 'animation'") + assert(is_identifier(peek_ahead_2, "pulse"), "Peek ahead 2 should be 'pulse'") + assert(is_type(peek_ahead_3, 8 #-animation_dsl.Token.ASSIGN-#), "Peek ahead 3 should be assignment") + + # Consume one token and test peek again + var consumed = lexer.next_token() + assert(is_keyword(consumed, "animation"), "Consumed token should match peek") + + var new_peek = lexer.peek_token() + assert(is_identifier(new_peek, "pulse"), "New peek should be next token") + + # Test peek beyond end + var initial_pos = lexer.position + while !lexer.at_end() + lexer.next_token() + end + + var end_peek = lexer.peek_token() + assert(end_peek == nil, "Peek at end should return nil") + + var beyond_peek = lexer.peek_ahead(5) + assert(beyond_peek == nil, "Peek beyond end should return nil") + + print("✓ Peek functionality test passed") + return true +end + +# Test position management +def test_position_management() + print("Testing position management...") + + var dsl_code = "color red_custom = 0xFF0000\ncolor blue_custom = 0x0000FF" + var lexer = Lexer(dsl_code) + + # Test initial position + assert(lexer.get_position() == 0, "Initial position should be 0") + + # Advance and check position + lexer.next_token() # color + assert(lexer.get_position() == 1, "Position should advance") + + lexer.next_token() # red_custom + lexer.next_token() # = + assert(lexer.get_position() == 3, "Position should continue advancing") + + # Test set_position + lexer.set_position(1) + assert(lexer.get_position() == 1, "Position should be set to 1") + + var token = lexer.peek_token() + assert(is_identifier(token, "red_custom"), "Should be back at 'red_custom' token") + + # Test reset + lexer.reset() + assert(lexer.get_position() == 0, "Reset should return to position 0") + + var first_token = lexer.peek_token() + assert(is_keyword(first_token, "color"), "Should be back at first token") + + # Test invalid position setting + var original_pos = lexer.get_position() + lexer.set_position(-1) + assert(lexer.get_position() == original_pos, "Invalid negative position should be ignored") + + lexer.set_position(1000) + assert(lexer.get_position() == original_pos, "Invalid large position should be ignored") + + print("✓ Position management test passed") + return true +end + +# Test position information for error reporting +def test_position_information() + print("Testing position information...") + + var dsl_code = "color red_custom = 0xFF0000\n" + + "animation pulse = pulsating_animation(color=red_custom)" + var lexer = Lexer(dsl_code) + + + # Advance to second line and test + var found_line_2 = false + while !lexer.at_end() + var token = lexer.next_token() + if token != nil && token.line == 2 + found_line_2 = true + break + end + end + + # Test at end + while !lexer.at_end() + lexer.next_token() + end + + + print("✓ Position information test passed") + return true +end + +# Test sub-lexer creation +def test_sub_lexer_creation() + print("Testing sub-lexer creation...") + + var dsl_code = "color red_custom = 0xFF0000\ncolor blue_custom = 0x0000FF\nanimation test = solid(color=red_custom)" + var lexer = Lexer(dsl_code) + + # Get total token count + var total_tokens = count_tokens(lexer) + assert(total_tokens > 6, "Should have multiple tokens") + + # Create sub-lexer for middle portion + var sub_lexer = lexer.create_sub_lexer(2, 6) + assert(sub_lexer != nil, "Sub-lexer should be created") + assert(count_tokens(sub_lexer) == 4, "Sub-lexer should have 4 tokens (6-2)") + assert(sub_lexer.get_position() == 0, "Sub-lexer should start at position 0") + + # Test sub-lexer tokens + var sub_token1 = sub_lexer.next_token() + assert(sub_token1 != nil, "Sub-lexer should have tokens") + assert(is_type(sub_token1, 8 #-animation_dsl.Token.ASSIGN-#), "First sub-token should be assignment") + + # Test invalid sub-lexer ranges + var invalid_sub1 = lexer.create_sub_lexer(-1, 5) + assert(count_tokens(invalid_sub1) == 0, "Invalid start should create empty sub-lexer") + + var invalid_sub2 = lexer.create_sub_lexer(5, 2) + assert(count_tokens(invalid_sub2) == 0, "Invalid range should create empty sub-lexer") + + var invalid_sub3 = lexer.create_sub_lexer(0, total_tokens + 10) + assert(count_tokens(invalid_sub3) == total_tokens, "Should clamp to valid range") + + print("✓ Sub-lexer creation test passed") + return true +end + +# Test complex DSL parsing scenarios +def test_complex_dsl_scenarios() + print("Testing complex DSL scenarios...") + + # Test sequence with nested structures + var complex_dsl = "color red_custom = 0xFF0000\n" + + "color blue_custom = 0x0000FF\n" + + "\n" + + "animation pulse_red = pulsating_animation(\n" + + " color=red_custom,\n" + + " period=2s,\n" + + " min_brightness=50%,\n" + + " max_brightness=100%\n" + + ")\n" + + "\n" + + "sequence demo {\n" + + " play pulse_red for 3s\n" + + " wait 1s\n" + + " repeat 3 times {\n" + + " play pulse_red for 500ms\n" + + " wait 200ms\n" + + " }\n" + + "}\n" + + "\n" + + "run demo" + + var lexer = Lexer(complex_dsl) + + # Count different token types + var keyword_count = 0 + var identifier_count = 0 + var color_count = 0 + var time_count = 0 + var percentage_count = 0 + var brace_count = 0 + + var token_index = 0 + while !lexer.at_end() + var token = lexer.next_token() + if token == nil break end + print(f" [{token_index}] {token.tostring()}") + token_index += 1 + + if token.type == 0 #-animation_dsl.Token.KEYWORD-# + keyword_count += 1 + elif token.type == 1 #-animation_dsl.Token.IDENTIFIER-# + identifier_count += 1 + elif token.type == 4 #-animation_dsl.Token.COLOR-# + color_count += 1 + elif token.type == 5 #-animation_dsl.Token.TIME-# + time_count += 1 + elif token.type == 6 #-animation_dsl.Token.PERCENTAGE-# + percentage_count += 1 + elif token.type == 26 #-animation_dsl.Token.LEFT_BRACE-# || token.type == 27 #-animation_dsl.Token.RIGHT_BRACE-# + brace_count += 1 + end + end + + assert(keyword_count > 5, "Should have multiple keywords") + assert(identifier_count > 5, "Should have multiple identifiers") + assert(color_count == 2, "Should have 2 color literals") + assert(time_count > 3, "Should have multiple time values") + assert(percentage_count == 2, "Should have 2 percentage values") + assert(brace_count > 2, "Should have multiple braces") + + print("✓ Complex DSL scenarios test passed") + return true +end + +# Test error handling and edge cases +def test_error_handling() + print("Testing error handling and edge cases...") + + # Test empty source + var empty_lexer = Lexer("") + assert(empty_lexer.at_end(), "Empty lexer should be at end") + assert(count_tokens(empty_lexer) == 0, "Empty lexer should have no tokens") + assert(empty_lexer.next_token() == nil, "Empty lexer should return nil") + assert(empty_lexer.peek_token() == nil, "Empty lexer peek should return nil") + + # Test whitespace-only source + var whitespace_lexer = Lexer(" \n\t \n ") + # Whitespace tokens might be present depending on lexer implementation + + # Test single token + var single_lexer = Lexer("red_custom") + assert(!single_lexer.at_end(), "Single token lexer should not be at end initially") + var single_token = single_lexer.next_token() + assert(single_token != nil, "Should get the single token") + assert(is_identifier(single_token, "red_custom"), "Should be 'red_custom' identifier") + assert(single_lexer.at_end(), "Should be at end after consuming single token") + + # Test malformed DSL (lexer should still tokenize what it can) + var malformed_dsl = "color red_custom = #invalid_color @#$%" + var malformed_lexer = Lexer(malformed_dsl) + + var tokens_found = 0 + while !malformed_lexer.at_end() + var token = malformed_lexer.next_token() + if token == nil break end + tokens_found += 1 + # Should not crash, even with malformed input + end + + assert(tokens_found > 0, "Should find some tokens even in malformed DSL") + + print("✓ Error handling test passed") + return true +end + +# Test integration with existing DSL components +def test_dsl_integration() + print("Testing DSL integration...") + + var dsl_code = "color red_custom = 0xFF0000\n" + + "animation pulse = pulsating_animation(color=red_custom, period=2s)\n" + + "run pulse" + + var lexer = Lexer(dsl_code) + + # Simulate transpiler-like usage + var tokens_processed = [] + + while !lexer.at_end() + var token = lexer.next_token() + if token == nil break end + + tokens_processed.push(token) + + # Test token properties that transpiler would use + # Note: We need to be more careful about context - "color" can be both a statement keyword + # and a parameter name in function calls + if is_keyword(token, "color") + # Skip whitespace/newlines to find the next meaningful token + var name_token = lexer.peek_token() + while name_token != nil && name_token.type == 35 #-animation_dsl.Token.NEWLINE-# + lexer.next_token() # consume the newline + name_token = lexer.peek_token() + end + + # Only check for identifier if this looks like a color definition (not a parameter) + if name_token != nil && name_token.type != 8 #-animation_dsl.Token.ASSIGN-# + assert(name_token.type == 1 #-animation_dsl.Token.IDENTIFIER-#, + "Color definition should be followed by identifier") + end + elif is_keyword(token, "animation") + # Skip whitespace/newlines to find the next meaningful token + var name_token = lexer.peek_token() + while name_token != nil && name_token.type == 35 #-animation_dsl.Token.NEWLINE-# + lexer.next_token() # consume the newline + name_token = lexer.peek_token() + end + + if name_token != nil + assert(name_token.type == 1 #-animation_dsl.Token.IDENTIFIER-#, + "Animation keyword should be followed by identifier") + end + elif is_keyword(token, "run") + # Skip whitespace/newlines to find the next meaningful token + var name_token = lexer.peek_token() + while name_token != nil && name_token.type == 35 #-animation_dsl.Token.NEWLINE-# + lexer.next_token() # consume the newline + name_token = lexer.peek_token() + end + + if name_token != nil + assert(name_token.type == 1 #-animation_dsl.Token.IDENTIFIER-#, + "Run keyword should be followed by identifier") + end + end + end + + assert(size(tokens_processed) > 10, "Should have processed multiple tokens") + + # Test that we can create multiple lexers for the same source + var lexer2 = Lexer(dsl_code) + var first_token1 = lexer2.next_token() + + var lexer3 = Lexer(dsl_code) + var first_token2 = lexer3.next_token() + + assert(first_token1.value == first_token2.value, "Multiple lexers should produce same tokens") + + print("✓ DSL integration test passed") + return true +end + +# Test interleaved lexer operations +def test_interleaved_lexer_operations() + print("Testing interleaved lexer operations...") + + var dsl_code = "color red_custom = 0xFF0000\n" + + "color blue_custom = 0x0000FF\n" + + "animation pulse = pulsating_animation(\n" + + " color=red_custom,\n" + + " period=2s\n" + + ")\n" + + "run pulse" + + var lexer = Lexer(dsl_code) + + # Test 1: Interleaved peek and next operations + print(" Testing interleaved peek and next operations...") + + # Start at position 0 + assert(lexer.get_position() == 0, "Should start at position 0") + + # Peek at first token multiple times + var peek1 = lexer.peek_token() + var peek2 = lexer.peek_token() + assert(peek1.value == peek2.value, "Multiple peeks should return same token") + assert(is_keyword(peek1, "color"), "First token should be 'color'") + assert(lexer.get_position() == 0, "Peek should not advance position") + + # Consume first token and verify it matches peek + var consumed1 = lexer.next_token() + assert(consumed1.value == peek1.value, "Consumed token should match peek") + assert(lexer.get_position() == 1, "Position should advance after next_token") + + # Test 2: Peek ahead operations + print(" Testing peek ahead operations...") + + var peek_ahead_1 = lexer.peek_ahead(1) # Should be identifier "red_custom" + var peek_ahead_2 = lexer.peek_ahead(2) # Should be assignment "=" + var peek_ahead_3 = lexer.peek_ahead(3) # Should be color "0xFF0000" + + assert(is_identifier(peek_ahead_1, "red_custom"), "Peek ahead 1 should be 'red_custom'") + assert(is_type(peek_ahead_2, 8 #-animation_dsl.Token.ASSIGN-#), "Peek ahead 2 should be assignment") + assert(is_type(peek_ahead_3, 4 #-animation_dsl.Token.COLOR-#), "Peek ahead 3 should be color") + assert(peek_ahead_3.value == "0xFF0000", "Color value should match") + + # Position should still be 1 + assert(lexer.get_position() == 1, "Peek ahead should not change position") + + # Test 3: Position manipulation with set_position + print(" Testing position manipulation...") + + # Save current position + var saved_pos = lexer.get_position() + + # Jump to position 3 (should be the color token) + lexer.set_position(3) + assert(lexer.get_position() == 3, "Position should be set to 3") + + var token_at_3 = lexer.peek_token() + assert(is_type(token_at_3, 4 #-animation_dsl.Token.COLOR-#), "Token at position 3 should be color") + assert(token_at_3.value == "0xFF0000", "Color value should match") + + # Jump back to saved position + lexer.set_position(saved_pos) + assert(lexer.get_position() == saved_pos, "Should return to saved position") + + var token_at_saved = lexer.peek_token() + assert(is_identifier(token_at_saved, "red_custom"), "Should be back at 'red_custom'") + + # Test 4: Complex interleaved operations + print(" Testing complex interleaved operations...") + + # Reset to beginning + lexer.reset() + assert(lexer.get_position() == 0, "Reset should return to position 0") + + # Simulate a complex parsing scenario with backtracking + var checkpoint_positions = [] + var checkpoint_tokens = [] + + # Consume first few tokens while saving checkpoints + for i : 0..4 + checkpoint_positions.push(lexer.get_position()) + var token = lexer.next_token() + if token != nil + checkpoint_tokens.push(token) + end + end + + # Current position should be 5 + assert(lexer.get_position() == 5, "Should be at position 5 after consuming 5 tokens") + + # Backtrack to checkpoint 2 + lexer.set_position(checkpoint_positions[2]) + var backtrack_token = lexer.peek_token() + assert(backtrack_token.value == checkpoint_tokens[2].value, "Backtracked token should match checkpoint") + + # Test peek ahead from backtracked position + var peek_from_backtrack = lexer.peek_ahead(2) + assert(peek_from_backtrack.value == checkpoint_tokens[3].value, "Peek ahead from backtrack should match") + + # Test 5: Boundary conditions with position manipulation + print(" Testing boundary conditions...") + + # Try to set position beyond end + var total_tokens = count_tokens(lexer) + var original_pos = lexer.get_position() + + lexer.set_position(total_tokens + 10) # Beyond end + assert(lexer.get_position() == original_pos, "Invalid position should be ignored") + + # Try to set negative position + lexer.set_position(-5) + assert(lexer.get_position() == original_pos, "Negative position should be ignored") + + # Set to last valid position + lexer.set_position(total_tokens - 1) + assert(lexer.get_position() == total_tokens - 1, "Should accept last valid position") + + var last_token = lexer.peek_token() + assert(last_token != nil, "Should have token at last position") + + # Try to peek beyond end + var beyond_peek = lexer.peek_ahead(5) + assert(beyond_peek == nil, "Peek beyond end should return nil") + + # Test 6: Interleaved operations with newlines and whitespace + print(" Testing operations with newlines and whitespace...") + + lexer.reset() + var meaningful_tokens = [] + var all_tokens = [] + + # Collect all tokens and filter meaningful ones + while !lexer.at_end() + var pos_before = lexer.get_position() + var token = lexer.next_token() + if token == nil break end + + all_tokens.push(token) + + # Skip newlines for meaningful token collection + if token.type != 35 #-animation_dsl.Token.NEWLINE-# + meaningful_tokens.push({ + "token": token, + "position": pos_before + }) + end + end + + # Test jumping between meaningful tokens + for i : 0..(size(meaningful_tokens) - 1) + var entry = meaningful_tokens[i] + lexer.set_position(entry["position"]) + + var retrieved_token = lexer.peek_token() + assert(retrieved_token.value == entry["token"].value, + f"Token at position {entry['position']} should match stored token") + + # Test peek ahead to next meaningful token if it exists + if i < size(meaningful_tokens) - 1 + var next_entry = meaningful_tokens[i + 1] + var distance = next_entry["position"] - entry["position"] + + if distance <= 5 # Only test reasonable distances + var peek_next = lexer.peek_ahead(distance + 1) + if peek_next != nil + assert(peek_next.value == next_entry["token"].value, + "Peek ahead should reach next meaningful token") + end + end + end + end + + print("✓ Interleaved lexer operations test passed") + return true +end + +# Test full template parsing with complex DSL +def test_full_template_parsing() + print("Testing full template parsing...") + + # Full template example similar to cylon_generic.anim + var template_dsl = "# Cylon Red Eye Template\n" + + "# Automatically adapts to the length of the strip\n" + + "\n" + + "template cylon_effect {\n" + + " param eye_color type color\n" + + " param back_color type color\n" + + " param duration\n" + + " \n" + + " set strip_len = strip_length()\n" + + "\n" + + " animation eye_animation = beacon_animation(\n" + + " color = eye_color\n" + + " back_color = back_color\n" + + " pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = duration)\n" + + " beacon_size = 3\n" + + " slew_size = 2\n" + + " priority = 5\n" + + " )\n" + + "\n" + + " run eye_animation\n" + + "}\n" + + "\n" + + "cylon_effect(red, transparent, 3s)\n" + + var lexer = Lexer(template_dsl) + + print(" Testing template structure parsing...") + + # Test 1: Navigate to template definition with interleaved operations + var template_found = false + var template_start_pos = -1 + + while !lexer.at_end() + var current_pos = lexer.get_position() + var token = lexer.peek_token() + + if token != nil && is_keyword(token, "template") + template_found = true + template_start_pos = current_pos + break + end + + lexer.next_token() # Consume token + end + + assert(template_found, "Should find template keyword") + assert(template_start_pos >= 0, "Should have valid template start position") + + # Test 2: Parse template header with position manipulation + print(" Testing template header parsing...") + + lexer.set_position(template_start_pos) + + # Verify template keyword + var template_token = lexer.next_token() + assert(is_keyword(template_token, "template"), "Should be template keyword") + + # Get template name + var name_token = lexer.next_token() + assert(is_identifier(name_token, "cylon_effect"), "Template name should be 'cylon_effect'") + + # Expect opening brace + var brace_token = lexer.next_token() + assert(is_type(brace_token, 26 #-animation_dsl.Token.LEFT_BRACE-#), "Should have opening brace") + + # Test 3: Parse template parameters with peek ahead + print(" Testing template parameter parsing...") + + var param_count = 0 + var expected_params = ["eye_color", "back_color", "duration"] + var found_params = [] + + # Look for param keywords and collect parameter names + while !lexer.at_end() + var token = lexer.peek_token() + if token == nil break end + + if is_keyword(token, "param") + lexer.next_token() # consume 'param' + + var param_name_token = lexer.peek_token() + if param_name_token != nil && param_name_token.type == 1 #-animation_dsl.Token.IDENTIFIER-# + found_params.push(param_name_token.value) + param_count += 1 + + # Skip to next line or statement + while !lexer.at_end() + var skip_token = lexer.next_token() + if skip_token == nil || skip_token.type == 35 #-animation_dsl.Token.NEWLINE-# + break + end + end + else + lexer.next_token() # consume whatever token this is + end + elif is_keyword(token, "set") || is_keyword(token, "animation") || is_keyword(token, "run") + # We've reached the template body + break + else + lexer.next_token() # consume token + end + end + + assert(param_count == 3, f"Should find 3 parameters, found {param_count}") + + for expected_param : expected_params + var found = false + for found_param : found_params + if found_param == expected_param + found = true + break + end + end + assert(found, f"Should find parameter '{expected_param}'") + end + + # Test 4: Parse template body with complex expressions + print(" Testing template body parsing...") + + # Look for the set statement + var set_found = false + var set_position = -1 + + while !lexer.at_end() + var current_pos = lexer.get_position() + var token = lexer.peek_token() + + if token != nil && is_keyword(token, "set") + set_found = true + set_position = current_pos + break + end + + lexer.next_token() + end + + assert(set_found, "Should find 'set' statement in template body") + + # Parse the set statement: set strip_len = strip_length() + lexer.set_position(set_position) + + var set_token = lexer.next_token() + assert(is_keyword(set_token, "set"), "Should be 'set' keyword") + + var var_name_token = lexer.next_token() + assert(is_identifier(var_name_token, "strip_len"), "Variable name should be 'strip_len'") + + var assign_token = lexer.next_token() + assert(is_type(assign_token, 8 #-animation_dsl.Token.ASSIGN-#), "Should have assignment operator") + + var func_name_token = lexer.next_token() + assert(is_identifier(func_name_token, "strip_length"), "Function name should be 'strip_length'") + + # Test 5: Parse complex animation definition with interleaved operations + print(" Testing complex animation definition...") + + # Look for animation keyword + var animation_found = false + var animation_position = -1 + + while !lexer.at_end() + var current_pos = lexer.get_position() + var token = lexer.peek_token() + + if token != nil && is_keyword(token, "animation") + animation_found = true + animation_position = current_pos + break + end + + lexer.next_token() + end + + assert(animation_found, "Should find 'animation' keyword in template body") + + # Parse animation definition with position manipulation + lexer.set_position(animation_position) + + var anim_keyword = lexer.next_token() + assert(is_keyword(anim_keyword, "animation"), "Should be 'animation' keyword") + + var anim_name = lexer.next_token() + assert(is_identifier(anim_name, "eye_animation"), "Animation name should be 'eye_animation'") + + var anim_assign = lexer.next_token() + assert(is_type(anim_assign, 8 #-animation_dsl.Token.ASSIGN-#), "Should have assignment") + + var anim_func = lexer.next_token() + assert(is_identifier(anim_func, "beacon_animation"), "Should be 'beacon_animation' function") + + # Test 6: Parse function parameters with peek ahead + print(" Testing function parameter parsing...") + + var left_paren = lexer.next_token() + assert(is_type(left_paren, 24 #-animation_dsl.Token.LEFT_PAREN-#), "Should have opening parenthesis") + + # Count parameters by looking for assignment operators within the function call + var param_assignments = 0 + var paren_depth = 1 + + while !lexer.at_end() && paren_depth > 0 + var token = lexer.next_token() + if token == nil break end + + if is_type(token, 24 #-animation_dsl.Token.LEFT_PAREN-#) + paren_depth += 1 + elif is_type(token, 25 #-animation_dsl.Token.RIGHT_PAREN-#) + paren_depth -= 1 + elif is_type(token, 8 #-animation_dsl.Token.ASSIGN-#) && paren_depth == 1 + param_assignments += 1 + end + end + + assert(param_assignments >= 5, f"Should find at least 5 parameter assignments, found {param_assignments}") + + # Test 7: Parse template call with position manipulation + print(" Testing template call parsing...") + + # Look for template call: cylon_effect(red, transparent, 3s) + lexer.reset() + var call_found = false + var call_position = -1 + + while !lexer.at_end() + var current_pos = lexer.get_position() + var token = lexer.peek_token() + + if token != nil && is_identifier(token, "cylon_effect") + # Check if next token is opening parenthesis (indicating a call) + var next_token = lexer.peek_ahead(2) + if next_token != nil && is_type(next_token, 24 #-animation_dsl.Token.LEFT_PAREN-#) + call_found = true + call_position = current_pos + break + end + end + + lexer.next_token() + end + + assert(call_found, "Should find template call") + + # Parse template call arguments + lexer.set_position(call_position) + + var call_name = lexer.next_token() + assert(is_identifier(call_name, "cylon_effect"), "Call name should be 'cylon_effect'") + + var call_paren = lexer.next_token() + assert(is_type(call_paren, 24 #-animation_dsl.Token.LEFT_PAREN-#), "Should have opening parenthesis") + + # Parse arguments: red, transparent, 3s (skip whitespace/newlines) + var arg1 = lexer.next_token() + while arg1 != nil && arg1.type == 35 #-animation_dsl.Token.NEWLINE-# + arg1 = lexer.next_token() + end + var arg1_desc = arg1 != nil ? arg1.tostring() : "nil" + # "red" is a predefined color, so it's tokenized as COLOR, not IDENTIFIER + assert(arg1 != nil && (is_identifier(arg1, "red") || (is_type(arg1, 4 #-animation_dsl.Token.COLOR-#) && arg1.value == "red")), f"First argument should be 'red', got {arg1_desc}") + + var comma1 = lexer.next_token() + while comma1 != nil && comma1.type == 35 #-animation_dsl.Token.NEWLINE-# + comma1 = lexer.next_token() + end + var comma1_desc = comma1 != nil ? comma1.tostring() : "nil" + assert(comma1 != nil && is_type(comma1, 30 #-animation_dsl.Token.COMMA-#), f"Should have comma, got {comma1_desc}") + + var arg2 = lexer.next_token() + while arg2 != nil && arg2.type == 35 #-animation_dsl.Token.NEWLINE-# + arg2 = lexer.next_token() + end + var arg2_desc = arg2 != nil ? arg2.tostring() : "nil" + # "transparent" is also a predefined color + assert(arg2 != nil && (is_identifier(arg2, "transparent") || (is_type(arg2, 4 #-animation_dsl.Token.COLOR-#) && arg2.value == "transparent")), f"Second argument should be 'transparent', got {arg2_desc}") + + var comma2 = lexer.next_token() + while comma2 != nil && comma2.type == 35 #-animation_dsl.Token.NEWLINE-# + comma2 = lexer.next_token() + end + var comma2_desc = comma2 != nil ? comma2.tostring() : "nil" + assert(comma2 != nil && is_type(comma2, 30 #-animation_dsl.Token.COMMA-#), f"Should have comma, got {comma2_desc}") + + var arg3 = lexer.next_token() + while arg3 != nil && arg3.type == 35 #-animation_dsl.Token.NEWLINE-# + arg3 = lexer.next_token() + end + var arg3_desc = arg3 != nil ? arg3.tostring() : "nil" + assert(arg3 != nil && is_type(arg3, 5 #-animation_dsl.Token.TIME-#), f"Third argument should be time value, got {arg3_desc}") + assert(arg3.value == "3s", f"Time value should be '3s', got '{arg3.value}'") + + var close_paren = lexer.next_token() + while close_paren != nil && close_paren.type == 35 #-animation_dsl.Token.NEWLINE-# + close_paren = lexer.next_token() + end + var close_paren_desc = close_paren != nil ? close_paren.tostring() : "nil" + assert(close_paren != nil && is_type(close_paren, 25 #-animation_dsl.Token.RIGHT_PAREN-#), f"Should have closing parenthesis, got {close_paren_desc}") + + # Test 8: Verify token count and structure + print(" Testing overall token structure...") + + lexer.reset() + var total_tokens = count_tokens(lexer) + assert(total_tokens > 50, f"Should have substantial number of tokens, got {total_tokens}") + + # Count different token types + var keyword_count = 0 + var identifier_count = 0 + var brace_count = 0 + var paren_count = 0 + var comment_count = 0 + + while !lexer.at_end() + var token = lexer.next_token() + if token == nil break end + + if token.type == 0 #-animation_dsl.Token.KEYWORD-# + keyword_count += 1 + elif token.type == 1 #-animation_dsl.Token.IDENTIFIER-# + identifier_count += 1 + elif token.type == 26 #-animation_dsl.Token.LEFT_BRACE-# || token.type == 27 #-animation_dsl.Token.RIGHT_BRACE-# + brace_count += 1 + elif token.type == 24 #-animation_dsl.Token.LEFT_PAREN-# || token.type == 25 #-animation_dsl.Token.RIGHT_PAREN-# + paren_count += 1 + elif token.type == 37 #-animation_dsl.Token.COMMENT-# + comment_count += 1 + end + end + + assert(keyword_count >= 8, f"Should have multiple keywords, got {keyword_count}") + assert(identifier_count >= 15, f"Should have many identifiers, got {identifier_count}") + assert(brace_count >= 2, f"Should have braces for template, got {brace_count}") + assert(paren_count >= 4, f"Should have parentheses for function calls, got {paren_count}") + + print("✓ Full template parsing test passed") + return true +end + +# Run all tests +def run_pull_lexer_tests() + print("=== Pull Lexer Test Suite ===") + + var tests = [ + test_pull_lexer_creation, + test_basic_token_pulling, + test_peek_functionality, + test_position_management, + test_position_information, + test_sub_lexer_creation, + test_complex_dsl_scenarios, + test_error_handling, + test_dsl_integration, + test_interleaved_lexer_operations, + test_full_template_parsing, + ] + + var passed = 0 + var total = size(tests) + + for test_func : tests + try + if test_func() + passed += 1 + else + print("✗ Test failed") + end + except .. as error_type, error_message + print(f"✗ Test crashed: {error_type} - {error_message}") + import string + import debug + var stack_trace = string.format("Stack trace: %s", debug.traceback()) + print(stack_trace) + end + print() # Add spacing between tests + end + + print(f"=== Results: {passed}/{total} tests passed ===") + + if passed == total + print("🎉 All pull lexer tests passed!") + return true + else + print("❌ Some pull lexer tests failed") + raise "test_failed" + end +end + +# Auto-run tests when file is executed +run_pull_lexer_tests() \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be b/lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be new file mode 100644 index 000000000..54490ffe1 --- /dev/null +++ b/lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be @@ -0,0 +1,158 @@ +# Test for Pull Lexer Interface with Transpiler +# Verifies that the transpiler works correctly with both token array and pull lexer + +import animation_dsl + +def test_pull_lexer_basic() + print("=== Testing Pull Lexer Basic Functionality ===") + + var dsl_source = "# Simple DSL test\n" + + "color my_red = 0xFF0000\n" + + "animation pulse = pulsating_animation(color=my_red, period=2s)\n" + + "run pulse" + + # Test with new create_lexer interface (uses pull lexer internally) + var pull_lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(pull_lexer) + var berry_code = transpiler.transpile() + + print("New create_lexer Result (using pull lexer internally):") + print(berry_code) + print() + + # Test with direct pull lexer creation + var direct_pull_lexer = animation_dsl.create_lexer(dsl_source) + var direct_transpiler = animation_dsl.SimpleDSLTranspiler(direct_pull_lexer) + var direct_berry_code = direct_transpiler.transpile() + + print("Direct Pull Lexer Result:") + print(direct_berry_code) + print() + + # Compare results - they should be identical + if berry_code == direct_berry_code + print("✅ SUCCESS: create_lexer and direct pull lexer produce identical results") + else + print("❌ FAILURE: Results differ between create_lexer and direct pull lexer") + print("Differences found!") + end + + return berry_code == direct_berry_code +end + +def test_pull_lexer_template_mode() + print("=== Testing Pull Lexer Template Mode ===") + + var template_source = "animation test = solid(color=red)\n" + + "test.opacity = 200\n" + + "run test" + + # Test with template mode enabled + var pull_lexer = animation_dsl.create_lexer(template_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(pull_lexer) + + var berry_code = transpiler.transpile_template_body() + + print("Template Body Result:") + print(berry_code) + + return true +end + +def test_pull_lexer_token_access() + print("=== Testing Pull Lexer Token Access Methods ===") + + var dsl_source = "color red = 0xFF0000" + var pull_lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(pull_lexer) + + print("Testing token access methods:") + + # Test current() + var current_token = transpiler.current() + print(f"Current token: {current_token.tostring()}") + + # Test peek() + var next_token = transpiler.peek() + print(f"Next token: {next_token.tostring()}") + + # Test next() + var consumed_token = transpiler.next() + print(f"Consumed token: {consumed_token.tostring()}") + + # Test current() after next() + current_token = transpiler.current() + print(f"Current token after next(): {current_token.tostring()}") + + # Test at_end() + print(f"At end: {transpiler.at_end()}") + + return true +end + +def test_pull_lexer_position_info() + print("=== Testing Pull Lexer Position Information ===") + + var dsl_source = "color red = 0xFF0000\n" + + "animation pulse = pulsating_animation(color=red)" + + var pull_lexer = animation_dsl.create_lexer(dsl_source) + + # Consume a few tokens + pull_lexer.next_token() # color + pull_lexer.next_token() # red + pull_lexer.next_token() # = + + return true +end + +def run_all_tests() + print("Running Pull Lexer Transpiler Tests") + print("=" * 50) + + var tests = [ + test_pull_lexer_basic, + test_pull_lexer_template_mode, + test_pull_lexer_token_access, + test_pull_lexer_position_info + ] + + var passed = 0 + var total = size(tests) + + for test_func : tests + try + if test_func() + passed += 1 + print("✅ PASSED\n") + else + print("❌ FAILED\n") + end + except .. as e, msg + print(f"❌ ERROR: {msg}\n") + end + end + + print("=" * 50) + print(f"Results: {passed}/{total} tests passed") + + if passed == total + print("🎉 All tests passed!") + else + print("⚠️ Some tests failed") + raise "test_failed" + end + + return passed == total +end + +# Run tests when this file is executed directly +run_all_tests() + +return { + "test_pull_lexer_basic": test_pull_lexer_basic, + "test_pull_lexer_template_mode": test_pull_lexer_template_mode, + "test_pull_lexer_token_access": test_pull_lexer_token_access, + "test_pull_lexer_position_info": test_pull_lexer_position_info, + "run_all_tests": run_all_tests +} \ No newline at end of file diff --git a/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be b/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be index 7717d2c5d..5a27e40b7 100644 --- a/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be +++ b/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be @@ -16,9 +16,8 @@ def test_basic_symbol_registration() "animation solid_red = solid(color=custom_red)\n" + "animation red_anim = solid_red" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) # Process the DSL var berry_code = transpiler.transpile() @@ -44,9 +43,8 @@ def test_proper_symbol_ordering() var dsl_source = "color custom_red = 0xFF0000\n" + "animation fire_pattern = solid(color=custom_red)" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var berry_code = transpiler.transpile() @@ -70,9 +68,8 @@ def test_undefined_reference_handling() # DSL with undefined reference var dsl_source = "animation test_pattern = solid(color=undefined_color)" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) # Should detect undefined reference at transpile time and raise exception try @@ -96,9 +93,8 @@ def test_builtin_reference_handling() var dsl_source = "animation red_pattern = solid(color=red)\n" + "animation pulse_anim = pulsating_animation(color=red, period=2000)" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var berry_code = transpiler.transpile() @@ -120,9 +116,8 @@ def test_definition_generation() var dsl_source = "color custom_blue = 0x0000FF" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var berry_code = transpiler.transpile() @@ -151,9 +146,8 @@ def test_complex_symbol_dependencies() "}\n" + "run demo" - var lexer = animation_dsl.DSLLexer(dsl_source) - var tokens = lexer.tokenize() - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_source) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var berry_code = transpiler.transpile() diff --git a/lib/libesp32/berry_animation/src/tests/test_all.be b/lib/libesp32/berry_animation/src/tests/test_all.be index a999db58c..de88f77d5 100644 --- a/lib/libesp32/berry_animation/src/tests/test_all.be +++ b/lib/libesp32/berry_animation/src/tests/test_all.be @@ -108,6 +108,8 @@ def run_all_tests() # DSL tests "lib/libesp32/berry_animation/src/tests/dsl_lexer_test.be", + "lib/libesp32/berry_animation/src/tests/pull_lexer_test.be", + "lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be", "lib/libesp32/berry_animation/src/tests/token_test.be", "lib/libesp32/berry_animation/src/tests/global_variable_test.be", "lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be", @@ -115,7 +117,6 @@ def run_all_tests() "lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be", "lib/libesp32/berry_animation/src/tests/simplified_transpiler_test.be", "lib/libesp32/berry_animation/src/tests/symbol_registry_test.be", - "lib/libesp32/berry_animation/src/tests/dsl_runtime_test.be", "lib/libesp32/berry_animation/src/tests/nested_function_calls_test.be", "lib/libesp32/berry_animation/src/tests/user_functions_test.be", "lib/libesp32/berry_animation/src/tests/palette_dsl_test.be", diff --git a/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be b/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be index e8d60c5d2..05038bc7c 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 @@ -7,24 +7,12 @@ import string def test_transpilation_case(dsl_code, expected_methods, test_name) print(f"\n Testing: {test_name}") - var lexer = animation_dsl.DSLLexer(dsl_code) - var tokens - - try - tokens = lexer.tokenize() - except "lexical_error" as e, msg - print(f" ❌ Lexer error: {msg}") - return false - end - - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_code) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var generated_code = transpiler.transpile() if generated_code == nil print(" ❌ Transpilation failed:") - for error : transpiler.errors - print(f" {error}") - end return false end @@ -64,24 +52,12 @@ end def test_non_math_functions(dsl_code) print("\n Testing: Non-math functions should NOT be prefixed with animation._math.") - var lexer = animation_dsl.DSLLexer(dsl_code) - var tokens - - try - tokens = lexer.tokenize() - except "lexical_error" as e, msg - print(f" ❌ Lexer error: {msg}") - return false - end - - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_code) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var generated_code = transpiler.transpile() if generated_code == nil print(" ❌ Transpilation failed:") - for error : transpiler.errors - print(f" {error}") - end return false end @@ -110,7 +86,8 @@ end def test_is_math_method_function() print("\nTesting is_math_method() function directly...") - var transpiler = animation_dsl.SimpleDSLTranspiler([]) + var dummy_lexer = animation_dsl.create_lexer("") + var transpiler = animation_dsl.SimpleDSLTranspiler(dummy_lexer) # Test mathematical methods var math_methods = ["min", "max", "abs", "round", "sqrt", "scale", "sin", "cos"] diff --git a/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be b/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be index 3bf8c72b5..187edf47f 100644 --- a/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be +++ b/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be @@ -10,24 +10,12 @@ import "user_functions" as user_funcs def test_transpilation_case(dsl_code, expected_user_function, test_name) print(f"\n Testing: {test_name}") - var lexer = animation_dsl.DSLLexer(dsl_code) - var tokens - - try - tokens = lexer.tokenize() - except "lexical_error" as e, msg - print(f" ❌ Lexer error: {msg}") - return false - end - - var transpiler = animation_dsl.SimpleDSLTranspiler(tokens) + var lexer = animation_dsl.create_lexer(dsl_code) + var transpiler = animation_dsl.SimpleDSLTranspiler(lexer) var generated_code = transpiler.transpile() if generated_code == nil print(" ❌ Transpilation failed:") - for error : transpiler.errors - print(f" {error}") - end return false end diff --git a/lib/libesp32/berry_animation/src/tests/token_test.be b/lib/libesp32/berry_animation/src/tests/token_test.be index a1f83c7a3..78e671a3e 100644 --- a/lib/libesp32/berry_animation/src/tests/token_test.be +++ b/lib/libesp32/berry_animation/src/tests/token_test.be @@ -5,46 +5,18 @@ import string import animation import animation_dsl -# Test Token constants and utilities -def test_token_type_constants() - print("Testing Token constants...") - - # Test that all constants are defined and unique - var token_types = [ - animation_dsl.Token.KEYWORD, animation_dsl.Token.IDENTIFIER, animation_dsl.Token.NUMBER, - animation_dsl.Token.STRING, animation_dsl.Token.COLOR, animation_dsl.Token.TIME, - animation_dsl.Token.PERCENTAGE, animation_dsl.Token.MULTIPLIER, animation_dsl.Token.ASSIGN, - animation_dsl.Token.PLUS, animation_dsl.Token.MINUS, animation_dsl.Token.MULTIPLY, - animation_dsl.Token.DIVIDE, animation_dsl.Token.MODULO, animation_dsl.Token.POWER, - animation_dsl.Token.EQUAL, animation_dsl.Token.NOT_EQUAL, animation_dsl.Token.LESS_THAN, - animation_dsl.Token.LESS_EQUAL, animation_dsl.Token.GREATER_THAN, animation_dsl.Token.GREATER_EQUAL, - animation_dsl.Token.LOGICAL_AND, animation_dsl.Token.LOGICAL_OR, animation_dsl.Token.LOGICAL_NOT, - animation_dsl.Token.LEFT_PAREN, animation_dsl.Token.RIGHT_PAREN, animation_dsl.Token.LEFT_BRACE, - animation_dsl.Token.RIGHT_BRACE, animation_dsl.Token.LEFT_BRACKET, animation_dsl.Token.RIGHT_BRACKET, - animation_dsl.Token.COMMA, animation_dsl.Token.SEMICOLON, animation_dsl.Token.COLON, - animation_dsl.Token.DOT, animation_dsl.Token.ARROW, animation_dsl.Token.NEWLINE, - animation_dsl.Token.VARIABLE_REF, animation_dsl.Token.COMMENT, animation_dsl.Token.EOF, - animation_dsl.Token.ERROR - ] - - # Check that all values are different - var seen = {} - for token_type : token_types - if seen.contains(token_type) - print(f"ERROR: Duplicate token type value: {token_type}") - return false - end - seen[token_type] = true - end - - # Test to_string method - assert(animation_dsl.Token.to_string(animation_dsl.Token.KEYWORD) == "KEYWORD") - assert(animation_dsl.Token.to_string(animation_dsl.Token.IDENTIFIER) == "IDENTIFIER") - assert(animation_dsl.Token.to_string(animation_dsl.Token.EOF) == "EOF") - assert(animation_dsl.Token.to_string(999) == "UNKNOWN") - - print("✓ Token constants test passed") - return true +# Local helper functions to replace removed Token methods +# These replace the removed is_identifier(), is_type(), and is_keyword() methods from Token class +def is_identifier(token, name) + return token.type == 1 #-animation_dsl.Token.IDENTIFIER-# && token.value == name +end + +def is_type(token, token_type) + return token.type == token_type +end + +def is_keyword(token, keyword) + return token.type == 0 #-animation_dsl.Token.KEYWORD-# && token.value == keyword end # Test Token class basic functionality @@ -52,19 +24,19 @@ def test_token_basic() print("Testing Token basic functionality...") # Test basic token creation - var token = animation_dsl.Token(animation_dsl.Token.KEYWORD, "color", 1, 5, 5) - assert(token.type == animation_dsl.Token.KEYWORD) + var token = animation_dsl.Token(0 #-animation_dsl.Token.KEYWORD-#, "color", 1, 5, 5) + assert(token.type == 0 #-animation_dsl.Token.KEYWORD-#) assert(token.value == "color") assert(token.line == 1) assert(token.column == 5) assert(token.length == 5) # Test default length calculation - var token2 = animation_dsl.Token(animation_dsl.Token.IDENTIFIER, "red", 2, 10) + var token2 = animation_dsl.Token(1 #-animation_dsl.Token.IDENTIFIER-#, "red", 2, 10) assert(token2.length == 3) # Should default to size of "red" - # Test nil handling - var token3 = animation_dsl.Token(animation_dsl.Token.EOF, nil, nil, nil) + # Test nil handling (using ERROR token instead of removed EOF) + var token3 = animation_dsl.Token(39 #-animation_dsl.Token.ERROR-#, nil, nil, nil) assert(token3.value == "") assert(token3.line == 1) assert(token3.column == 1) @@ -77,42 +49,26 @@ end def test_token_type_checking() print("Testing Token type checking methods...") - var keyword_token = animation_dsl.Token(animation_dsl.Token.KEYWORD, "color", 1, 1) - var identifier_token = animation_dsl.Token(animation_dsl.Token.IDENTIFIER, "red", 1, 1) - var number_token = animation_dsl.Token(animation_dsl.Token.NUMBER, "123", 1, 1) - var operator_token = animation_dsl.Token(animation_dsl.Token.PLUS, "+", 1, 1) - var delimiter_token = animation_dsl.Token(animation_dsl.Token.LEFT_PAREN, "(", 1, 1) - var separator_token = animation_dsl.Token(animation_dsl.Token.COMMA, ",", 1, 1) + var keyword_token = animation_dsl.Token(0 #-animation_dsl.Token.KEYWORD-#, "color", 1, 1) + var identifier_token = animation_dsl.Token(1 #-animation_dsl.Token.IDENTIFIER-#, "red", 1, 1) + var number_token = animation_dsl.Token(2 #-animation_dsl.Token.NUMBER-#, "123", 1, 1) + var operator_token = animation_dsl.Token(9 #-animation_dsl.Token.PLUS-#, "+", 1, 1) + var delimiter_token = animation_dsl.Token(24 #-animation_dsl.Token.LEFT_PAREN-#, "(", 1, 1) + var separator_token = animation_dsl.Token(30 #-animation_dsl.Token.COMMA-#, ",", 1, 1) # Test is_type - assert(keyword_token.is_type(animation_dsl.Token.KEYWORD)) - assert(!keyword_token.is_type(animation_dsl.Token.IDENTIFIER)) + assert(is_type(keyword_token, 0 #-animation_dsl.Token.KEYWORD-#)) + assert(!is_type(keyword_token, 1 #-animation_dsl.Token.IDENTIFIER-#)) # Test is_keyword - assert(keyword_token.is_keyword("color")) - assert(!keyword_token.is_keyword("red")) - assert(!identifier_token.is_keyword("color")) + assert(is_keyword(keyword_token, "color")) + assert(!is_keyword(keyword_token, "red")) + assert(!is_keyword(identifier_token, "color")) # Test is_identifier - assert(identifier_token.is_identifier("red")) - assert(!identifier_token.is_identifier("blue")) - assert(!keyword_token.is_identifier("red")) - - # Test is_operator - assert(operator_token.is_operator()) - assert(!keyword_token.is_operator()) - - # Test is_delimiter - assert(delimiter_token.is_delimiter()) - assert(!keyword_token.is_delimiter()) - - # Test is_separator - assert(separator_token.is_separator()) - assert(!keyword_token.is_separator()) - - # Test is_literal - assert(number_token.is_literal()) - assert(!keyword_token.is_literal()) + assert(is_identifier(identifier_token, "red")) + assert(!is_identifier(identifier_token, "blue")) + assert(!is_identifier(keyword_token, "red")) print("✓ Token type checking test passed") return true @@ -123,53 +79,26 @@ def test_token_value_extraction() print("Testing Token value extraction methods...") # Test boolean tokens - var true_token = animation_dsl.Token(animation_dsl.Token.KEYWORD, "true", 1, 1) - var false_token = animation_dsl.Token(animation_dsl.Token.KEYWORD, "false", 1, 1) - var other_token = animation_dsl.Token(animation_dsl.Token.KEYWORD, "color", 1, 1) - - assert(true_token.is_boolean()) - assert(false_token.is_boolean()) - assert(!other_token.is_boolean()) - - assert(true_token.get_boolean_value() == true) - assert(false_token.get_boolean_value() == false) - assert(other_token.get_boolean_value() == nil) + var true_token = animation_dsl.Token(0 #-animation_dsl.Token.KEYWORD-#, "true", 1, 1) + var false_token = animation_dsl.Token(0 #-animation_dsl.Token.KEYWORD-#, "false", 1, 1) + var other_token = animation_dsl.Token(0 #-animation_dsl.Token.KEYWORD-#, "color", 1, 1) # Test numeric tokens - var number_token = animation_dsl.Token(animation_dsl.Token.NUMBER, "123.45", 1, 1) - var time_token = animation_dsl.Token(animation_dsl.Token.TIME, "2s", 1, 1) - var percent_token = animation_dsl.Token(animation_dsl.Token.PERCENTAGE, "50%", 1, 1) - var multiplier_token = animation_dsl.Token(animation_dsl.Token.MULTIPLIER, "2.5x", 1, 1) - - assert(number_token.is_numeric()) - assert(time_token.is_numeric()) - assert(percent_token.is_numeric()) - assert(multiplier_token.is_numeric()) - - assert(number_token.get_numeric_value() == 123) # Converted to int - assert(time_token.get_numeric_value() == 2000) # 2s = 2000ms (already int) - assert(percent_token.get_numeric_value() == 127 || percent_token.get_numeric_value() == 128) # 50% = ~127-128 in 0-255 range - assert(multiplier_token.get_numeric_value() == 640) # 2.5x = 2.5 * 256 = 640 + var number_token = animation_dsl.Token(2 #-animation_dsl.Token.NUMBER-#, "123.45", 1, 1) + var time_token = animation_dsl.Token(5 #-animation_dsl.Token.TIME-#, "2s", 1, 1) + var percent_token = animation_dsl.Token(6 #-animation_dsl.Token.PERCENTAGE-#, "50%", 1, 1) + var multiplier_token = animation_dsl.Token(7 #-animation_dsl.Token.MULTIPLIER-#, "2.5x", 1, 1) # Test time conversion - var ms_token = animation_dsl.Token(animation_dsl.Token.TIME, "500ms", 1, 1) - var s_token = animation_dsl.Token(animation_dsl.Token.TIME, "3s", 1, 1) - var m_token = animation_dsl.Token(animation_dsl.Token.TIME, "2m", 1, 1) - var h_token = animation_dsl.Token(animation_dsl.Token.TIME, "1h", 1, 1) - - assert(ms_token.get_numeric_value() == 500) - assert(s_token.get_numeric_value() == 3000) - assert(m_token.get_numeric_value() == 120000) - assert(h_token.get_numeric_value() == 3600000) + var ms_token = animation_dsl.Token(5 #-animation_dsl.Token.TIME-#, "500ms", 1, 1) + var s_token = animation_dsl.Token(5 #-animation_dsl.Token.TIME-#, "3s", 1, 1) + var m_token = animation_dsl.Token(5 #-animation_dsl.Token.TIME-#, "2m", 1, 1) + var h_token = animation_dsl.Token(5 #-animation_dsl.Token.TIME-#, "1h", 1, 1) # Test percentage to 255 conversion - var percent_0 = animation_dsl.Token(animation_dsl.Token.PERCENTAGE, "0%", 1, 1) - var percent_50 = animation_dsl.Token(animation_dsl.Token.PERCENTAGE, "50%", 1, 1) - var percent_100 = animation_dsl.Token(animation_dsl.Token.PERCENTAGE, "100%", 1, 1) - - assert(percent_0.get_numeric_value() == 0) - assert(percent_50.get_numeric_value() == 127 || percent_50.get_numeric_value() == 128) # Allow rounding - assert(percent_100.get_numeric_value() == 255) + var percent_0 = animation_dsl.Token(6 #-animation_dsl.Token.PERCENTAGE-#, "0%", 1, 1) + var percent_50 = animation_dsl.Token(6 #-animation_dsl.Token.PERCENTAGE-#, "50%", 1, 1) + var percent_100 = animation_dsl.Token(6 #-animation_dsl.Token.PERCENTAGE-#, "100%", 1, 1) print("✓ Token value extraction test passed") return true @@ -179,38 +108,13 @@ end def test_token_utilities() print("Testing Token utility methods...") - var token = animation_dsl.Token(animation_dsl.Token.IDENTIFIER, "test", 5, 10, 4) - - # Test end_column - assert(token.end_column() == 13) # 10 + 4 - 1 - - # Test with_type - var new_token = token.with_type(animation_dsl.Token.KEYWORD) - assert(new_token.type == animation_dsl.Token.KEYWORD) - assert(new_token.value == "test") - assert(new_token.line == 5) - assert(new_token.column == 10) - - # Test with_value - var new_token2 = token.with_value("newvalue") - assert(new_token2.type == animation_dsl.Token.IDENTIFIER) - assert(new_token2.value == "newvalue") - assert(new_token2.length == 8) # size of "newvalue" + var token = animation_dsl.Token(1 #-animation_dsl.Token.IDENTIFIER-#, "test", 5, 10, 4) # Test expression checking - var literal_token = animation_dsl.Token(animation_dsl.Token.NUMBER, "123", 1, 1) - var identifier_token = animation_dsl.Token(animation_dsl.Token.IDENTIFIER, "test", 1, 1) - var paren_token = animation_dsl.Token(animation_dsl.Token.LEFT_PAREN, "(", 1, 1) - var keyword_token = animation_dsl.Token(animation_dsl.Token.KEYWORD, "color", 1, 1) - - assert(literal_token.can_start_expression()) - assert(identifier_token.can_start_expression()) - assert(paren_token.can_start_expression()) - assert(!keyword_token.can_start_expression()) - - assert(literal_token.can_end_expression()) - assert(identifier_token.can_end_expression()) - assert(!paren_token.can_end_expression()) + var literal_token = animation_dsl.Token(2 #-animation_dsl.Token.NUMBER-#, "123", 1, 1) + var identifier_token = animation_dsl.Token(1 #-animation_dsl.Token.IDENTIFIER-#, "test", 1, 1) + var paren_token = animation_dsl.Token(24 #-animation_dsl.Token.LEFT_PAREN-#, "(", 1, 1) + var keyword_token = animation_dsl.Token(0 #-animation_dsl.Token.KEYWORD-#, "color", 1, 1) print("✓ Token utilities test passed") return true @@ -220,10 +124,10 @@ end def test_token_string_representations() print("Testing Token string representations...") - var keyword_token = animation_dsl.Token(animation_dsl.Token.KEYWORD, "color", 1, 5) - var eof_token = animation_dsl.Token(animation_dsl.Token.EOF, "", 10, 1) - var error_token = animation_dsl.Token(animation_dsl.Token.ERROR, "Invalid character", 2, 8) - var long_token = animation_dsl.Token(animation_dsl.Token.STRING, "This is a very long string that should be truncated", 3, 1) + var keyword_token = animation_dsl.Token(0 #-animation_dsl.Token.KEYWORD-#, "color", 1, 5) + # EOF token removed - use ERROR token for testing instead + var error_token = animation_dsl.Token(39 #-animation_dsl.Token.ERROR-#, "Invalid character", 2, 8) + var long_token = animation_dsl.Token(3 #-animation_dsl.Token.STRING-#, "This is a very long string that should be truncated", 3, 1) # Test tostring var keyword_str = keyword_token.tostring() @@ -231,18 +135,11 @@ def test_token_string_representations() assert(string.find(keyword_str, "color") != -1) assert(string.find(keyword_str, "1:5") != -1) - var eof_str = eof_token.tostring() - assert(string.find(eof_str, "EOF") != -1) - assert(string.find(eof_str, "10:1") != -1) + # EOF token removed - skip EOF-specific string tests var long_str = long_token.tostring() assert(string.find(long_str, "...") != -1) # Should be truncated - - # Test to_error_string - assert(keyword_token.to_error_string() == "keyword 'color'") - assert(eof_token.to_error_string() == "end of file") - assert(error_token.to_error_string() == "invalid token 'Invalid character'") - + print("✓ Token string representations test passed") return true end @@ -251,25 +148,7 @@ end def test_utility_functions() print("Testing utility functions...") - # Test create_eof_token - var eof_token = animation_dsl.create_eof_token(5, 10) - assert(eof_token.type == animation_dsl.Token.EOF) - assert(eof_token.line == 5) - assert(eof_token.column == 10) - - # Test create_error_token - var error_token = animation_dsl.create_error_token("Test error", 3, 7) - assert(error_token.type == animation_dsl.Token.ERROR) - assert(error_token.value == "Test error") - assert(error_token.line == 3) - assert(error_token.column == 7) - - # Test create_newline_token - var newline_token = animation_dsl.create_newline_token(2, 15) - assert(newline_token.type == animation_dsl.Token.NEWLINE) - assert(newline_token.value == "\n") - assert(newline_token.line == 2) - assert(newline_token.column == 15) + # create_eof_token test removed - function deprecated with EOF token removal # Test is_keyword assert(animation_dsl.is_keyword("color")) @@ -290,19 +169,10 @@ def test_utility_functions() assert(!animation_dsl.is_color_name("my_color")) # Test operator precedence - var plus_token = animation_dsl.Token(animation_dsl.Token.PLUS, "+", 1, 1) - var multiply_token = animation_dsl.Token(animation_dsl.Token.MULTIPLY, "*", 1, 1) - var power_token = animation_dsl.Token(animation_dsl.Token.POWER, "^", 1, 1) - var and_token = animation_dsl.Token(animation_dsl.Token.LOGICAL_AND, "&&", 1, 1) - - assert(animation_dsl.get_operator_precedence(multiply_token) > animation_dsl.get_operator_precedence(plus_token)) - assert(animation_dsl.get_operator_precedence(power_token) > animation_dsl.get_operator_precedence(multiply_token)) - assert(animation_dsl.get_operator_precedence(plus_token) > animation_dsl.get_operator_precedence(and_token)) - - # Test associativity - assert(animation_dsl.is_right_associative(power_token)) - assert(!animation_dsl.is_right_associative(plus_token)) - assert(!animation_dsl.is_right_associative(multiply_token)) + var plus_token = animation_dsl.Token(9 #-animation_dsl.Token.PLUS-#, "+", 1, 1) + var multiply_token = animation_dsl.Token(11 #-animation_dsl.Token.MULTIPLY-#, "*", 1, 1) + var power_token = animation_dsl.Token(14 #-animation_dsl.Token.POWER-#, "^", 1, 1) + var and_token = animation_dsl.Token(21 #-animation_dsl.Token.LOGICAL_AND-#, "&&", 1, 1) print("✓ Utility functions test passed") return true @@ -313,7 +183,7 @@ def test_edge_cases() print("Testing edge cases...") # Test empty values - var empty_token = animation_dsl.Token(animation_dsl.Token.STRING, "", 1, 1) + var empty_token = animation_dsl.Token(3 #-animation_dsl.Token.STRING-#, "", 1, 1) assert(empty_token.value == "") assert(empty_token.length == 0) @@ -322,24 +192,14 @@ def test_edge_cases() for i : 0..99 long_value += "x" end - var long_token = animation_dsl.Token(animation_dsl.Token.STRING, long_value, 1, 1) + var long_token = animation_dsl.Token(3 #-animation_dsl.Token.STRING-#, long_value, 1, 1) assert(size(long_token.value) == 100) assert(long_token.length == 100) - - # Test invalid time formats (should not crash) - var invalid_time = animation_dsl.Token(animation_dsl.Token.TIME, "invalid", 1, 1) - assert(invalid_time.get_numeric_value() == nil) - + # Test invalid percentage formats - var invalid_percent = animation_dsl.Token(animation_dsl.Token.PERCENTAGE, "invalid%", 1, 1) + var invalid_percent = animation_dsl.Token(6 #-animation_dsl.Token.PERCENTAGE-#, "invalid%", 1, 1) # Should not crash, but may return nil or 0 - # Test boundary values - var zero_percent = animation_dsl.Token(animation_dsl.Token.PERCENTAGE, "0%", 1, 1) - var max_percent = animation_dsl.Token(animation_dsl.Token.PERCENTAGE, "100%", 1, 1) - assert(zero_percent.get_numeric_value() == 0) - assert(max_percent.get_numeric_value() == 255) - print("✓ Edge cases test passed") return true end @@ -349,7 +209,6 @@ def run_token_tests() print("=== Token System Test Suite ===") var tests = [ - test_token_type_constants, test_token_basic, test_token_type_checking, test_token_value_extraction,