X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ast.c;h=cb40c3f7cee32901a5cf82dd14595241f9a74dbd;hb=093d261f7daac072333ae1f2227a73aa6dc53efd;hp=e3e4bea0459a309d2cd3b436cf38146f2d140134;hpb=99f5a3cd09e0d7d6127751fc9f6550b5dcbbbd33;p=cparser diff --git a/ast.c b/ast.c index e3e4bea..cb40c3f 100644 --- 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. @@ -197,6 +190,8 @@ static unsigned get_expression_precedence(expression_kind_t kind) */ static void print_quoted_string(const string_t *const string, char border) { + print_string(get_string_encoding_prefix(string->encoding)); + print_char(border); const char *end = string->begin + string->size; for (const char *c = string->begin; c != end; ++c) { @@ -233,7 +228,6 @@ static void print_quoted_string(const string_t *const string, char border) static void print_string_literal(string_literal_expression_t const *const literal, char const delimiter) { - print_string(get_string_encoding_prefix(literal->encoding)); print_quoted_string(&literal->value, delimiter); } @@ -247,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: @@ -1181,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; @@ -1202,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(" = ");