Skip to content
chicu123 edited this page Sep 13, 2010 · 1 revision

method dosomething()
{
    int a = 10;
    int b;
    for (b=0; b<20; b++)
    {
        a = a + 40.0 / (3 + b);
    }
}

dosomething += "write a;";
dosomething += "number c; debug 'write a number:'; read c; debug a + c;";

dosomething();

write dosomething; // tipareste bytecode-ul generat pt dosomething

string codulluidosomething = dosomething;
write codulluidosomething; // tipareste sursa lui dosomething

$main += "debug 'exiting'";
write $main; // tipareste bytecode-ul generat pt tot codul

output generat in consola


90 write a number: 34.7 <-- linia aceasta e introdusa de la tastatura --> 124.700000 Method: dosomething 0: op_load_int_constant register 2 constant int 10 3: op_assign register 0 register 2 6: op_load_int_constant register 3 constant int 0 9: op_assign register 1 register 3 12: op_load_int_constant register 3 constant int 20 15: op_int_less register 2 register 1 register 3 19: op_jmp_if_false register 2 constant int 59 22: op_load_float_constant register 4 constant float index 0 40.000000 25: op_load_int_constant register 6 constant int 3 28: op_int_plus register 5 register 6 register 1 32: op_coerce_int_float register 5 register 5 35: op_float_divide register 3 register 4 register 5 39: op_coerce_int_float register 4 register 0 42: op_float_plus register 2 register 4 register 3 46: op_coerce_float_int register 2 register 2 49: op_assign register 0 register 2 52: op_assign register 3 register 1 55: op_int_plus_one register 1 57: op_jmp constant int 12 Method: $method1 0: op_debug_int register 0 Method: $method2 0: op_load_string_constant register 3 constant string index 5 "write a number:" 3: op_debug_string register 3 5: op_read_float register 3 7: op_assign register 2 register 3 10: op_coerce_int_float register 0 register 0 13: op_float_plus register 3 register 0 register 2 17: op_debug_float register 3 write a;number c; debug 'write a number:'; read c; debug a + c; Method: $main 0: op_init_ref register 0 2: op_load_method register 1 constant string index 0 "dosomething" 5: op_load_string_constant register 2 constant string index 1 "write a;" 8: op_code_plus_string register 1 register 2 11: op_load_method register 1 constant string index 0 "dosomething" 14: op_load_string_constant register 2 constant string index 2 "number c; debug 'write a number:'; read c; debug a + c;" 17: op_code_plus_string register 1 register 2 20: op_call_method register 1 constant string index 0 "dosomething" 23: op_load_method register 1 constant string index 0 "dosomething" 26: op_debug_code constant string index 1 "write a;" 28: op_load_method register 1 constant string index 0 "dosomething" 31: op_coerce_code_string register 1 register 1 34: op_assign register 0 register 1 37: op_debug_string register 0 39: op_load_method register 1 constant string index 3 "$main" 42: op_load_string_constant register 2 constant string index 4 "debug 'exiting';" 45: op_code_plus_string register 1 register 2 48: op_load_method register 1 constant string index 3 "$main" 51: op_debug_code constant string index 1 "write a;" Method: $method3 0: op_load_string_constant register 1 constant string index 6 "exiting" 3: op_debug_string register 1 exiting
Clone this wiki locally