17 { "LOAD_VAR", vm_load_var
},
18 { "LOAD_INT", vm_load_int
},
19 { "STORE", vm_store
},
20 { "JMP_FALSE", vm_jmp_false
},
22 { "WRITE_INT", vm_write_int
},
23 { "PUSH_INT", vm_push_int
},
24 { "PUSH_VAR", vm_push_var
},
42 gen_code(int op
, int arg
)
44 code
[code_offset
].op
= op
;
45 code
[code_offset
++].arg
= arg
;
49 back_patch(int addr
, int op
, int arg
)
56 print_code(char *outfile
)
62 fp
= fopen(outfile
, "w");
65 fprintf(stderr
, "Erro ao abrir %s\n", outfile
);
71 for (i
= 0; i
< code_offset
; ++i
) {
72 fprintf(fp
, "%d: %s %d\n", i
, ops
[code
[i
].op
].opname
, code
[i
].arg
);