#ifndef INCLUDE_SRC_PARSER_UTIL_H_ #define INCLUDE_SRC_PARSER_UTIL_H_ #include "ast.h" #include "error.h" #include "tokenlist.h" typedef struct parse_result { error_t *err; tokenlist_entry_t *next; ast_node_t *node; } parse_result_t; parse_result_t parse_error(error_t *err); parse_result_t parse_no_match(); parse_result_t parse_success(ast_node_t *ast, tokenlist_entry_t *next); parse_result_t parse_token(tokenlist_entry_t *current, lexer_token_id_t token_id, node_id_t ast_id); tokenlist_entry_t *skip_insignificant(tokenlist_entry_t *); extern error_t *err_parse_no_match; #endif // INCLUDE_SRC_PARSER_UTIL_H_