#ifndef BDL_PARSER_H #define BDL_PARSER_H #include "lexer.h" #include "nodes.h" #include "hashtable.h" typedef struct Scope { struct Scope *parent; HashTable *symbols; // HashTable types; } Scope; typedef struct ParseTree { Node **roots; Scope *global_scope; Scope *current_scope; } ParseTree; typedef struct Parser { Token *tokens; size_t current_token; ParseTree *parse_tree; } Parser; ParseTree * parse(Token *tokens); Node * parse_next(Parser *parser); #endif // BDL_PARSER_H