X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=write_fluffy.c;h=295623172ff6f5fc13d59dfabfb0cf44ec125e6c;hb=6c785d56ed010a3a1a5b8cffe3cc7c8394f69590;hp=4895a361dd708c9f2e55422c30af8d411b28ac79;hpb=7ef1a1bb85402943131db02b4f11092c5fbe9c0b;p=cparser diff --git a/write_fluffy.c b/write_fluffy.c index 4895a36..2956231 100644 --- a/write_fluffy.c +++ b/write_fluffy.c @@ -131,7 +131,7 @@ static void write_function_type(const function_type_t *type) } fprintf(out, ") : "); - write_type(type->result_type); + write_type(type->return_type); fprintf(out, ")"); } @@ -200,11 +200,11 @@ static void write_expression(const expression_t *expression); static void write_unary_expression(const unary_expression_t *expression) { - switch(expression->type) { - case UNEXPR_NEGATE: + switch(expression->expression.type) { + case EXPR_UNARY_NEGATE: fputc('-', out); break; - case UNEXPR_NOT: + case EXPR_UNARY_NOT: fputc('!', out); break; default: @@ -226,7 +226,7 @@ static void write_expression(const expression_t *expression) fprintf(out, "%Lf", constant->v.float_value); } break; - case EXPR_UNARY: + EXPR_UNARY_CASES write_unary_expression((const unary_expression_t*) expression); break; default: @@ -298,27 +298,20 @@ static void write_function(const declaration_t *declaration) } fprintf(out, ")"); - const type_t *result_type = function_type->result_type; - if(result_type->type != TYPE_ATOMIC || - ((const atomic_type_t*) result_type)->atype != ATOMIC_TYPE_VOID) { + const type_t *return_type = function_type->return_type; + if(!is_type_atomic(return_type, ATOMIC_TYPE_VOID)) { fprintf(out, " : "); - write_type(result_type); + write_type(return_type); } fputc('\n', out); } -void write_fluffy_decls(const translation_unit_t *unit) +void write_fluffy_decls(FILE *output, const translation_unit_t *unit) { -#if 0 - out = fopen("out.fluffy", "w"); - if(out == NULL) { - fprintf(stderr, "Couldn't open out.fluffy: %s\n", strerror(errno)); - exit(1); - } -#endif - out = stdout; + out = output; global_context = &unit->context; + ast_set_output(out); fprintf(out, "/* WARNING: Automatically generated file */\n"); /* write structs,unions + enums */ @@ -369,6 +362,4 @@ void write_fluffy_decls(const translation_unit_t *unit) write_function(declaration); } - - //fclose(out); }