#include "parse.h" #include Parser *parser_new(Lexer *lexer) { Parser *parser = malloc(sizeof(Parser)); if (parser == NULL) { return NULL; } parser->lexer = lexer; parser->flag_error = 0; parser_next(parser); parser_next(parser); return parser; } void parser_free(Parser *parser) { free(parser); } static void parser_next(Parser *parser) { parser->current = parser->peek; parser->peek = lexer_next_token(parser->lexer); } static void parser_expect(Parser *parser, TokenType type) { if (parser->current.type == type) { parser_next(parser); } else { parser->flag_error = 1; } } /* IMPL. PARSER PARSE FUNCTIONS */