mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2024-11-27 22:22:17 +00:00
Merge branch 'master' into blub/bc3
This commit is contained in:
commit
f103544c95
2 changed files with 14 additions and 0 deletions
13
ast.c
13
ast.c
|
@ -432,6 +432,19 @@ void ast_block_delete(ast_block *self)
|
|||
mem_d(self);
|
||||
}
|
||||
|
||||
bool ast_block_set_type(ast_block *self, ast_expression *from)
|
||||
{
|
||||
if (self->expression.next)
|
||||
ast_delete(self->expression.next);
|
||||
self->expression.vtype = from->expression.vtype;
|
||||
if (from->expression.next) {
|
||||
self->expression.next = ast_type_copy(self->expression.node.context, from->expression.next);
|
||||
if (!self->expression.next)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
ast_function* ast_function_new(lex_ctx ctx, const char *name, ast_value *vtype)
|
||||
{
|
||||
ast_instantiate(ast_function, ctx, ast_function_delete);
|
||||
|
|
1
ast.h
1
ast.h
|
@ -361,6 +361,7 @@ struct ast_block_s
|
|||
};
|
||||
ast_block* ast_block_new(lex_ctx ctx);
|
||||
void ast_block_delete(ast_block*);
|
||||
bool ast_block_set_type(ast_block*, ast_expression *from);
|
||||
|
||||
MEM_VECTOR_PROTO(ast_block, ast_value*, locals);
|
||||
MEM_VECTOR_PROTO(ast_block, ast_expression*, exprs);
|
||||
|
|
Loading…
Reference in a new issue