#ifndef PARSER_H #define PARSER_H #include "tree.h" #include "lex.h" struct parser { struct lexer lexer; struct error_buffer eb; }; void parser_init(struct parser *parser); int parser_parse_n(struct parser *parser, const char *str, const char *variable_name, struct expr_node **out_nodes, size_t n); struct expr_node *parser_parse(struct parser *parser, const char *str, const char *variable_name); enum error_code parser_get_error(const struct parser *parser); const char *parser_get_error_text(const struct parser *parser); #endif /* PARSER_H */