diff options
Diffstat (limited to 'src/vm.h')
| -rw-r--r-- | src/vm.h | 90 |
1 files changed, 47 insertions, 43 deletions
@@ -22,59 +22,63 @@ #define STACK_CAPACITY 1024 #define HEAP_CAPACITY 1024 -typedef enum inst_type { - // stack - INST_PUSH, - INST_DUP, - INST_COPY, - INST_SWAP, - INST_DROP, - INST_SLIDE, - // arithmetics - INST_ADD, - INST_SUB, - INST_MUL, - INST_DIV, - INST_MOD, - // heap access - INST_STORE, - INST_LOAD, - // Flow control - INST_CALL, - INST_RET, - INST_LABEL, - INST_JMP, - INST_JMPZ, - INST_JMPN, - // I/O - INST_PRINTI, - INST_PRINTC, - INST_READI, - INST_READC, - INST_END, +typedef enum inst_type +{ + // stack + INST_PUSH, + INST_DUP, + INST_COPY, + INST_SWAP, + INST_DROP, + INST_SLIDE, + // arithmetics + INST_ADD, + INST_SUB, + INST_MUL, + INST_DIV, + INST_MOD, + // heap access + INST_STORE, + INST_LOAD, + // Flow control + INST_CALL, + INST_RET, + INST_LABEL, + INST_JMP, + INST_JMPZ, + INST_JMPN, + // I/O + INST_PRINTI, + INST_PRINTC, + INST_READI, + INST_READC, + INST_END, } inst_type_t; -typedef struct instr { - inst_type_t type; - int operand; +typedef struct instr +{ + inst_type_t type; + int operand; } inst_t; -typedef struct label { - int name; - int index; +typedef struct label +{ + int name; + int index; } label_t; -typedef struct vm { - stack_t stack; - stack_t call_stack; - int *heap; - label_t *labels; +typedef struct vm +{ + stack_t stack; + stack_t call_stack; + int* heap; + label_t* labels; } vm_t; void -vm_init(vm_t *vm); +vm_init(vm_t* vm); void -vm_run(vm_t *vm, inst_t *insts); +vm_run(vm_t* vm, inst_t* insts); #endif /* VM_H */ |
