From af3f2ebc42bf9dc64fc581b9f8f79e98895cb417 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Sat, 30 Oct 2021 10:13:11 +0200 Subject: Add hashtable for Environment tracking --- src/parser.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/parser.h') diff --git a/src/parser.h b/src/parser.h index 14d9df5..d1eddc7 100755 --- a/src/parser.h +++ b/src/parser.h @@ -2,6 +2,7 @@ #define BDL_PARSER_H #include "lexer.h" +#include "hashtable.h" typedef enum ObjectType { OBJ_TYPE_NIL, @@ -58,6 +59,11 @@ typedef struct Object { size_t col; } Object; +typedef struct Environment { + HashTable *table; + struct Environment *parent; +}; + typedef struct Parser { Token *tokens; size_t current; @@ -86,6 +92,7 @@ Root * parse(Token *tokens, Errors *errors); // Object operations. void object_display(Object *obj); +bool object_equal(Object *a, Object *b); // Manage resources. Object * object_alloc(Token tok, ObjectType type); -- cgit v1.2.1