#ifndef _vm_h #define _vm_h #include #include #include typedef struct _thread Thread; #include "val.h" #include "com.h" #define STACKSIZE 128 typedef struct _thread { Chunk *ch; size_t ip; Val stack[STACKSIZE]; size_t sp; } Thread; Thread thread_new(State *S); typedef enum { OP_RET, OP_LOADK, OP_PUTS, OP_PRINT, OP_ADD, OP_SUB, OP_MUL, OP_DIV, OP_MOD, OP_EQU, OP_CMP, OP_DROP, OP_GETGLOBAL, OP_SETGLOBAL, OP_TRUE, OP_FALSE, OP_NIL, OP_0BRANCH, OP_SKIP, OP_REDO, } Op; int runvm(State *S); #endif