From e9b99a90510309ac4f5d91d4a5138e7a84904057 Mon Sep 17 00:00:00 2001 From: ubq323 Date: Mon, 24 Jun 2024 20:20:06 +0100 Subject: add local variables and (let) form --- com.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'com.h') diff --git a/com.h b/com.h index 26b7494..c623d49 100644 --- a/com.h +++ b/com.h @@ -7,10 +7,24 @@ typedef struct _compiler Compiler; #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); -- cgit v1.2.3