Add the helper function create_Const_from_bool() to create 0/1 constant from a boolea...
[cparser] / wrappergen / write_fluffy.c
index dadf943..05763d4 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of cparser.
- * Copyright (C) 2007-2008 Matthias Braun <matze@braunis.de>
+ * Copyright (C) 2007-2009 Matthias Braun <matze@braunis.de>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -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;
@@ -222,16 +223,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 +311,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 */