#ifndef MK_PARSER_H #define MK_PARSER_H #include "commons.h" #include "node.h" #include "lexer.h" struct parser { struct lexer* lexer; }; void parser_init(struct parser* self, struct lexer* lexer); void parser_free(struct parser* self); struct node* parser_try_new_parse(struct parser* self); struct node* parser_try(struct parser* self, struct node* (*rule)(struct parser*)); struct node* parser_try_new_root(struct parser* self); struct node* parser_try_new_expr(struct parser* self); struct node* parser_try_new_call(struct parser* self); struct node* parser_try_new_atom(struct parser* self); #endif