Files
ivy/lang/ast.h

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