#ifndef _com_h #define _com_h typedef struct _compiler Compiler; #include "state.h" #include "chunk.h" typedef struct { char *name; uint8_t slot; } Local; #define MAX_LOCALS 256 typedef struct _scope Scope; struct _scope { Scope *outer; uint8_t nlocals; Local locals[MAX_LOCALS]; }; struct _compiler { State *S; Chunk *ch; int stack_cur; Scope *scope; }; Compiler compiler_new(Compiler *outer, Chunk *ch); #define BYTECODE(C) (C->ch->bc) #endif