#ifndef __PARSER_H__ #define __PARSER_H__ #include "../frontend.h" #include "../lexer/lexer.h" typedef struct lexer lexer_t; typedef struct symtab symtab_t; #define PARSER_MAX_TOKEN_QUEUE 16 typedef struct parser { struct ASTNode* root; struct ASTNode* cur_node; lexer_t* lexer; symtab_t* symtab; tok_buf_t tokbuf; tok_t TokenBuffer[PARSER_MAX_TOKEN_QUEUE]; int err_level; } parser_t; void init_parser(parser_t* parser, lexer_t* lexer, symtab_t* symtab); void run_parser(parser_t* parser); #endif