lang: ast: initial implementation of msg handler and selector parsing
This commit is contained in:
@@ -94,7 +94,7 @@ struct parser_state *parser_push_state(
|
||||
state->s_node = ast_node_create_with_size(type, node_type->n_node_size);
|
||||
|
||||
if (node_type->n_init_state) {
|
||||
node_type->n_init_state(state);
|
||||
node_type->n_init_state(parser, state);
|
||||
}
|
||||
|
||||
b_queue_push_back(&parser->p_state, &state->s_entry);
|
||||
@@ -134,7 +134,7 @@ struct ivy_ast_node *ivy_parser_dequeue_node(struct ivy_parser *parser)
|
||||
{
|
||||
b_queue_entry *entry = b_queue_first(&parser->p_state);
|
||||
struct parser_state *state = b_unbox(struct parser_state, entry, s_entry);
|
||||
|
||||
|
||||
if (!state) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -146,10 +146,10 @@ struct ivy_ast_node *ivy_parser_dequeue_node(struct ivy_parser *parser)
|
||||
struct ivy_ast_unit_node *unit = (struct ivy_ast_unit_node *)state->s_node;
|
||||
|
||||
entry = b_queue_pop_front(&unit->n_children);
|
||||
|
||||
|
||||
if (!entry) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return b_unbox(struct ivy_ast_node, entry, n_entry);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user