lang: ast: add ast node size to ast_node_type

This commit is contained in:
2024-11-24 11:46:42 +00:00
parent d43e387158
commit 70aab9998b
5 changed files with 11 additions and 13 deletions

View File

@@ -18,7 +18,7 @@ enum ivy_status ivy_parser_create(struct ivy_parser **parser)
memset(out, 0x0, sizeof *out);
parser_push_state( out, IVY_AST_UNIT, struct ivy_ast_unit_node);
parser_push_state(out, IVY_AST_UNIT);
*parser = out;
return IVY_OK;
@@ -64,9 +64,8 @@ struct parser_state *parser_get_state_generic(struct ivy_parser *parser)
return state;
}
struct parser_state *parser_push_state_generic(
struct ivy_parser *parser, enum ivy_ast_node_type type,
size_t node_size)
struct parser_state *parser_push_state(
struct ivy_parser *parser, enum ivy_ast_node_type type)
{
const struct ast_node_type *node_type = get_ast_node_type(type);
if (!node_type) {
@@ -87,7 +86,7 @@ struct parser_state *parser_push_state_generic(
state->s_parent = current_state->s_node;
}
state->s_node = ast_node_create_with_size(type, node_size);
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);