25 lines
660 B
C
25 lines
660 B
C
#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_
|