30 lines
528 B
C
30 lines
528 B
C
#ifndef _AST_H_
|
|
#define _AST_H_
|
|
|
|
#include <blue/core/queue.h>
|
|
#include <ivy/status.h>
|
|
|
|
struct parser_state {
|
|
b_queue_entry s_entry;
|
|
struct ivy_ast_node *s_parent;
|
|
struct ivy_ast_node *s_node;
|
|
};
|
|
|
|
struct unit_parser_state {
|
|
struct parser_state s_base;
|
|
};
|
|
|
|
struct ivy_parser {
|
|
enum ivy_status p_status;
|
|
b_queue p_state;
|
|
b_queue p_token_queue;
|
|
b_queue p_node_queue;
|
|
};
|
|
|
|
struct ast_node_ops {
|
|
enum ivy_status(*n_add_child)(struct ivy_ast_node *, struct ivy_ast_node *);
|
|
void(*n_print)(struct ivy_ast_node *);
|
|
};
|
|
|
|
#endif
|