X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=ast.cpp;h=73f9b1288ae3ef55a2a83f92f728ecec64ae6bca;hp=4768e6e5bb9db83be59b9415cb73733d66d829b9;hb=9535805c02ec0a27fe882d6dd16c857856858002;hpb=db9c37d18bcced1c3b0f1421044155b1d88f0b25 diff --git a/ast.cpp b/ast.cpp index 4768e6e..73f9b12 100644 --- a/ast.cpp +++ b/ast.cpp @@ -67,12 +67,12 @@ static GMQCC_NORETURN void _ast_node_destroy(ast_node *self) } /* Initialize main ast node aprts */ -static void ast_node_init(ast_node *self, lex_ctx_t ctx, int nodetype) +static void ast_node_init(ast_node *self, lex_ctx_t ctx, int node_type) { self->context = ctx; - self->destroy = &_ast_node_destroy; - self->keep = false; - self->nodetype = nodetype; + self->destroy = &_ast_node_destroy; + self->keep_node = false; + self->node_type = node_type; self->side_effects = false; } @@ -120,9 +120,9 @@ ast_value* ast_value_copy(const ast_value *self) { const ast_expression *fromex; ast_expression *selfex; - ast_value *cp = ast_value_new(self->expression.node.context, self->name, self->expression.vtype); + ast_value *cp = ast_value_new(self->expression.context, self->name, self->expression.vtype); if (self->expression.next) { - cp->expression.next = ast_type_copy(self->expression.node.context, self->expression.next); + cp->expression.next = ast_type_copy(self->expression.context, self->expression.next); } fromex = &self->expression; selfex = &cp->expression; @@ -325,7 +325,7 @@ ast_value* ast_value_new(lex_ctx_t ctx, const char *name, int t) ast_instantiate(ast_value, ctx, ast_value_delete); ast_expression_init((ast_expression*)self, (ast_expression_codegen*)&ast_value_codegen); - self->expression.node.keep = true; /* keep */ + self->expression.keep_node = true; /* keep */ self->name = name ? util_strdup(name) : nullptr; self->expression.vtype = t; @@ -366,7 +366,7 @@ void ast_value_delete(ast_value* self) break; case TYPE_FUNCTION: /* unlink us from the function node */ - self->constval.vfunc->vtype = nullptr; + self->constval.vfunc->function_type = nullptr; break; /* NOTE: delete function? currently collected in * the parser structure @@ -617,7 +617,7 @@ ast_member* ast_member_new(lex_ctx_t ctx, ast_expression *owner, unsigned int fi } ast_expression_init((ast_expression*)self, (ast_expression_codegen*)&ast_member_codegen); - self->expression.node.keep = true; /* keep */ + self->expression.keep_node = true; /* keep */ if (owner->vtype == TYPE_VECTOR) { self->expression.vtype = TYPE_FLOAT; @@ -642,7 +642,7 @@ ast_member* ast_member_new(lex_ctx_t ctx, ast_expression *owner, unsigned int fi void ast_member_delete(ast_member *self) { - /* The owner is always an ast_value, which has .keep=true, + /* The owner is always an ast_value, which has .keep_node=true, * also: ast_members are usually deleted after the owner, thus * this will cause invalid access ast_unref(self->owner); @@ -1139,7 +1139,7 @@ bool ast_block_add_expr(ast_block *self, ast_expression *e) void ast_block_collect(ast_block *self, ast_expression *expr) { self->collect.push_back(expr); - expr->node.keep = true; + expr->keep_node = true; } void ast_block_delete(ast_block *self) @@ -1173,8 +1173,8 @@ ast_function* ast_function_new(lex_ctx_t ctx, const char *name, ast_value *vtype goto cleanup; } - self->vtype = vtype; - self->name = name ? util_strdup(name) : nullptr; + self->function_type = vtype; + self->name = name ? util_strdup(name) : nullptr; self->labelcount = 0; self->builtin = 0; @@ -1202,14 +1202,14 @@ void ast_function_delete(ast_function *self) { if (self->name) mem_d((void*)self->name); - if (self->vtype) { - /* ast_value_delete(self->vtype); */ - self->vtype->hasvalue = false; - self->vtype->constval.vfunc = nullptr; + if (self->function_type) { + /* ast_value_delete(self->function_type); */ + self->function_type->hasvalue = false; + self->function_type->constval.vfunc = nullptr; /* We use unref - if it was stored in a global table it is supposed * to be deleted from *there* */ - ast_unref(self->vtype); + ast_unref(self->function_type); } for (auto &it : self->static_names) mem_d(it); @@ -1781,7 +1781,7 @@ bool ast_function_codegen(ast_function *self, ir_builder *ir) } /* fill the parameter list */ - ec = &self->vtype->expression; + ec = &self->function_type->expression; for (auto &it : ec->params) { if (it->expression.vtype == TYPE_FIELD) vec_push(irf->params, it->expression.next->vtype); @@ -1854,8 +1854,8 @@ bool ast_function_codegen(ast_function *self, ir_builder *ir) /* TODO: check return types */ if (!self->curblock->final) { - if (!self->vtype->expression.next || - self->vtype->expression.next->vtype == TYPE_VOID) + if (!self->function_type->expression.next || + self->function_type->expression.next->vtype == TYPE_VOID) { return ir_block_create_return(self->curblock, ast_ctx(self), nullptr); }