moka/lib/parser.h

28 lines
695 B
C
Raw Permalink Normal View History

2024-03-26 18:31:33 +00:00
#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);
2024-03-29 20:11:46 +00:00
struct node* parser_try_new_array(struct parser* self);
struct node* parser_try_new_call(struct parser* self);
2024-03-26 18:31:33 +00:00
struct node* parser_try_new_atom(struct parser* self);
#endif