X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=wrappergen%2Fwrite_fluffy.c;h=f3f752ff4e2fdb341d3c618c62f44c0e85953acc;hb=c080804a9ae61e4ba0ec6fc7288c81c326fa9ddb;hp=ac5456a0b9bab8ee314bdbe991b822562497b5e8;hpb=6d7d61de445629e1590d3a2ba2990ef7a651368a;p=cparser diff --git a/wrappergen/write_fluffy.c b/wrappergen/write_fluffy.c index ac5456a..f3f752f 100644 --- a/wrappergen/write_fluffy.c +++ b/wrappergen/write_fluffy.c @@ -29,6 +29,7 @@ #include "entity_t.h" #include "type.h" #include "adt/error.h" +#include "printer.h" static const scope_t *global_scope; static FILE *out; @@ -42,7 +43,7 @@ static const char *get_atomic_type_string(const atomic_type_kind_t type) case ATOMIC_TYPE_CHAR: return "byte"; case ATOMIC_TYPE_SCHAR: return "byte"; case ATOMIC_TYPE_UCHAR: return "unsigned byte"; - case ATOMIC_TYPE_SHORT: return "short"; + case ATOMIC_TYPE_SHORT: return "short"; case ATOMIC_TYPE_USHORT: return "unsigned short"; case ATOMIC_TYPE_INT: return "int"; case ATOMIC_TYPE_UINT: return "unsigned int"; @@ -172,8 +173,6 @@ static void write_type(const type_t *type) case TYPE_FUNCTION: write_function_type(&type->function); return; - case TYPE_INVALID: - panic("invalid type found"); case TYPE_COMPLEX: case TYPE_IMAGINARY: default: @@ -222,16 +221,9 @@ static void write_unary_expression(const unary_expression_t *expression) static void write_expression(const expression_t *expression) { - const const_expression_t *constant; - /* TODO */ switch(expression->kind) { - case EXPR_CONST: - constant = &expression->conste; - if(is_type_integer(expression->base.type)) { - fprintf(out, "%lld", constant->v.int_value); - } else { - fprintf(out, "%Lf", constant->v.float_value); - } + case EXPR_LITERAL_INTEGER: + fprintf(out, "%s", expression->literal.value.begin); break; EXPR_UNARY_CASES write_unary_expression((const unary_expression_t*) expression); @@ -317,8 +309,7 @@ void write_fluffy_decls(FILE *output, const translation_unit_t *unit) out = output; global_scope = &unit->scope; - ast_set_output(out); - type_set_output(out); + print_to_file(out); fprintf(out, "/* WARNING: Automatically generated file */\n"); /* write structs,unions + enums */