#ifndef clox_vm_h #define clox_vm_h #include "chunk.h" #include "table.h" #include "value.h" #define STACK_MAX 256 typedef struct { Chunk* chunk; uint8_t* ip; int sp; int capacity; Value* stack; Obj* objects; Table strings; Table globals; } VM; typedef enum { INTERPRET_OK, INTERPRET_COMPILE_ERROR, INTERPRET_RUNTIME_ERROR } InterpretResult; extern VM vm; void initVM(); void freeVM(); InterpretResult interpret(const char* source, bool repl); void push(Value value); Value pop(); #endif