mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-03-22 10:41:43 +00:00
todo note
This commit is contained in:
parent
418430e05d
commit
6ba195bcfe
1 changed files with 1 additions and 70 deletions
71
ast.c
71
ast.c
|
@ -159,73 +159,4 @@ void ast_function_delete(ast_function *self)
|
|||
/* AST codegen aprt
|
||||
*/
|
||||
|
||||
#if 0
|
||||
static qbool ast_value_gen_global(ir_builder *ir, ast_value *self, ir_value **out)
|
||||
{
|
||||
ir_value *v;
|
||||
*out = NULL;
|
||||
|
||||
/* Generate functions */
|
||||
if (self->vtype == qc_function && self->isconst)
|
||||
{
|
||||
/* Without isconst it would be invalid... function pointers actually have
|
||||
* type qc_pointer and next with type qc_function
|
||||
*/
|
||||
ast_function *func = self->constval.vfunc;
|
||||
if (!ast_function_codegen(func, ir))
|
||||
return false;
|
||||
|
||||
/* Here we do return NULL anyway */
|
||||
return true;
|
||||
}
|
||||
else if (self->vtype == qc_function && !self->isconst) {
|
||||
fprintf(stderr,
|
||||
"!v->isconst <- qc_function body missing - FIXME: remove when implementing prototypes\n");
|
||||
fprintf(stderr, "Value: %s\n", self->name);
|
||||
abort();
|
||||
}
|
||||
|
||||
v = ir_builder_create_global(ir, self->name, self->vtype);
|
||||
self->ir_v = v;
|
||||
|
||||
*out = v;
|
||||
return true;
|
||||
}
|
||||
|
||||
qbool ast_value_codegen(ast_value *self, ast_function *func, ir_value **out)
|
||||
{
|
||||
if (!func)
|
||||
return ast_value_gen_global(ir, self, out);
|
||||
return false;
|
||||
}
|
||||
|
||||
qbool ast_function_codegen(ast_function *self, ir_builder *builder)
|
||||
{
|
||||
size_t i;
|
||||
for (i = 0; i < self->blocks_count; ++i)
|
||||
{
|
||||
ast_expression *expr;
|
||||
ir_value *out;
|
||||
|
||||
expr = (ast_expression*)self->blocks[i];
|
||||
|
||||
if (!(expr->expression.codegen)(expr, self, &out))
|
||||
{
|
||||
/* there was an error while building this expression... */
|
||||
return false;
|
||||
}
|
||||
(void)out;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
qbool ast_block_codegen(ast_block *self, ir_function *func, ir_value **out)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
qbool ast_bin_store_codegen(ast_binary *self, ir_function *func, ir_value **out)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
/* TODO */
|
||||
|
|
Loading…
Reference in a new issue