25 lines
529 B
C
25 lines
529 B
C
|
#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_atom(struct parser* self);
|
||
|
|
||
|
#endif
|