#ifndef VM_INCLUDED #define VM_INLCUDED #include "chunk.h" #include "value.h" #define STACK_MAX 256 typedef struct { Chunk *chunk; uint8_t *ip; Value stack[STACK_MAX]; Value *stackTop; } VM; typedef enum { INTERPRET_OK, INTERPRET_COMPILE_ERROR, INTERPRET_RUNTIME_ERROR, INTERPRET_RESULT_COUNT, } InterpretResult; void initVM(void); void freeVM(void); InterpretResult interpret(Chunk *chunk); void push(Value value); Value pop(); #endif