typedef token_kind_t as int
[cparser] / ast.c
diff --git a/ast.c b/ast.c
index 005d0fc..cb40c3f 100644 (file)
--- a/ast.c
+++ b/ast.c
@@ -67,13 +67,6 @@ void print_indent(void)
                print_char('\t');
 }
 
-static void print_stringrep(const string_t *string)
-{
-       for (size_t i = 0; i < string->size; ++i) {
-               print_char(string->begin[i]);
-       }
-}
-
 /**
  * Returns 1 if a given precedence level has right-to-left
  * associativity, else 0.
@@ -248,8 +241,7 @@ static void print_literal(const literal_expression_t *literal)
        case EXPR_LITERAL_BOOLEAN:
        case EXPR_LITERAL_FLOATINGPOINT:
        case EXPR_LITERAL_INTEGER:
-               print_stringrep(&literal->value);
-               print_stringrep(&literal->suffix);
+               print_string(literal->value.begin);
                return;
 
        default:
@@ -1182,11 +1174,11 @@ void print_initializer(const initializer_t *initializer)
        }
 
        switch (initializer->kind) {
-       case INITIALIZER_VALUE: {
-               const initializer_value_t *value = &initializer->value;
-               print_assignment_expression(value->value);
+       case INITIALIZER_STRING:
+       case INITIALIZER_VALUE:
+               print_assignment_expression(initializer->value.value);
                return;
-       }
+
        case INITIALIZER_LIST: {
                print_string("{ ");
                const initializer_list_t *list = &initializer->list;
@@ -1203,10 +1195,6 @@ void print_initializer(const initializer_t *initializer)
                return;
        }
 
-       case INITIALIZER_STRING:
-               print_string_literal(get_init_string(initializer), '"');
-               return;
-
        case INITIALIZER_DESIGNATOR:
                print_designator(initializer->designator.designator);
                print_string(" = ");