# Core program # Defining function fgetc :FUNCTION_fgetc LOAD_IMMEDIATE_eax %3 LOAD_EFFECTIVE_ADDRESS_ebx %4 LOAD_INTEGER_ebx PUSH_ebx COPY_esp_to_ecx LOAD_IMMEDIATE_edx %1 INT_80 TEST POP_eax JUMP_NE8 !FUNCTION_fgetc_Done LOAD_IMMEDIATE_eax %-1 :FUNCTION_fgetc_Done RETURN # Defining function fputc :FUNCTION_fputc LOAD_IMMEDIATE_eax %4 LOAD_EFFECTIVE_ADDRESS_ebx %4 LOAD_INTEGER_ebx LOAD_EFFECTIVE_ADDRESS_ecx %8 LOAD_IMMEDIATE_edx %1 INT_80 RETURN # Defining function open :FUNCTION_open LOAD_EFFECTIVE_ADDRESS_ebx %12 LOAD_INTEGER_ebx LOAD_EFFECTIVE_ADDRESS_ecx %8 LOAD_INTEGER_ecx LOAD_EFFECTIVE_ADDRESS_edx %4 LOAD_INTEGER_edx LOAD_IMMEDIATE_eax %5 INT_80 RETURN # Defining function fopen :FUNCTION_fopen # Defining local f PUSH_eax #f # IF_fopen_0 LOAD_IMMEDIATE_eax %119 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_fopen_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %577 PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax %384 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_open POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_fopen_0 :ELSE_fopen_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_open POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_fopen_0 # IF_fopen_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETG MOVEZBL TEST JUMP_EQ %ELSE_fopen_1 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals RETURN JUMP %_END_IF_fopen_1 :ELSE_fopen_1 :_END_IF_fopen_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function close :FUNCTION_close LOAD_EFFECTIVE_ADDRESS_ebx %4 LOAD_IMMEDIATE_eax %6 INT_80 RETURN # Defining function fclose :FUNCTION_fclose # Defining local error LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_close POP_ebx # _process_expression_locals PUSH_eax #error LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function malloc :FUNCTION_malloc STORE_eax_into_ESP_IMMEDIATE8 !4 PUSH_eax LOAD_IMMEDIATE_eax %45 LOAD_IMMEDIATE_ebx %0 INT_80 POP_ebx ADD_eax_to_ebx PUSH_eax PUSH_ebx LOAD_IMMEDIATE_eax %45 INT_80 POP_ebx CMP POP_eax JUMP_EQ8 !FUNCTION_malloc_Done LOAD_IMMEDIATE_eax %-1 :FUNCTION_malloc_Done RETURN # Defining function memset :FUNCTION_memset # Defining local s PUSH_eax #s # FOR_initialization_memset_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_memset_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETL MOVEZBL TEST JUMP_EQ %FOR_END_memset_0 JUMP %FOR_THEN_memset_0 :FOR_ITER_memset_0 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_memset_0 :FOR_THEN_memset_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_ITER_memset_0 :FOR_END_memset_0 POP_ebx # _recursive_statement_locals RETURN # Defining function calloc :FUNCTION_calloc # Defining local ret LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion MULTIPLY_eax_by_ebx_into_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_malloc POP_ebx # _process_expression_locals PUSH_eax #ret LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion MULTIPLY_eax_by_ebx_into_eax PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_memset POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function free :FUNCTION_free RETURN # Defining function exit :FUNCTION_exit POP_ebx POP_ebx LOAD_IMMEDIATE_eax %1 INT_80 RETURN # Defining function match :FUNCTION_match # Defining local i LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax PUSH_eax #i :DO_match_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER # IF_match_1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_match_1 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals RETURN JUMP %_END_IF_match_1 :ELSE_match_1 :_END_IF_match_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_NE %DO_match_0 :DO_END_match_0 LOAD_IMMEDIATE_eax %1 POP_ebx # _return_result_locals RETURN # Defining function numerate_number :FUNCTION_numerate_number # Defining local result LOAD_IMMEDIATE_eax %16 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #result # Defining local i LOAD_IMMEDIATE_eax %0 PUSH_eax #i # IF_numerate_number_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_numerate_number_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %10 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_numerate_number_0 :ELSE_numerate_number_0 :_END_IF_numerate_number_0 # IF_numerate_number_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion CMP SETG MOVEZBL TEST JUMP_EQ %ELSE_numerate_number_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %45 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion MULTIPLY_eax_by_ebx_into_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_numerate_number_1 :ELSE_numerate_number_1 :_END_IF_numerate_number_1 # Defining local divisor LOAD_IMMEDIATE_eax %0x3B9ACA00 PUSH_eax #divisor :WHILE_numerate_number_2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion XCHG_eax_ebx LOAD_IMMEDIATE_edx %0 DIVIDE_eax_by_ebx_into_eax POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %END_WHILE_numerate_number_2 # THEN_while_numerate_number_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %10 POP_ebx # _common_recursion XCHG_eax_ebx LOAD_IMMEDIATE_edx %0 DIVIDE_eax_by_ebx_into_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_numerate_number_2 :END_WHILE_numerate_number_2 :WHILE_numerate_number_3 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETL MOVEZBL TEST JUMP_EQ %END_WHILE_numerate_number_3 # THEN_while_numerate_number_3 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion XCHG_eax_ebx LOAD_IMMEDIATE_edx %0 DIVIDE_eax_by_ebx_into_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion XCHG_eax_ebx LOAD_IMMEDIATE_edx %0 MODULUS_eax_from_ebx_into_ebx MOVE_edx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %10 POP_ebx # _common_recursion XCHG_eax_ebx LOAD_IMMEDIATE_edx %0 DIVIDE_eax_by_ebx_into_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_numerate_number_3 :END_WHILE_numerate_number_3 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function char2hex :FUNCTION_char2hex # IF_char2hex_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion CMP SETGE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %57 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_char2hex_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN JUMP %_END_IF_char2hex_0 :ELSE_char2hex_0 # IF_char2hex_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %97 POP_ebx # _common_recursion CMP SETGE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %102 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_char2hex_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %87 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN JUMP %_END_IF_char2hex_1 :ELSE_char2hex_1 # IF_char2hex_2 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %65 POP_ebx # _common_recursion CMP SETGE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %70 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_char2hex_2 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %55 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN JUMP %_END_IF_char2hex_2 :ELSE_char2hex_2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN :_END_IF_char2hex_2 :_END_IF_char2hex_1 :_END_IF_char2hex_0 RETURN # Defining function hex2char :FUNCTION_hex2char # IF_hex2char_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETGE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %9 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_hex2char_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion ADD_ebx_to_eax RETURN JUMP %_END_IF_hex2char_0 :ELSE_hex2char_0 # IF_hex2char_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %10 POP_ebx # _common_recursion CMP SETGE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %15 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_hex2char_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %55 POP_ebx # _common_recursion ADD_ebx_to_eax RETURN JUMP %_END_IF_hex2char_1 :ELSE_hex2char_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN :_END_IF_hex2char_1 :_END_IF_hex2char_0 RETURN # Defining function char2dec :FUNCTION_char2dec # IF_char2dec_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion CMP SETGE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %57 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_char2dec_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN JUMP %_END_IF_char2dec_0 :ELSE_char2dec_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN :_END_IF_char2dec_0 RETURN # Defining function dec2char :FUNCTION_dec2char # IF_dec2char_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETGE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %9 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_dec2char_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion ADD_ebx_to_eax RETURN JUMP %_END_IF_dec2char_0 :ELSE_dec2char_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax RETURN :_END_IF_dec2char_0 RETURN # Defining function numerate_string :FUNCTION_numerate_string # Defining local count LOAD_IMMEDIATE_eax %0 PUSH_eax #count # Defining local index PUSH_eax #index # Defining local negative PUSH_eax #negative # IF_numerate_string_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_numerate_string_0 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_numerate_string_0 :ELSE_numerate_string_0 # IF_numerate_string_1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %120 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_numerate_string_1 # IF_numerate_string_2 LOAD_IMMEDIATE_eax %45 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_numerate_string_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_numerate_string_2 :ELSE_numerate_string_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion STORE_INTEGER :_END_IF_numerate_string_2 :WHILE_numerate_string_3 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_numerate_string_3 # THEN_while_numerate_string_3 # IF_numerate_string_4 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_char2hex POP_ebx # _process_expression_locals POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_numerate_string_4 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_numerate_string_4 :ELSE_numerate_string_4 :_END_IF_numerate_string_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion MULTIPLY_eax_by_ebx_into_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_char2hex POP_ebx # _process_expression_locals POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_numerate_string_3 :END_WHILE_numerate_string_3 JUMP %_END_IF_numerate_string_1 :ELSE_numerate_string_1 # IF_numerate_string_5 LOAD_IMMEDIATE_eax %45 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_numerate_string_5 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_numerate_string_5 :ELSE_numerate_string_5 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion STORE_INTEGER :_END_IF_numerate_string_5 :WHILE_numerate_string_6 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_numerate_string_6 # THEN_while_numerate_string_6 # IF_numerate_string_7 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_char2dec POP_ebx # _process_expression_locals POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_numerate_string_7 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_numerate_string_7 :ELSE_numerate_string_7 :_END_IF_numerate_string_7 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %10 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion MULTIPLY_eax_by_ebx_into_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_char2dec POP_ebx # _process_expression_locals POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_numerate_string_6 :END_WHILE_numerate_string_6 :_END_IF_numerate_string_1 :_END_IF_numerate_string_0 # IF_numerate_string_8 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER TEST JUMP_EQ %ELSE_numerate_string_8 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion MULTIPLY_eax_by_ebx_into_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_numerate_string_8 :ELSE_numerate_string_8 :_END_IF_numerate_string_8 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function file_print :FUNCTION_file_print :WHILE_file_print_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_file_print_0 # THEN_while_file_print_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_fputc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_file_print_0 :END_WHILE_file_print_0 RETURN # Defining function copy_string :FUNCTION_copy_string :WHILE_copy_string_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_copy_string_0 # THEN_while_copy_string_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_copy_string_0 :END_WHILE_copy_string_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN # Defining function postpend_char :FUNCTION_postpend_char # Defining local ret LOAD_IMMEDIATE_eax %4096 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #ret # Defining local hold LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_copy_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #hold LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function prepend_char :FUNCTION_prepend_char # Defining local ret LOAD_IMMEDIATE_eax %4096 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #ret LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_copy_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function prepend_string :FUNCTION_prepend_string # Defining local ret LOAD_IMMEDIATE_eax %4096 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #ret LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_copy_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_copy_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function string_length :FUNCTION_string_length # Defining local i LOAD_IMMEDIATE_eax %0 PUSH_eax #i :WHILE_string_length_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_string_length_0 # THEN_while_string_length_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_string_length_0 :END_WHILE_string_length_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function clearWhiteSpace :FUNCTION_clearWhiteSpace # IF_clearWhiteSpace_0 LOAD_IMMEDIATE_eax %32 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %9 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_clearWhiteSpace_0 LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_clearWhiteSpace POP_ebx # _process_expression_locals RETURN JUMP %_END_IF_clearWhiteSpace_0 :ELSE_clearWhiteSpace_0 # IF_clearWhiteSpace_1 LOAD_IMMEDIATE_eax %10 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_clearWhiteSpace_1 LOAD_IMMEDIATE_eax &GLOBAL_line PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_line LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_clearWhiteSpace POP_ebx # _process_expression_locals RETURN JUMP %_END_IF_clearWhiteSpace_1 :ELSE_clearWhiteSpace_1 :_END_IF_clearWhiteSpace_1 :_END_IF_clearWhiteSpace_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER RETURN # Defining function consume_byte :FUNCTION_consume_byte LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_string_index LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_CHAR LOAD_IMMEDIATE_eax &GLOBAL_string_index PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_string_index LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals RETURN # Defining function consume_word :FUNCTION_consume_word # Defining local escape LOAD_IMMEDIATE_eax %0 PUSH_eax #escape :DO_consume_word_0 # IF_consume_word_1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion XOR_ebx_eax_into_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_consume_word_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_consume_word_1 :ELSE_consume_word_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion STORE_INTEGER :_END_IF_consume_word_1 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_consume_byte POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_NE %DO_consume_word_0 :DO_END_consume_word_0 LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals POP_ebx # _return_result_locals RETURN # Defining function fixup_label :FUNCTION_fixup_label # Defining local hold LOAD_IMMEDIATE_eax %58 PUSH_eax #hold # Defining local prev PUSH_eax #prev # Defining local i LOAD_IMMEDIATE_eax %0 PUSH_eax #i :DO_fixup_label_0 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_NE %DO_fixup_label_0 :DO_END_fixup_label_0 POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals RETURN # Defining function preserve_keyword :FUNCTION_preserve_keyword :WHILE_preserve_keyword_0 LOAD_IMMEDIATE_eax %97 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %122 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %65 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %90 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %57 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %95 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %END_WHILE_preserve_keyword_0 # THEN_while_preserve_keyword_0 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_consume_byte POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_preserve_keyword_0 :END_WHILE_preserve_keyword_0 # IF_preserve_keyword_1 LOAD_IMMEDIATE_eax %58 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_preserve_keyword_1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fixup_label POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %32 RETURN JUMP %_END_IF_preserve_keyword_1 :ELSE_preserve_keyword_1 :_END_IF_preserve_keyword_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER RETURN # Defining function preserve_symbol :FUNCTION_preserve_symbol :WHILE_preserve_symbol_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %60 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %61 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %62 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %124 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %38 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %33 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %45 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %END_WHILE_preserve_symbol_0 # THEN_while_preserve_symbol_0 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_consume_byte POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_preserve_symbol_0 :END_WHILE_preserve_symbol_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER RETURN # Defining function purge_macro :FUNCTION_purge_macro :WHILE_purge_macro_0 LOAD_IMMEDIATE_eax %10 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_purge_macro_0 # THEN_while_purge_macro_0 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_purge_macro_0 :END_WHILE_purge_macro_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER RETURN # Defining function get_token :FUNCTION_get_token # Defining local current LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #current LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4096 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :reset #C goto label LOAD_IMMEDIATE_eax &GLOBAL_string_index PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_clearWhiteSpace POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_get_token_0 LOAD_IMMEDIATE_eax %35 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_0 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_purge_macro POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %reset JUMP %_END_IF_get_token_0 :ELSE_get_token_0 # IF_get_token_1 LOAD_IMMEDIATE_eax %97 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %122 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %65 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %90 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %57 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %95 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_get_token_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_preserve_keyword POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_get_token_1 :ELSE_get_token_1 # IF_get_token_2 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %60 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %61 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %62 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %124 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %38 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %33 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %45 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_get_token_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_preserve_symbol POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_get_token_2 :ELSE_get_token_2 # IF_get_token_3 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %39 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_3 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax %39 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_consume_word POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_get_token_3 :ELSE_get_token_3 # IF_get_token_4 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %34 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax %34 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_consume_word POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_get_token_4 :ELSE_get_token_4 # IF_get_token_5 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %47 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_5 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_consume_byte POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_get_token_6 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %42 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_6 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :WHILE_get_token_7 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %47 POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_get_token_7 # THEN_while_get_token_7 :WHILE_get_token_8 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %42 POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_get_token_8 # THEN_while_get_token_8 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_get_token_9 LOAD_IMMEDIATE_eax %10 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_9 LOAD_IMMEDIATE_eax &GLOBAL_line PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_line LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_get_token_9 :ELSE_get_token_9 :_END_IF_get_token_9 JUMP %WHILE_get_token_8 :END_WHILE_get_token_8 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_get_token_10 LOAD_IMMEDIATE_eax %10 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_10 LOAD_IMMEDIATE_eax &GLOBAL_line PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_line LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_get_token_10 :ELSE_get_token_10 :_END_IF_get_token_10 JUMP %WHILE_get_token_7 :END_WHILE_get_token_7 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %reset JUMP %_END_IF_get_token_6 :ELSE_get_token_6 # IF_get_token_11 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %47 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_get_token_11 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %reset JUMP %_END_IF_get_token_11 :ELSE_get_token_11 :_END_IF_get_token_11 :_END_IF_get_token_6 JUMP %_END_IF_get_token_5 :ELSE_get_token_5 # IF_get_token_12 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETL MOVEZBL TEST JUMP_EQ %ELSE_get_token_12 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_free POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_get_token_12 :ELSE_get_token_12 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_consume_byte POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_get_token_12 :_END_IF_get_token_5 :_END_IF_get_token_4 :_END_IF_get_token_3 :_END_IF_get_token_2 :_END_IF_get_token_1 :_END_IF_get_token_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_token LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_token LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_line LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_file LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_token PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function reverse_list :FUNCTION_reverse_list # Defining local root LOAD_IMMEDIATE_eax %0 PUSH_eax #root :WHILE_reverse_list_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_reverse_list_0 # THEN_while_reverse_list_0 # Defining local next LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset LOAD_INTEGER PUSH_eax #next LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %WHILE_reverse_list_0 :END_WHILE_reverse_list_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function read_all_tokens :FUNCTION_read_all_tokens LOAD_IMMEDIATE_eax &GLOBAL_input PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_line PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_file PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_token PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local ch LOAD_IMMEDIATE_eax &GLOBAL_input LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_fgetc POP_ebx # _process_expression_locals PUSH_eax #ch :WHILE_read_all_tokens_0 LOAD_IMMEDIATE_eax %0xFFFFFFFF PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_read_all_tokens_0 # THEN_while_read_all_tokens_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_get_token POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_read_all_tokens_0 :END_WHILE_read_all_tokens_0 LOAD_IMMEDIATE_eax &GLOBAL_token LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function upcase :FUNCTION_upcase # IF_upcase_0 LOAD_IMMEDIATE_eax %97 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %122 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETGE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_upcase_0 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %32 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_upcase_0 :ELSE_upcase_0 :_END_IF_upcase_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER RETURN # Defining function hexify :FUNCTION_hexify # Defining local i LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_char2hex POP_ebx # _process_expression_locals PUSH_eax #i # IF_hexify_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETG MOVEZBL TEST JUMP_EQ %ELSE_hexify_0 LOAD_IMMEDIATE_eax &STRING_0 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_hexify_0 :ELSE_hexify_0 :_END_IF_hexify_0 # IF_hexify_1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER TEST JUMP_EQ %ELSE_hexify_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 COPY_eax_to_ecx POP_eax SAL_eax_cl POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_hexify_1 :ELSE_hexify_1 :_END_IF_hexify_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function weird :FUNCTION_weird # IF_weird_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_0 LOAD_IMMEDIATE_eax %0 RETURN JUMP %_END_IF_weird_0 :ELSE_weird_0 :_END_IF_weird_0 # IF_weird_1 LOAD_IMMEDIATE_eax %92 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_1 # IF_weird_2 LOAD_IMMEDIATE_eax %120 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_2 # IF_weird_3 LOAD_IMMEDIATE_eax %48 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_3 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_3 :ELSE_weird_3 # IF_weird_4 LOAD_IMMEDIATE_eax %49 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_4 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_4 :ELSE_weird_4 # IF_weird_5 LOAD_IMMEDIATE_eax %50 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_5 # IF_weird_6 LOAD_IMMEDIATE_eax %50 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_6 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_6 :ELSE_weird_6 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals RETURN :_END_IF_weird_6 JUMP %_END_IF_weird_5 :ELSE_weird_5 # IF_weird_7 LOAD_IMMEDIATE_eax %51 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_7 # IF_weird_8 LOAD_IMMEDIATE_eax %65 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_8 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_8 :ELSE_weird_8 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals RETURN :_END_IF_weird_8 JUMP %_END_IF_weird_7 :ELSE_weird_7 # IF_weird_9 LOAD_IMMEDIATE_eax %56 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_9 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_9 :ELSE_weird_9 # IF_weird_10 LOAD_IMMEDIATE_eax %57 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_10 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_10 :ELSE_weird_10 # IF_weird_11 LOAD_IMMEDIATE_eax %97 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_11 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_11 :ELSE_weird_11 # IF_weird_12 LOAD_IMMEDIATE_eax %65 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_12 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_12 :ELSE_weird_12 # IF_weird_13 LOAD_IMMEDIATE_eax %98 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_13 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_13 :ELSE_weird_13 # IF_weird_14 LOAD_IMMEDIATE_eax %66 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_14 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_14 :ELSE_weird_14 # IF_weird_15 LOAD_IMMEDIATE_eax %99 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_15 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_15 :ELSE_weird_15 # IF_weird_16 LOAD_IMMEDIATE_eax %67 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_16 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_16 :ELSE_weird_16 # IF_weird_17 LOAD_IMMEDIATE_eax %100 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_17 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_17 :ELSE_weird_17 # IF_weird_18 LOAD_IMMEDIATE_eax %68 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_18 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_18 :ELSE_weird_18 # IF_weird_19 LOAD_IMMEDIATE_eax %101 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_19 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_19 :ELSE_weird_19 # IF_weird_20 LOAD_IMMEDIATE_eax %69 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_20 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_20 :ELSE_weird_20 # IF_weird_21 LOAD_IMMEDIATE_eax %102 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_21 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_21 :ELSE_weird_21 # IF_weird_22 LOAD_IMMEDIATE_eax %70 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_22 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_22 :ELSE_weird_22 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals RETURN :_END_IF_weird_22 :_END_IF_weird_21 :_END_IF_weird_20 :_END_IF_weird_19 :_END_IF_weird_18 :_END_IF_weird_17 :_END_IF_weird_16 :_END_IF_weird_15 :_END_IF_weird_14 :_END_IF_weird_13 :_END_IF_weird_12 :_END_IF_weird_11 :_END_IF_weird_10 :_END_IF_weird_9 :_END_IF_weird_7 :_END_IF_weird_5 :_END_IF_weird_4 :_END_IF_weird_3 JUMP %_END_IF_weird_2 :ELSE_weird_2 # IF_weird_23 LOAD_IMMEDIATE_eax %110 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_23 # IF_weird_24 LOAD_IMMEDIATE_eax %58 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_24 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_24 :ELSE_weird_24 :_END_IF_weird_24 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals RETURN JUMP %_END_IF_weird_23 :ELSE_weird_23 # IF_weird_25 LOAD_IMMEDIATE_eax %116 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_25 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals RETURN JUMP %_END_IF_weird_25 :ELSE_weird_25 # IF_weird_26 LOAD_IMMEDIATE_eax %34 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_weird_26 LOAD_IMMEDIATE_eax %1 RETURN JUMP %_END_IF_weird_26 :ELSE_weird_26 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals RETURN :_END_IF_weird_26 :_END_IF_weird_25 :_END_IF_weird_23 :_END_IF_weird_2 JUMP %_END_IF_weird_1 :ELSE_weird_1 :_END_IF_weird_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals RETURN # Defining function escape_lookup :FUNCTION_escape_lookup # IF_escape_lookup_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %120 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_escape_lookup_0 # Defining local t1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_hexify POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #t1 # Defining local t2 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_hexify POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #t2 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_escape_lookup_0 :ELSE_escape_lookup_0 # IF_escape_lookup_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %110 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_escape_lookup_1 LOAD_IMMEDIATE_eax %10 RETURN JUMP %_END_IF_escape_lookup_1 :ELSE_escape_lookup_1 # IF_escape_lookup_2 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %116 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_escape_lookup_2 LOAD_IMMEDIATE_eax %9 RETURN JUMP %_END_IF_escape_lookup_2 :ELSE_escape_lookup_2 # IF_escape_lookup_3 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_escape_lookup_3 LOAD_IMMEDIATE_eax %92 RETURN JUMP %_END_IF_escape_lookup_3 :ELSE_escape_lookup_3 # IF_escape_lookup_4 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %39 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_escape_lookup_4 LOAD_IMMEDIATE_eax %39 RETURN JUMP %_END_IF_escape_lookup_4 :ELSE_escape_lookup_4 # IF_escape_lookup_5 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %34 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_escape_lookup_5 LOAD_IMMEDIATE_eax %34 RETURN JUMP %_END_IF_escape_lookup_5 :ELSE_escape_lookup_5 # IF_escape_lookup_6 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %114 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_escape_lookup_6 LOAD_IMMEDIATE_eax %13 RETURN JUMP %_END_IF_escape_lookup_6 :ELSE_escape_lookup_6 :_END_IF_escape_lookup_6 :_END_IF_escape_lookup_5 :_END_IF_escape_lookup_4 :_END_IF_escape_lookup_3 :_END_IF_escape_lookup_2 :_END_IF_escape_lookup_1 :_END_IF_escape_lookup_0 LOAD_IMMEDIATE_eax &STRING_1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_2 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals RETURN # Defining function collect_regular_string :FUNCTION_collect_regular_string # Defining local j LOAD_IMMEDIATE_eax %0 PUSH_eax #j # Defining local i LOAD_IMMEDIATE_eax %0 PUSH_eax #i # Defining local message LOAD_IMMEDIATE_eax %4096 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #message LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %34 POP_ebx # _common_recursion STORE_CHAR :WHILE_collect_regular_string_0 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_collect_regular_string_0 # THEN_while_collect_regular_string_0 # IF_collect_regular_string_1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %120 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_collect_regular_string_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_escape_lookup POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_regular_string_1 :ELSE_collect_regular_string_1 # IF_collect_regular_string_2 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_collect_regular_string_2 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_escape_lookup POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_regular_string_2 :ELSE_collect_regular_string_2 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER :_END_IF_collect_regular_string_2 :_END_IF_collect_regular_string_1 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_collect_regular_string_0 :END_WHILE_collect_regular_string_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %34 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %10 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function collect_weird_string :FUNCTION_collect_weird_string # Defining local j LOAD_IMMEDIATE_eax %1 PUSH_eax #j # Defining local k LOAD_IMMEDIATE_eax %1 PUSH_eax #k # Defining local table LOAD_IMMEDIATE_eax &STRING_3 PUSH_eax #table # Defining local hold LOAD_IMMEDIATE_eax %4096 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #hold LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %39 POP_ebx # _common_recursion STORE_CHAR :WHILE_collect_weird_string_0 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_collect_weird_string_0 # THEN_while_collect_weird_string_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %32 POP_ebx # _common_recursion STORE_CHAR # IF_collect_weird_string_1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %120 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_collect_weird_string_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_upcase POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_upcase POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_weird_string_1 :ELSE_collect_weird_string_1 # IF_collect_weird_string_2 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %110 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_collect_weird_string_2 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %65 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_weird_string_2 :ELSE_collect_weird_string_2 # IF_collect_weird_string_3 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %92 POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %116 POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_collect_weird_string_3 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %57 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_weird_string_3 :ELSE_collect_weird_string_3 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 COPY_eax_to_ecx POP_eax SAR_eax_cl POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %15 POP_ebx # _common_recursion AND_eax_ebx POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER :_END_IF_collect_weird_string_3 :_END_IF_collect_weird_string_2 :_END_IF_collect_weird_string_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_collect_weird_string_0 :END_WHILE_collect_weird_string_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %32 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %48 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %3 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %39 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %10 POP_ebx # _common_recursion STORE_CHAR LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function parse_string :FUNCTION_parse_string # IF_parse_string_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_weird POP_ebx # _process_expression_locals PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %58 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_parse_string_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_collect_weird_string POP_ebx # _process_expression_locals RETURN JUMP %_END_IF_parse_string_0 :ELSE_parse_string_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_collect_regular_string POP_ebx # _process_expression_locals RETURN :_END_IF_parse_string_0 RETURN # Defining function initialize_types :FUNCTION_initialize_types LOAD_IMMEDIATE_eax &GLOBAL_global_types PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_4 POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local a LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #a LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_5 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local b LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #b LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_6 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local c LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #c LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_7 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local d LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #d LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_8 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local e LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #e LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_9 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local f LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #f LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_10 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals RETURN # Defining function lookup_type :FUNCTION_lookup_type # Defining local i PUSH_eax #i # FOR_initialization_lookup_type_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_lookup_type_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_lookup_type_0 JUMP %FOR_THEN_lookup_type_0 :FOR_ITER_lookup_type_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_lookup_type_0 :FOR_THEN_lookup_type_0 # IF_lookup_type_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_lookup_type_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_lookup_type_1 :ELSE_lookup_type_1 :_END_IF_lookup_type_1 JUMP %FOR_ITER_lookup_type_0 :FOR_END_lookup_type_0 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals RETURN # Defining function build_member :FUNCTION_build_member # Defining local member_type CALL_IMMEDIATE %FUNCTION_type_name PUSH_eax #member_type # Defining local i LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #i LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_member_size PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function build_union :FUNCTION_build_union # Defining local size LOAD_IMMEDIATE_eax %0 PUSH_eax #size LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_11 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_12 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals :WHILE_build_union_0 LOAD_IMMEDIATE_eax %125 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_build_union_0 # THEN_while_build_union_0 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_build_member POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_build_union_1 LOAD_IMMEDIATE_eax &GLOBAL_member_size LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETG MOVEZBL TEST JUMP_EQ %ELSE_build_union_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_member_size LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_build_union_1 :ELSE_build_union_1 :_END_IF_build_union_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_13 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_14 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals JUMP %WHILE_build_union_0 :END_WHILE_build_union_0 LOAD_IMMEDIATE_eax &GLOBAL_member_size PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function create_struct :FUNCTION_create_struct # Defining local offset LOAD_IMMEDIATE_eax %0 PUSH_eax #offset # Defining local head LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #head # Defining local i LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #i LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_types PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_15 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_16 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # Defining local last LOAD_IMMEDIATE_eax %0 PUSH_eax #last :WHILE_create_struct_0 LOAD_IMMEDIATE_eax %125 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_create_struct_0 # THEN_while_create_struct_0 # IF_create_struct_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_17 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_create_struct_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_build_union POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_create_struct_1 :ELSE_create_struct_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_build_member POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_create_struct_1 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_member_size LOAD_INTEGER POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_18 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_19 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals JUMP %WHILE_create_struct_0 :END_WHILE_create_struct_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_20 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_21 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals RETURN # Defining function type_name :FUNCTION_type_name # Defining local structure LOAD_IMMEDIATE_eax %0 PUSH_eax #structure # IF_type_name_0 LOAD_IMMEDIATE_eax &STRING_22 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_type_name_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_type_name_0 :ELSE_type_name_0 :_END_IF_type_name_0 # Defining local ret LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_lookup_type POP_ebx # _process_expression_locals PUSH_eax #ret # IF_type_name_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion XOR_ebx_eax_into_eax POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_type_name_1 LOAD_IMMEDIATE_eax &STRING_23 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_24 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_type_name_1 :ELSE_type_name_1 # IF_type_name_2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_type_name_2 CALL_IMMEDIATE %FUNCTION_create_struct LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_type_name_2 :ELSE_type_name_2 :_END_IF_type_name_2 :_END_IF_type_name_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :WHILE_type_name_3 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %42 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %END_WHILE_type_name_3 # THEN_while_type_name_3 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_type_name_3 :END_WHILE_type_name_3 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function line_error :FUNCTION_line_error LOAD_IMMEDIATE_eax &STRING_25 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_26 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals RETURN # Defining function require_match :FUNCTION_require_match # IF_require_match_0 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_require_match_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_require_match_0 :ELSE_require_match_0 :_END_IF_require_match_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER RETURN # Defining function emit :FUNCTION_emit # Defining local t LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #t LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function sym_declare :FUNCTION_sym_declare # Defining local a LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #a LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function sym_lookup :FUNCTION_sym_lookup # Defining local i PUSH_eax #i # FOR_initialization_sym_lookup_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_sym_lookup_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_sym_lookup_0 JUMP %FOR_THEN_sym_lookup_0 :FOR_ITER_sym_lookup_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_sym_lookup_0 :FOR_THEN_sym_lookup_0 # IF_sym_lookup_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_sym_lookup_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_lookup_1 :ELSE_sym_lookup_1 :_END_IF_sym_lookup_1 JUMP %FOR_ITER_sym_lookup_0 :FOR_END_sym_lookup_0 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals RETURN # Defining function stack_index :FUNCTION_stack_index # Defining local depth LOAD_IMMEDIATE_eax %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion MULTIPLY_eax_by_ebx_into_eax PUSH_eax #depth # Defining local i PUSH_eax #i # FOR_initialization_stack_index_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_stack_index_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_stack_index_0 JUMP %FOR_THEN_stack_index_0 :FOR_ITER_stack_index_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_stack_index_0 :FOR_THEN_stack_index_0 # IF_stack_index_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_stack_index_1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_stack_index_1 :ELSE_stack_index_1 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER :_END_IF_stack_index_1 JUMP %FOR_ITER_stack_index_0 :FOR_END_stack_index_0 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER # FOR_initialization_stack_index_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_stack_index_2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_stack_index_2 JUMP %FOR_THEN_stack_index_2 :FOR_ITER_stack_index_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_stack_index_2 :FOR_THEN_stack_index_2 # IF_stack_index_3 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_stack_index_3 # IF_stack_index_4 LOAD_IMMEDIATE_eax &STRING_27 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_stack_index_4 # IF_stack_index_5 LOAD_IMMEDIATE_eax &STRING_28 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_stack_index_5 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_stack_index_5 :ELSE_stack_index_5 # IF_stack_index_6 LOAD_IMMEDIATE_eax &STRING_29 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_stack_index_6 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_stack_index_6 :ELSE_stack_index_6 :_END_IF_stack_index_6 :_END_IF_stack_index_5 JUMP %_END_IF_stack_index_4 :ELSE_stack_index_4 :_END_IF_stack_index_4 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_stack_index_3 :ELSE_stack_index_3 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %4 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER :_END_IF_stack_index_3 JUMP %FOR_ITER_stack_index_2 :FOR_END_stack_index_2 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_30 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_31 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals RETURN # Defining function function_call :FUNCTION_function_call LOAD_IMMEDIATE_eax &STRING_32 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_33 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # Defining local passed LOAD_IMMEDIATE_eax %0 PUSH_eax #passed # IF_function_call_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %41 POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_function_call_0 LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_34 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER :WHILE_function_call_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %44 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %END_WHILE_function_call_1 # THEN_while_function_call_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_35 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_function_call_1 :END_WHILE_function_call_1 JUMP %_END_IF_function_call_0 :ELSE_function_call_0 :_END_IF_function_call_0 LOAD_IMMEDIATE_eax &STRING_36 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_37 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # IF_function_call_2 LOAD_IMMEDIATE_eax %2 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_function_call_2 # Defining local a LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #a LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_38 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %32 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_stack_index POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %32 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_39 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %32 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_function_call_2 :ELSE_function_call_2 # IF_function_call_3 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_function_call_3 # Defining local a LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #a LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_40 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %32 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_stack_index POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %32 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_41 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %32 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_function_call_3 :ELSE_function_call_3 LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_42 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %10 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postpend_char POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_function_call_3 :_END_IF_function_call_2 # FOR_initialization_function_call_4 :FOR_function_call_4 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETG MOVEZBL TEST JUMP_EQ %FOR_END_function_call_4 JUMP %FOR_THEN_function_call_4 :FOR_ITER_function_call_4 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_function_call_4 :FOR_THEN_function_call_4 LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_43 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_ITER_function_call_4 :FOR_END_function_call_4 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function sym_get_value :FUNCTION_sym_get_value LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local a LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_constant_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #a # IF_sym_get_value_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_sym_get_value_0 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_44 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %10 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postpend_char POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_0 :ELSE_sym_get_value_0 :_END_IF_sym_get_value_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_sym_get_value_1 # IF_sym_get_value_2 LOAD_IMMEDIATE_eax &STRING_45 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_sym_get_value_2 # IF_sym_get_value_3 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_46 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_sym_get_value_3 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_47 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_stack_index POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_48 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_3 :ELSE_sym_get_value_3 :_END_IF_sym_get_value_3 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_function_call POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_2 :ELSE_sym_get_value_2 :_END_IF_sym_get_value_2 LOAD_IMMEDIATE_eax &GLOBAL_current_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_49 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_stack_index POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_50 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_4 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_51 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_sym_get_value_4 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_52 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_sym_get_value_4 :ELSE_sym_get_value_4 :_END_IF_sym_get_value_4 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_1 :ELSE_sym_get_value_1 :_END_IF_sym_get_value_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_5 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_sym_get_value_5 LOAD_IMMEDIATE_eax &GLOBAL_current_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_6 LOAD_IMMEDIATE_eax &STRING_53 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_sym_get_value_6 # IF_sym_get_value_7 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_54 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_sym_get_value_7 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_55 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_stack_index POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_56 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_7 :ELSE_sym_get_value_7 :_END_IF_sym_get_value_7 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_function_call POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_6 :ELSE_sym_get_value_6 :_END_IF_sym_get_value_6 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_57 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_stack_index POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_58 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_8 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_59 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_60 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_sym_get_value_8 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_61 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_sym_get_value_8 :ELSE_sym_get_value_8 :_END_IF_sym_get_value_8 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_5 :ELSE_sym_get_value_5 :_END_IF_sym_get_value_5 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_function_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_9 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_sym_get_value_9 # IF_sym_get_value_10 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_62 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_sym_get_value_10 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_63 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %10 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postpend_char POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_10 :ELSE_sym_get_value_10 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_function_call POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _return_result_locals RETURN :_END_IF_sym_get_value_10 JUMP %_END_IF_sym_get_value_9 :ELSE_sym_get_value_9 :_END_IF_sym_get_value_9 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_symbol_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_11 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_sym_get_value_11 LOAD_IMMEDIATE_eax &GLOBAL_current_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_64 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %10 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postpend_char POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_sym_get_value_12 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_65 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_sym_get_value_12 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_66 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_sym_get_value_12 :ELSE_sym_get_value_12 :_END_IF_sym_get_value_12 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_sym_get_value_11 :ELSE_sym_get_value_11 :_END_IF_sym_get_value_11 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_67 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals POP_ebx # _recursive_statement_locals RETURN # Defining function primary_expr :FUNCTION_primary_expr # IF_primary_expr_0 LOAD_IMMEDIATE_eax %48 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %57 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx TEST JUMP_EQ %ELSE_primary_expr_0 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_68 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %10 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postpend_char POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_primary_expr_0 :ELSE_primary_expr_0 # IF_primary_expr_1 LOAD_IMMEDIATE_eax %97 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %122 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %65 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETLE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %90 POP_ebx # _common_recursion CMP SETLE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_primary_expr_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_get_value POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_primary_expr_1 :ELSE_primary_expr_1 # IF_primary_expr_2 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %40 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_primary_expr_2 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_69 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_70 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals JUMP %_END_IF_primary_expr_2 :ELSE_primary_expr_2 # IF_primary_expr_3 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %39 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_primary_expr_3 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_71 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_primary_expr_4 LOAD_IMMEDIATE_eax %92 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_primary_expr_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_escape_lookup POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_primary_expr_4 :ELSE_primary_expr_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_primary_expr_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_72 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_primary_expr_3 :ELSE_primary_expr_3 # IF_primary_expr_5 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %34 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_primary_expr_5 # Defining local number_string LOAD_IMMEDIATE_eax &GLOBAL_string_num LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #number_string LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_73 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_74 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_strings_list PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_75 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_strings_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_strings_list PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_strings_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_strings_list PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_76 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_strings_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_strings_list PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_parse_string POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_strings_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_string_num PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_string_num LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_primary_expr_5 :ELSE_primary_expr_5 LOAD_IMMEDIATE_eax &STRING_77 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_78 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals :_END_IF_primary_expr_5 :_END_IF_primary_expr_3 :_END_IF_primary_expr_2 :_END_IF_primary_expr_1 :_END_IF_primary_expr_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN # Defining function pre_recursion :FUNCTION_pre_recursion LOAD_IMMEDIATE_eax &GLOBAL_last_type PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_target LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_79 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN # Defining function promote_type :FUNCTION_promote_type # IF_promote_type_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_promote_type_0 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER RETURN JUMP %_END_IF_promote_type_0 :ELSE_promote_type_0 :_END_IF_promote_type_0 # IF_promote_type_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_promote_type_1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN JUMP %_END_IF_promote_type_1 :ELSE_promote_type_1 :_END_IF_promote_type_1 # Defining local i PUSH_eax #i # FOR_initialization_promote_type_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_types LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_promote_type_2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_promote_type_2 JUMP %FOR_THEN_promote_type_2 :FOR_ITER_promote_type_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_promote_type_2 :FOR_THEN_promote_type_2 # IF_promote_type_3 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_promote_type_3 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_promote_type_3 :ELSE_promote_type_3 :_END_IF_promote_type_3 # IF_promote_type_4 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_promote_type_4 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_promote_type_4 :ELSE_promote_type_4 :_END_IF_promote_type_4 # IF_promote_type_5 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_promote_type_5 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_promote_type_5 :ELSE_promote_type_5 :_END_IF_promote_type_5 # IF_promote_type_6 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_promote_type_6 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _return_result_locals RETURN JUMP %_END_IF_promote_type_6 :ELSE_promote_type_6 :_END_IF_promote_type_6 JUMP %FOR_ITER_promote_type_2 :FOR_END_promote_type_2 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals RETURN # Defining function post_recursion :FUNCTION_post_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_target PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_target LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_last_type LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_promote_type POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_80 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN # Defining function ceil_log2 :FUNCTION_ceil_log2 # Defining local result LOAD_IMMEDIATE_eax %0 PUSH_eax #result # IF_ceil_log2_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion AND_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_ceil_log2_0 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_ceil_log2_0 :ELSE_ceil_log2_0 :_END_IF_ceil_log2_0 :WHILE_ceil_log2_1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion CMP SETG MOVEZBL TEST JUMP_EQ %END_WHILE_ceil_log2_1 # THEN_while_ceil_log2_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 COPY_eax_to_ecx POP_eax SAR_eax_cl POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_ceil_log2_1 :END_WHILE_ceil_log2_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function postfix_expr :FUNCTION_postfix_expr LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_primary_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :WHILE_postfix_expr_0 LOAD_IMMEDIATE_eax %1 TEST JUMP_EQ %END_WHILE_postfix_expr_0 # THEN_while_postfix_expr_0 # IF_postfix_expr_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %91 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_postfix_expr_1 # Defining local target LOAD_IMMEDIATE_eax &GLOBAL_current_target LOAD_INTEGER PUSH_eax #target # Defining local a LOAD_IMMEDIATE_eax &GLOBAL_current_target LOAD_INTEGER PUSH_eax #a LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_postfix_expr_2 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_postfix_expr_2 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_81 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_ceil_log2 POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_82 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_postfix_expr_2 :ELSE_postfix_expr_2 :_END_IF_postfix_expr_2 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_83 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_current_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # IF_postfix_expr_3 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_84 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_postfix_expr_3 # IF_postfix_expr_4 LOAD_IMMEDIATE_eax %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_postfix_expr_4 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_85 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_postfix_expr_4 :ELSE_postfix_expr_4 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_86 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_postfix_expr_4 JUMP %_END_IF_postfix_expr_3 :ELSE_postfix_expr_3 :_END_IF_postfix_expr_3 LOAD_IMMEDIATE_eax &STRING_87 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_88 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals JUMP %_END_IF_postfix_expr_1 :ELSE_postfix_expr_1 # IF_postfix_expr_5 LOAD_IMMEDIATE_eax &STRING_89 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_postfix_expr_5 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_90 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local i PUSH_eax #i # FOR_initialization_postfix_expr_6 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_target LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_postfix_expr_6 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_postfix_expr_6 JUMP %FOR_THEN_postfix_expr_6 :FOR_ITER_postfix_expr_6 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_postfix_expr_6 :FOR_THEN_postfix_expr_6 # IF_postfix_expr_7 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_postfix_expr_7 JUMP %FOR_END_postfix_expr_6 JUMP %_END_IF_postfix_expr_7 :ELSE_postfix_expr_7 :_END_IF_postfix_expr_7 JUMP %FOR_ITER_postfix_expr_6 :FOR_END_postfix_expr_6 # IF_postfix_expr_8 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_postfix_expr_8 LOAD_IMMEDIATE_eax &STRING_91 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_current_target LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_92 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_93 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_postfix_expr_8 :ELSE_postfix_expr_8 :_END_IF_postfix_expr_8 # IF_postfix_expr_9 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_postfix_expr_9 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_94 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_95 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_96 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_postfix_expr_9 :ELSE_postfix_expr_9 :_END_IF_postfix_expr_9 # IF_postfix_expr_10 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_97 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_postfix_expr_10 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_98 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_postfix_expr_10 :ELSE_postfix_expr_10 :_END_IF_postfix_expr_10 LOAD_IMMEDIATE_eax &GLOBAL_current_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_postfix_expr_5 :ELSE_postfix_expr_5 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN :_END_IF_postfix_expr_5 :_END_IF_postfix_expr_1 JUMP %WHILE_postfix_expr_0 :END_WHILE_postfix_expr_0 RETURN # Defining function unary_expr :FUNCTION_unary_expr # IF_unary_expr_0 LOAD_IMMEDIATE_eax &STRING_99 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_unary_expr_0 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_100 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postfix_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_101 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_unary_expr_0 :ELSE_unary_expr_0 # IF_unary_expr_1 LOAD_IMMEDIATE_eax &STRING_102 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_unary_expr_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_103 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postfix_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_104 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_unary_expr_1 :ELSE_unary_expr_1 # IF_unary_expr_2 LOAD_IMMEDIATE_eax &STRING_105 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_unary_expr_2 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_106 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_107 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # Defining local a CALL_IMMEDIATE %FUNCTION_type_name PUSH_eax #a LOAD_IMMEDIATE_eax &STRING_108 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_109 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_110 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_111 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_unary_expr_2 :ELSE_unary_expr_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_postfix_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_unary_expr_2 :_END_IF_unary_expr_1 :_END_IF_unary_expr_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN # Defining function additive_expr :FUNCTION_additive_expr LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_unary_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :WHILE_additive_expr_0 LOAD_IMMEDIATE_eax %1 TEST JUMP_EQ %END_WHILE_additive_expr_0 # THEN_while_additive_expr_0 # IF_additive_expr_1 LOAD_IMMEDIATE_eax &STRING_112 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_additive_expr_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_unary_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_113 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_additive_expr_1 :ELSE_additive_expr_1 # IF_additive_expr_2 LOAD_IMMEDIATE_eax &STRING_114 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_additive_expr_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_unary_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_115 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_additive_expr_2 :ELSE_additive_expr_2 # IF_additive_expr_3 LOAD_IMMEDIATE_eax &STRING_116 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_additive_expr_3 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_unary_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_117 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_additive_expr_3 :ELSE_additive_expr_3 # IF_additive_expr_4 LOAD_IMMEDIATE_eax &STRING_118 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_additive_expr_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_unary_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_119 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_additive_expr_4 :ELSE_additive_expr_4 # IF_additive_expr_5 LOAD_IMMEDIATE_eax &STRING_120 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_additive_expr_5 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_unary_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_121 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_additive_expr_5 :ELSE_additive_expr_5 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN :_END_IF_additive_expr_5 :_END_IF_additive_expr_4 :_END_IF_additive_expr_3 :_END_IF_additive_expr_2 :_END_IF_additive_expr_1 JUMP %WHILE_additive_expr_0 :END_WHILE_additive_expr_0 RETURN # Defining function shift_expr :FUNCTION_shift_expr LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_additive_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :WHILE_shift_expr_0 LOAD_IMMEDIATE_eax %1 TEST JUMP_EQ %END_WHILE_shift_expr_0 # THEN_while_shift_expr_0 # IF_shift_expr_1 LOAD_IMMEDIATE_eax &STRING_122 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_shift_expr_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_additive_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # Defining local old LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset LOAD_INTEGER PUSH_eax #old LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_free POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_123 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_shift_expr_1 :ELSE_shift_expr_1 # IF_shift_expr_2 LOAD_IMMEDIATE_eax &STRING_124 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_shift_expr_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_additive_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # Defining local old LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset LOAD_INTEGER PUSH_eax #old LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_free POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_125 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_shift_expr_2 :ELSE_shift_expr_2 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN :_END_IF_shift_expr_2 :_END_IF_shift_expr_1 JUMP %WHILE_shift_expr_0 :END_WHILE_shift_expr_0 RETURN # Defining function relational_expr :FUNCTION_relational_expr LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_shift_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :WHILE_relational_expr_0 LOAD_IMMEDIATE_eax %1 TEST JUMP_EQ %END_WHILE_relational_expr_0 # THEN_while_relational_expr_0 # IF_relational_expr_1 LOAD_IMMEDIATE_eax &STRING_126 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_relational_expr_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_shift_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_127 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_relational_expr_1 :ELSE_relational_expr_1 # IF_relational_expr_2 LOAD_IMMEDIATE_eax &STRING_128 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_relational_expr_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_shift_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_129 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_relational_expr_2 :ELSE_relational_expr_2 # IF_relational_expr_3 LOAD_IMMEDIATE_eax &STRING_130 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_relational_expr_3 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_shift_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_131 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_relational_expr_3 :ELSE_relational_expr_3 # IF_relational_expr_4 LOAD_IMMEDIATE_eax &STRING_132 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_relational_expr_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_shift_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_133 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_relational_expr_4 :ELSE_relational_expr_4 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN :_END_IF_relational_expr_4 :_END_IF_relational_expr_3 :_END_IF_relational_expr_2 :_END_IF_relational_expr_1 JUMP %WHILE_relational_expr_0 :END_WHILE_relational_expr_0 RETURN # Defining function equality_expr :FUNCTION_equality_expr LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_relational_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :WHILE_equality_expr_0 LOAD_IMMEDIATE_eax %1 TEST JUMP_EQ %END_WHILE_equality_expr_0 # THEN_while_equality_expr_0 # IF_equality_expr_1 LOAD_IMMEDIATE_eax &STRING_134 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_equality_expr_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_relational_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_135 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_equality_expr_1 :ELSE_equality_expr_1 # IF_equality_expr_2 LOAD_IMMEDIATE_eax &STRING_136 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_equality_expr_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_relational_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_137 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_equality_expr_2 :ELSE_equality_expr_2 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN :_END_IF_equality_expr_2 :_END_IF_equality_expr_1 JUMP %WHILE_equality_expr_0 :END_WHILE_equality_expr_0 RETURN # Defining function bitwise :FUNCTION_bitwise LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_equality_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :WHILE_bitwise_0 LOAD_IMMEDIATE_eax %1 TEST JUMP_EQ %END_WHILE_bitwise_0 # THEN_while_bitwise_0 # IF_bitwise_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %38 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_bitwise_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_equality_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_138 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_bitwise_1 :ELSE_bitwise_1 # IF_bitwise_2 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %124 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_bitwise_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_equality_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_139 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_bitwise_2 :ELSE_bitwise_2 # IF_bitwise_3 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %94 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_bitwise_3 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_equality_expr POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_140 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_bitwise_3 :ELSE_bitwise_3 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN :_END_IF_bitwise_3 :_END_IF_bitwise_2 :_END_IF_bitwise_1 JUMP %WHILE_bitwise_0 :END_WHILE_bitwise_0 RETURN # Defining function expression :FUNCTION_expression LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_bitwise POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_expression_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %61 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_expression_0 # Defining local target LOAD_IMMEDIATE_eax &GLOBAL_current_target LOAD_INTEGER PUSH_eax #target # Defining local member LOAD_IMMEDIATE_eax &STRING_141 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #member LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_pre_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_post_recursion POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_expression_1 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER TEST JUMP_EQ %ELSE_expression_1 # IF_expression_2 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_expression_2 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_142 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_expression_2 :ELSE_expression_2 # IF_expression_3 LOAD_IMMEDIATE_eax %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_expression_3 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_143 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_expression_3 :ELSE_expression_3 :_END_IF_expression_3 :_END_IF_expression_2 JUMP %_END_IF_expression_1 :ELSE_expression_1 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_144 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER :_END_IF_expression_1 POP_ebx # _recursive_statement_locals POP_ebx # _recursive_statement_locals JUMP %_END_IF_expression_0 :ELSE_expression_0 :_END_IF_expression_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN # Defining function collect_local :FUNCTION_collect_local # Defining local type_size CALL_IMMEDIATE %FUNCTION_type_name PUSH_eax #type_size LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_145 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_146 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # Defining local a LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_declare POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #a LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER # IF_collect_local_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %61 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_collect_local_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_local_0 :ELSE_collect_local_0 :_END_IF_collect_local_0 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %24 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_147 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_148 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_149 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_150 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function process_if :FUNCTION_process_if # Defining local number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_151 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_152 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_153 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_154 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_155 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_156 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_157 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_158 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_159 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_160 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_161 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_162 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_163 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_164 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_165 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_process_if_0 LOAD_IMMEDIATE_eax &STRING_166 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_process_if_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_process_if_0 :ELSE_process_if_0 :_END_IF_process_if_0 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_167 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_168 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_169 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function process_for :FUNCTION_process_for # Defining local number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER # Defining local nested_break LOAD_IMMEDIATE_eax &GLOBAL_break_target LOAD_INTEGER PUSH_eax #nested_break # Defining local nested_locals LOAD_IMMEDIATE_eax &GLOBAL_break_locals LOAD_INTEGER PUSH_eax #nested_locals LOAD_IMMEDIATE_eax &GLOBAL_break_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_target PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_170 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_171 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_172 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_173 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_174 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_175 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_176 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # IF_process_for_0 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_177 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_process_for_0 LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_process_for_0 :ELSE_process_for_0 :_END_IF_process_for_0 LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_178 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_179 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_180 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_181 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_182 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_183 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_184 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_185 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_186 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_187 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_188 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_189 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_190 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_191 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_192 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_193 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_194 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_195 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_196 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_197 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_198 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_199 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_200 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_201 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_202 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_203 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function process_asm :FUNCTION_process_asm LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_204 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_205 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals :WHILE_process_asm_0 LOAD_IMMEDIATE_eax %34 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %END_WHILE_process_asm_0 # THEN_while_process_asm_0 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_206 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_process_asm_0 :END_WHILE_process_asm_0 LOAD_IMMEDIATE_eax &STRING_207 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_208 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_209 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_210 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER RETURN # Defining function process_do :FUNCTION_process_do # Defining local number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER # Defining local nested_break LOAD_IMMEDIATE_eax &GLOBAL_break_target LOAD_INTEGER PUSH_eax #nested_break # Defining local nested_locals LOAD_IMMEDIATE_eax &GLOBAL_break_locals LOAD_INTEGER PUSH_eax #nested_locals LOAD_IMMEDIATE_eax &GLOBAL_break_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_target PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_211 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_212 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_213 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_214 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_215 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_216 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_217 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_218 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_219 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_220 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_221 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_222 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_223 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_224 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_225 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_226 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_227 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_228 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function process_while :FUNCTION_process_while # Defining local number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_numerate_number POP_ebx # _process_expression_locals PUSH_eax #number_string LOAD_IMMEDIATE_eax &GLOBAL_current_count PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_count LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER # Defining local nested_break LOAD_IMMEDIATE_eax &GLOBAL_break_target LOAD_INTEGER PUSH_eax #nested_break # Defining local nested_locals LOAD_IMMEDIATE_eax &GLOBAL_break_locals LOAD_INTEGER PUSH_eax #nested_locals LOAD_IMMEDIATE_eax &GLOBAL_break_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_target PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_229 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_230 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_231 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_232 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_233 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_234 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_235 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_236 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_237 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_238 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_239 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_240 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_241 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_242 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_243 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_244 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_245 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_current_function LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_246 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_247 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %28 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_break_target PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function return_result :FUNCTION_return_result LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # IF_return_result_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %59 POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_return_result_0 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_return_result_0 :ELSE_return_result_0 :_END_IF_return_result_0 LOAD_IMMEDIATE_eax &STRING_248 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_249 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # Defining local i PUSH_eax #i # FOR_initialization_return_result_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_return_result_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_return_result_1 JUMP %FOR_THEN_return_result_1 :FOR_ITER_return_result_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_return_result_1 :FOR_THEN_return_result_1 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_250 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_ITER_return_result_1 :FOR_END_return_result_1 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_251 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function recursive_statement :FUNCTION_recursive_statement LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # Defining local frame LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #frame :WHILE_recursive_statement_0 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_252 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %END_WHILE_recursive_statement_0 # THEN_while_recursive_statement_0 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_recursive_statement_0 :END_WHILE_recursive_statement_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # IF_recursive_statement_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_recursive_statement_1 # Defining local i PUSH_eax #i # FOR_initialization_recursive_statement_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :FOR_recursive_statement_2 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %FOR_END_recursive_statement_2 JUMP %FOR_THEN_recursive_statement_2 :FOR_ITER_recursive_statement_2 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_recursive_statement_2 :FOR_THEN_recursive_statement_2 # IF_recursive_statement_3 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_253 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_recursive_statement_3 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_254 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_recursive_statement_3 :ELSE_recursive_statement_3 :_END_IF_recursive_statement_3 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %FOR_ITER_recursive_statement_2 :FOR_END_recursive_statement_2 POP_ebx # _recursive_statement_locals JUMP %_END_IF_recursive_statement_1 :ELSE_recursive_statement_1 :_END_IF_recursive_statement_1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function statement :FUNCTION_statement # IF_statement_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %123 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_statement_0 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_recursive_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_0 :ELSE_statement_0 # IF_statement_1 LOAD_IMMEDIATE_eax %58 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_statement_1 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_255 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_1 :ELSE_statement_1 # IF_statement_2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion CMP SETE MOVEZBL PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_lookup POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion CMP SETE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_lookup_type POP_ebx # _process_expression_locals POP_ebx # _common_recursion CMP SETNE MOVEZBL POP_ebx # _common_recursion AND_eax_ebx PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_256 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_statement_2 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_collect_local POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_2 :ELSE_statement_2 # IF_statement_3 LOAD_IMMEDIATE_eax &STRING_257 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_3 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_process_if POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_3 :ELSE_statement_3 # IF_statement_4 LOAD_IMMEDIATE_eax &STRING_258 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_process_do POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_4 :ELSE_statement_4 # IF_statement_5 LOAD_IMMEDIATE_eax &STRING_259 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_5 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_process_while POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_5 :ELSE_statement_5 # IF_statement_6 LOAD_IMMEDIATE_eax &STRING_260 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_6 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_process_for POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_6 :ELSE_statement_6 # IF_statement_7 LOAD_IMMEDIATE_eax &STRING_261 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_7 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_process_asm POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_7 :ELSE_statement_7 # IF_statement_8 LOAD_IMMEDIATE_eax &STRING_262 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_8 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_263 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_264 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_265 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_266 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals JUMP %_END_IF_statement_8 :ELSE_statement_8 # IF_statement_9 LOAD_IMMEDIATE_eax &STRING_267 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_9 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_return_result POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_statement_9 :ELSE_statement_9 # IF_statement_10 LOAD_IMMEDIATE_eax &STRING_268 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_10 # IF_statement_11 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_break_target LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_statement_11 LOAD_IMMEDIATE_eax &STRING_269 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_statement_11 :ELSE_statement_11 :_END_IF_statement_11 # Defining local i LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %20 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #i :WHILE_statement_12 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_break_locals LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_statement_12 # THEN_while_statement_12 # IF_statement_13 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_statement_13 JUMP %END_WHILE_statement_12 JUMP %_END_IF_statement_13 :ELSE_statement_13 :_END_IF_statement_13 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_270 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %WHILE_statement_12 :END_WHILE_statement_12 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_271 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_break_target LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_272 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_273 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_274 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _recursive_statement_locals JUMP %_END_IF_statement_10 :ELSE_statement_10 # IF_statement_14 LOAD_IMMEDIATE_eax &STRING_275 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_statement_14 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_276 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_277 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_278 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals JUMP %_END_IF_statement_14 :ELSE_statement_14 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_expression POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &STRING_279 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_280 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_require_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals :_END_IF_statement_14 :_END_IF_statement_10 :_END_IF_statement_9 :_END_IF_statement_8 :_END_IF_statement_7 :_END_IF_statement_6 :_END_IF_statement_5 :_END_IF_statement_4 :_END_IF_statement_3 :_END_IF_statement_2 :_END_IF_statement_1 :_END_IF_statement_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER RETURN # Defining function collect_arguments :FUNCTION_collect_arguments LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER :WHILE_collect_arguments_0 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_281 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %END_WHILE_collect_arguments_0 # THEN_while_collect_arguments_0 # Defining local type_size CALL_IMMEDIATE %FUNCTION_type_name PUSH_eax #type_size # IF_collect_arguments_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %41 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_collect_arguments_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_arguments_1 :ELSE_collect_arguments_1 # IF_collect_arguments_2 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %44 POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %ELSE_collect_arguments_2 # Defining local a LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_declare POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #a LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_collect_arguments_2 :ELSE_collect_arguments_2 :_END_IF_collect_arguments_2 :_END_IF_collect_arguments_1 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # IF_collect_arguments_3 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %44 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_collect_arguments_3 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_collect_arguments_3 :ELSE_collect_arguments_3 :_END_IF_collect_arguments_3 POP_ebx # _recursive_statement_locals JUMP %WHILE_collect_arguments_0 :END_WHILE_collect_arguments_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER RETURN # Defining function declare_function :FUNCTION_declare_function # Defining local essential LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #essential LOAD_IMMEDIATE_eax &GLOBAL_current_function PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_current_count PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion STORE_INTEGER # Defining local func LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %28 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_calloc POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax &GLOBAL_global_function_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_declare POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #func LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %12 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_collect_arguments POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_global_function_list PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # IF_declare_function_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %59 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_declare_function_0 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_declare_function_0 :ELSE_declare_function_0 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_282 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_283 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_284 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_285 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_statement POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_declare_function_1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_286 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_declare_function_1 LOAD_EFFECTIVE_ADDRESS %16 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_287 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_declare_function_1 :ELSE_declare_function_1 :_END_IF_declare_function_1 :_END_IF_declare_function_0 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Defining function program :FUNCTION_program # Defining local type_size PUSH_eax #type_size :WHILE_program_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER POP_ebx # _common_recursion CMP SETNE MOVEZBL TEST JUMP_EQ %END_WHILE_program_0 # THEN_while_program_0 :new_type #C goto label # IF_program_1 LOAD_IMMEDIATE_eax &STRING_288 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals TEST JUMP_EQ %ELSE_program_1 LOAD_IMMEDIATE_eax &GLOBAL_global_constant_list PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax &GLOBAL_global_constant_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_declare POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_constant_list LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %16 ADD_ebx_to_eax PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER # looking up offset LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_program_1 :ELSE_program_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion CALL_IMMEDIATE %FUNCTION_type_name POP_ebx # _common_recursion STORE_INTEGER # IF_program_2 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_program_2 JUMP %new_type JUMP %_END_IF_program_2 :ELSE_program_2 :_END_IF_program_2 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER # IF_program_3 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %59 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_program_3 LOAD_IMMEDIATE_eax &GLOBAL_global_symbol_list PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax &GLOBAL_global_symbol_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_sym_declare POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_globals_list PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_289 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %4 ADD_ebx_to_eax LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_290 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_prepend_string POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_globals_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_globals_list PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &STRING_291 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_globals_list LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_emit POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset LOAD_INTEGER POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_program_3 :ELSE_program_3 # IF_program_4 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %0 POP_ebx # _common_recursion ADD_ebx_to_eax LOAD_BYTE PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %40 POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_program_4 LOAD_EFFECTIVE_ADDRESS %8 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_declare_function POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_program_4 :ELSE_program_4 LOAD_IMMEDIATE_eax &STRING_292 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_293 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals CALL_IMMEDIATE %FUNCTION_line_error LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals :_END_IF_program_4 :_END_IF_program_3 :_END_IF_program_1 JUMP %WHILE_program_0 :END_WHILE_program_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _return_result_locals RETURN # Defining function recursive_output :FUNCTION_recursive_output # IF_recursive_output_0 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_recursive_output_0 RETURN JUMP %_END_IF_recursive_output_0 :ELSE_recursive_output_0 :_END_IF_recursive_output_0 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_recursive_output POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER # looking up offset # -> offset calculation LOAD_IMMEDIATE_ebx %8 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals RETURN # Defining function main :FUNCTION_main # Defining local DEBUG LOAD_IMMEDIATE_eax %0 PUSH_eax #DEBUG # Defining local in LOAD_IMMEDIATE_eax %0 PUSH_eax #in # Defining local destination_file LOAD_IMMEDIATE_eax %1 PUSH_eax #destination_file # Defining local i LOAD_IMMEDIATE_eax %1 PUSH_eax #i :WHILE_main_0 LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %24 LOAD_INTEGER POP_ebx # _common_recursion CMP SETLE MOVEZBL TEST JUMP_EQ %END_WHILE_main_0 # THEN_while_main_0 # IF_main_1 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_main_1 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_main_1 :ELSE_main_1 # IF_main_2 LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_294 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_295 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_main_2 # Defining local name LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #name LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_296 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_fopen POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_main_3 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_main_3 LOAD_IMMEDIATE_eax &STRING_297 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_298 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_main_3 :ELSE_main_3 :_END_IF_main_3 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_read_all_tokens POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER POP_ebx # _recursive_statement_locals JUMP %_END_IF_main_2 :ELSE_main_2 # IF_main_4 LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_299 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_300 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_main_4 LOAD_EFFECTIVE_ADDRESS %4 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_301 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_fopen POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER # IF_main_5 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_main_5 LOAD_IMMEDIATE_eax &STRING_302 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_303 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_main_5 :ELSE_main_5 :_END_IF_main_5 LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %2 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_main_4 :ELSE_main_4 # IF_main_6 LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_304 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_305 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_main_6 LOAD_EFFECTIVE_ADDRESS %12 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion STORE_INTEGER LOAD_EFFECTIVE_ADDRESS %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax %1 POP_ebx # _common_recursion ADD_ebx_to_eax POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_main_6 :ELSE_main_6 # IF_main_7 LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_306 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_307 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_main_7 LOAD_IMMEDIATE_eax &STRING_308 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_main_7 :ELSE_main_7 # IF_main_8 LOAD_EFFECTIVE_ADDRESS %24 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %4 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_309 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %28 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %8 LOAD_INTEGER POP_ebx # _common_recursion SAL_eax_Immediate8 !2 ADD_ebx_to_eax LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &STRING_310 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_match POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion OR_eax_ebx TEST JUMP_EQ %ELSE_main_8 LOAD_IMMEDIATE_eax &STRING_311 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_main_8 :ELSE_main_8 LOAD_IMMEDIATE_eax &STRING_312 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals :_END_IF_main_8 :_END_IF_main_7 :_END_IF_main_6 :_END_IF_main_4 :_END_IF_main_2 :_END_IF_main_1 JUMP %WHILE_main_0 :END_WHILE_main_0 # IF_main_9 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_main_9 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER PUSH_eax #_process_expression2 LOAD_IMMEDIATE_eax &STRING_313 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_read_all_tokens POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER JUMP %_END_IF_main_9 :ELSE_main_9 :_END_IF_main_9 # IF_main_10 LOAD_IMMEDIATE_eax %0 PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER POP_ebx # _common_recursion CMP SETE MOVEZBL TEST JUMP_EQ %ELSE_main_10 LOAD_IMMEDIATE_eax &STRING_314 PUSH_eax #_process_expression1 LOAD_IMMEDIATE_eax %2 PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax %1 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_exit POP_ebx # _process_expression_locals JUMP %_END_IF_main_10 :ELSE_main_10 :_END_IF_main_10 LOAD_IMMEDIATE_eax &GLOBAL_global_token PUSH_eax #_common_recursion LOAD_IMMEDIATE_eax &GLOBAL_global_token LOAD_INTEGER PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_reverse_list POP_ebx # _process_expression_locals POP_ebx # _common_recursion STORE_INTEGER CALL_IMMEDIATE %FUNCTION_initialize_types # Defining local output_list LOAD_IMMEDIATE_eax %0 PUSH_eax #_process_expression1 CALL_IMMEDIATE %FUNCTION_program POP_ebx # _process_expression_locals PUSH_eax #output_list LOAD_IMMEDIATE_eax &STRING_315 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_EFFECTIVE_ADDRESS %0 LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_recursive_output POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # IF_main_11 LOAD_EFFECTIVE_ADDRESS %16 LOAD_INTEGER TEST JUMP_EQ %ELSE_main_11 LOAD_IMMEDIATE_eax &STRING_316 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals JUMP %_END_IF_main_11 :ELSE_main_11 :_END_IF_main_11 LOAD_IMMEDIATE_eax &STRING_317 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_globals_list LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_recursive_output POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &STRING_318 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals LOAD_IMMEDIATE_eax &GLOBAL_strings_list LOAD_INTEGER PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_recursive_output POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals # IF_main_12 LOAD_IMMEDIATE_eax %1 PUSH_eax #_common_recursion LOAD_EFFECTIVE_ADDRESS %20 LOAD_INTEGER POP_ebx # _common_recursion XOR_ebx_eax_into_eax TEST JUMP_EQ %ELSE_main_12 LOAD_IMMEDIATE_eax &STRING_319 PUSH_eax #_process_expression1 LOAD_EFFECTIVE_ADDRESS %12 LOAD_INTEGER PUSH_eax #_process_expression2 CALL_IMMEDIATE %FUNCTION_file_print POP_ebx # _process_expression_locals POP_ebx # _process_expression_locals JUMP %_END_IF_main_12 :ELSE_main_12 :_END_IF_main_12 LOAD_IMMEDIATE_eax %0 POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals POP_ebx # _return_result_locals RETURN # Program global variables :GLOBAL_global_types NOP :GLOBAL_global_token NOP :GLOBAL_strings_list NOP :GLOBAL_globals_list NOP :GLOBAL_input NOP :GLOBAL_token NOP :GLOBAL_line NOP :GLOBAL_file NOP :GLOBAL_string_index NOP :GLOBAL_member_size NOP :GLOBAL_global_symbol_list NOP :GLOBAL_global_function_list NOP :GLOBAL_global_constant_list NOP :GLOBAL_break_locals NOP :GLOBAL_current_target NOP :GLOBAL_break_target NOP :GLOBAL_current_function NOP :GLOBAL_current_count NOP :GLOBAL_string_num NOP :GLOBAL_last_type NOP # Program strings :STRING_0 "Tried to print non-hex number " :STRING_1 "Unknown escape recieved: " :STRING_2 " Unable to process " :STRING_3 "0123456789ABCDEF" :STRING_4 "void" :STRING_5 "int" :STRING_6 "char*" :STRING_7 "char" :STRING_8 "FILE" :STRING_9 "FUNCTION" :STRING_10 "unsigned" :STRING_11 "ERROR in build_union Missing { " :STRING_12 "{" :STRING_13 "ERROR in build_union Missing ; " :STRING_14 ";" :STRING_15 ' 45 52 52 4F 52 20 69 6E 20 63 72 65 61 74 65 5F 73 74 72 75 63 74 0A 20 4D 69 73 73 69 6E 67 20 7B 0A 00' :STRING_16 "{" :STRING_17 "union" :STRING_18 ' 45 52 52 4F 52 20 69 6E 20 63 72 65 61 74 65 5F 73 74 72 75 63 74 0A 20 4D 69 73 73 69 6E 67 20 3B 0A 00' :STRING_19 ";" :STRING_20 ' 45 52 52 4F 52 20 69 6E 20 63 72 65 61 74 65 5F 73 74 72 75 63 74 0A 20 4D 69 73 73 69 6E 67 20 3B 0A 00' :STRING_21 ";" :STRING_22 "struct" :STRING_23 "Unknown type " :STRING_24 ' 0A 00' :STRING_25 "In file: " :STRING_26 " On line: " :STRING_27 "main" :STRING_28 "argc" :STRING_29 "argv" :STRING_30 " does not exist in function " :STRING_31 " " :STRING_32 "ERROR in process_expression_list No ( was found " :STRING_33 "(" :STRING_34 "PUSH_eax #_process_expression1 " :STRING_35 "PUSH_eax #_process_expression2 " :STRING_36 "ERROR in process_expression_list No ) was found " :STRING_37 ")" :STRING_38 "LOAD_EFFECTIVE_ADDRESS %" :STRING_39 " LOAD_INTEGER CALL_eax " :STRING_40 "LOAD_EFFECTIVE_ADDRESS %" :STRING_41 " LOAD_INTEGER CALL_eax " :STRING_42 "CALL_IMMEDIATE %FUNCTION_" :STRING_43 "POP_ebx # _process_expression_locals " :STRING_44 "LOAD_IMMEDIATE_eax %" :STRING_45 "FUNCTION" :STRING_46 "(" :STRING_47 "#Loading address of function LOAD_EFFECTIVE_ADDRESS %" :STRING_48 " LOAD_INTEGER " :STRING_49 "LOAD_EFFECTIVE_ADDRESS %" :STRING_50 " " :STRING_51 "=" :STRING_52 "LOAD_INTEGER " :STRING_53 "FUNCTION" :STRING_54 "(" :STRING_55 "#Loading address of function LOAD_EFFECTIVE_ADDRESS %" :STRING_56 " LOAD_INTEGER " :STRING_57 "LOAD_EFFECTIVE_ADDRESS %" :STRING_58 " " :STRING_59 "=" :STRING_60 "argv" :STRING_61 "LOAD_INTEGER " :STRING_62 "(" :STRING_63 "LOAD_IMMEDIATE_eax &FUNCTION_" :STRING_64 "LOAD_IMMEDIATE_eax &GLOBAL_" :STRING_65 "=" :STRING_66 "LOAD_INTEGER " :STRING_67 " is not a defined symbol " :STRING_68 "LOAD_IMMEDIATE_eax %" :STRING_69 "Error in Primary expression Didn't get ) " :STRING_70 ")" :STRING_71 "LOAD_IMMEDIATE_eax %" :STRING_72 " " :STRING_73 "LOAD_IMMEDIATE_eax &STRING_" :STRING_74 " " :STRING_75 ' 3A 53 54 52 49 4E 47 5F 00' :STRING_76 " " :STRING_77 "Recieved " :STRING_78 " in primary_expr " :STRING_79 "PUSH_eax #_common_recursion " :STRING_80 "POP_ebx # _common_recursion " :STRING_81 "SAL_eax_Immediate8 !" :STRING_82 " " :STRING_83 "ADD_ebx_to_eax " :STRING_84 "=" :STRING_85 "LOAD_INTEGER " :STRING_86 "LOAD_BYTE " :STRING_87 "ERROR in postfix_expr Missing ] " :STRING_88 "]" :STRING_89 "->" :STRING_90 "# looking up offset " :STRING_91 "ERROR in postfix_expr " :STRING_92 "->" :STRING_93 " does not exist " :STRING_94 "# -> offset calculation " :STRING_95 "LOAD_IMMEDIATE_ebx %" :STRING_96 " ADD_ebx_to_eax " :STRING_97 "=" :STRING_98 "LOAD_INTEGER " :STRING_99 "-" :STRING_100 "LOAD_IMMEDIATE_eax %0 " :STRING_101 "SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax " :STRING_102 "!" :STRING_103 "LOAD_IMMEDIATE_eax %1 " :STRING_104 "XOR_ebx_eax_into_eax " :STRING_105 "sizeof" :STRING_106 "ERROR in unary_expr Missing ( " :STRING_107 "(" :STRING_108 "ERROR in unary_expr Missing ) " :STRING_109 ")" :STRING_110 "LOAD_IMMEDIATE_eax %" :STRING_111 " " :STRING_112 "+" :STRING_113 "ADD_ebx_to_eax " :STRING_114 "-" :STRING_115 "SUBTRACT_eax_from_ebx_into_ebx MOVE_ebx_to_eax " :STRING_116 "*" :STRING_117 "MULTIPLY_eax_by_ebx_into_eax " :STRING_118 "/" :STRING_119 "XCHG_eax_ebx LOAD_IMMEDIATE_edx %0 DIVIDE_eax_by_ebx_into_eax " :STRING_120 "%" :STRING_121 "XCHG_eax_ebx LOAD_IMMEDIATE_edx %0 MODULUS_eax_from_ebx_into_ebx MOVE_edx_to_eax " :STRING_122 "<<" :STRING_123 "COPY_eax_to_ecx POP_eax SAL_eax_cl " :STRING_124 ">>" :STRING_125 "COPY_eax_to_ecx POP_eax SAR_eax_cl " :STRING_126 "<" :STRING_127 "CMP SETL MOVEZBL " :STRING_128 "<=" :STRING_129 "CMP SETLE MOVEZBL " :STRING_130 ">=" :STRING_131 "CMP SETGE MOVEZBL " :STRING_132 ">" :STRING_133 "CMP SETG MOVEZBL " :STRING_134 "==" :STRING_135 "CMP SETE MOVEZBL " :STRING_136 "!=" :STRING_137 "CMP SETNE MOVEZBL " :STRING_138 "AND_eax_ebx " :STRING_139 "OR_eax_ebx " :STRING_140 "XOR_ebx_eax_into_eax " :STRING_141 "]" :STRING_142 "STORE_CHAR " :STRING_143 "STORE_INTEGER " :STRING_144 "STORE_INTEGER " :STRING_145 "# Defining local " :STRING_146 " " :STRING_147 "ERROR in collect_local Missing ; " :STRING_148 ";" :STRING_149 "PUSH_eax #" :STRING_150 " " :STRING_151 "# IF_" :STRING_152 "_" :STRING_153 " " :STRING_154 "ERROR in process_if MISSING ( " :STRING_155 "(" :STRING_156 "TEST JUMP_EQ %ELSE_" :STRING_157 "_" :STRING_158 " " :STRING_159 "ERROR in process_if MISSING ) " :STRING_160 ")" :STRING_161 "JUMP %_END_IF_" :STRING_162 "_" :STRING_163 ' 0A 3A 45 4C 53 45 5F 00' :STRING_164 "_" :STRING_165 " " :STRING_166 "else" :STRING_167 ' 3A 5F 45 4E 44 5F 49 46 5F 00' :STRING_168 "_" :STRING_169 " " :STRING_170 "FOR_END_" :STRING_171 "_" :STRING_172 "# FOR_initialization_" :STRING_173 "_" :STRING_174 " " :STRING_175 "ERROR in process_for MISSING ( " :STRING_176 "(" :STRING_177 ";" :STRING_178 ' 3A 46 4F 52 5F 00' :STRING_179 "_" :STRING_180 " " :STRING_181 "ERROR in process_for MISSING ;1 " :STRING_182 ";" :STRING_183 "TEST JUMP_EQ %FOR_END_" :STRING_184 "_" :STRING_185 " JUMP %FOR_THEN_" :STRING_186 "_" :STRING_187 ' 0A 3A 46 4F 52 5F 49 54 45 52 5F 00' :STRING_188 "_" :STRING_189 " " :STRING_190 "ERROR in process_for MISSING ;2 " :STRING_191 ";" :STRING_192 "JUMP %FOR_" :STRING_193 "_" :STRING_194 ' 0A 3A 46 4F 52 5F 54 48 45 4E 5F 00' :STRING_195 "_" :STRING_196 " " :STRING_197 "ERROR in process_for MISSING ) " :STRING_198 ")" :STRING_199 "JUMP %FOR_ITER_" :STRING_200 "_" :STRING_201 ' 0A 3A 46 4F 52 5F 45 4E 44 5F 00' :STRING_202 "_" :STRING_203 " " :STRING_204 "ERROR in process_asm MISSING ( " :STRING_205 "(" :STRING_206 " " :STRING_207 "ERROR in process_asm MISSING ) " :STRING_208 ")" :STRING_209 "ERROR in process_asm MISSING ; " :STRING_210 ";" :STRING_211 "DO_END_" :STRING_212 "_" :STRING_213 ' 3A 44 4F 5F 00' :STRING_214 "_" :STRING_215 " " :STRING_216 "ERROR in process_do MISSING while " :STRING_217 "while" :STRING_218 "ERROR in process_do MISSING ( " :STRING_219 "(" :STRING_220 "ERROR in process_do MISSING ) " :STRING_221 ")" :STRING_222 "ERROR in process_do MISSING ; " :STRING_223 ";" :STRING_224 "TEST JUMP_NE %DO_" :STRING_225 "_" :STRING_226 ' 0A 3A 44 4F 5F 45 4E 44 5F 00' :STRING_227 "_" :STRING_228 " " :STRING_229 "END_WHILE_" :STRING_230 "_" :STRING_231 ' 3A 57 48 49 4C 45 5F 00' :STRING_232 "_" :STRING_233 " " :STRING_234 "ERROR in process_while MISSING ( " :STRING_235 "(" :STRING_236 "TEST JUMP_EQ %END_WHILE_" :STRING_237 "_" :STRING_238 " # THEN_while_" :STRING_239 "_" :STRING_240 " " :STRING_241 "ERROR in process_while MISSING ) " :STRING_242 ")" :STRING_243 "JUMP %WHILE_" :STRING_244 "_" :STRING_245 ' 0A 3A 45 4E 44 5F 57 48 49 4C 45 5F 00' :STRING_246 "_" :STRING_247 " " :STRING_248 "ERROR in return_result MISSING ; " :STRING_249 ";" :STRING_250 "POP_ebx # _return_result_locals " :STRING_251 "RETURN " :STRING_252 "}" :STRING_253 "RETURN " :STRING_254 "POP_ebx # _recursive_statement_locals " :STRING_255 " #C goto label " :STRING_256 "struct" :STRING_257 "if" :STRING_258 "do" :STRING_259 "while" :STRING_260 "for" :STRING_261 "asm" :STRING_262 "goto" :STRING_263 "JUMP %" :STRING_264 " " :STRING_265 "ERROR in statement Missing ; " :STRING_266 ";" :STRING_267 "return" :STRING_268 "break" :STRING_269 "Not inside of a loop or case statement" :STRING_270 "POP_ebx # break_cleanup_locals " :STRING_271 "JUMP %" :STRING_272 " " :STRING_273 "ERROR in statement Missing ; " :STRING_274 ";" :STRING_275 "continue" :STRING_276 " #continue statement " :STRING_277 "ERROR in statement Missing ; " :STRING_278 ";" :STRING_279 "ERROR in statement MISSING ; " :STRING_280 ";" :STRING_281 ")" :STRING_282 "# Defining function " :STRING_283 " " :STRING_284 ' 3A 46 55 4E 43 54 49 4F 4E 5F 00' :STRING_285 " " :STRING_286 "RETURN " :STRING_287 "RETURN " :STRING_288 "CONSTANT" :STRING_289 ' 3A 47 4C 4F 42 41 4C 5F 00' :STRING_290 " " :STRING_291 "NOP " :STRING_292 "Recieved " :STRING_293 " in program " :STRING_294 "-f" :STRING_295 "--file" :STRING_296 "r" :STRING_297 "Unable to open for reading file: " :STRING_298 ' 0A 20 41 62 6F 72 74 69 6E 67 20 74 6F 20 61 76 6F 69 64 20 70 72 6F 62 6C 65 6D 73 0A 00' :STRING_299 "-o" :STRING_300 "--output" :STRING_301 "w" :STRING_302 "Unable to open for writing file: " :STRING_303 ' 0A 20 41 62 6F 72 74 69 6E 67 20 74 6F 20 61 76 6F 69 64 20 70 72 6F 62 6C 65 6D 73 0A 00' :STRING_304 "-g" :STRING_305 "--debug" :STRING_306 "-h" :STRING_307 "--help" :STRING_308 ' 20 2D 66 20 69 6E 70 75 74 20 66 69 6C 65 0A 20 2D 6F 20 6F 75 74 70 75 74 20 66 69 6C 65 0A 20 2D 2D 68 65 6C 70 20 66 6F 72 20 74 68 69 73 20 6D 65 73 73 61 67 65 0A 20 2D 2D 76 65 72 73 69 6F 6E 20 66 6F 72 20 66 69 6C 65 20 76 65 72 73 69 6F 6E 0A 00' :STRING_309 "-V" :STRING_310 "--version" :STRING_311 ' 42 61 73 69 63 20 74 65 73 74 20 76 65 72 73 69 6F 6E 20 30 2E 30 2E 30 2E 31 61 0A 00' :STRING_312 ' 55 4E 4B 4E 4F 57 4E 20 41 52 47 55 4D 45 4E 54 0A 00' :STRING_313 "STDIN" :STRING_314 "Either no input files were given or they were empty " :STRING_315 " # Core program " :STRING_316 ' 0A 3A 45 4C 46 5F 64 61 74 61 0A 00' :STRING_317 " # Program global variables " :STRING_318 " # Program strings " :STRING_319 ' 0A 3A 45 4C 46 5F 65 6E 64 0A 00' :ELF_end