diff options
Diffstat (limited to 'clox/src/vm.h')
-rw-r--r-- | clox/src/vm.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/clox/src/vm.h b/clox/src/vm.h index 0ab269b..170166b 100644 --- a/clox/src/vm.h +++ b/clox/src/vm.h @@ -2,14 +2,23 @@ #define clox_vm_h #include "chunk.h" +#include "object.h" #include "table.h" #include "value.h" -#define STACK_MAX 256 +#define FRAMES_MAX 64 +#define STACK_MAX (FRAMES_MAX * UINT8_COUNT) typedef struct { - Chunk *chunk; + ObjFunction *function; uint8_t *ip; + Value *slots; +} CallFrame; + +typedef struct { + CallFrame frames[FRAMES_MAX]; + int frameCount; + Value stack[STACK_MAX]; Value *stackTop; Table globals; |