X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ast.c;h=984df78d4acc2b6b9fad306f6bcd0fc6d7987b60;hb=f0b545b1bc21b2e153590fe034d063d2498174e2;hp=27105f6c9db5c03f9e804f7fe1fa6c14dde81bc3;hpb=cdca5b5a7f3a8d64d426cf8fc99345179e9cca46;p=cparser diff --git a/ast.c b/ast.c index 27105f6..984df78 100644 --- a/ast.c +++ b/ast.c @@ -380,6 +380,7 @@ static void print_case_label(const case_label_statement_t *statement) print_expression(statement->expression); fputs(":\n", out); } + print_statement(statement->label_statement); } static void print_declaration_statement( @@ -512,22 +513,22 @@ static void print_storage_class(storage_class_t storage_class) void print_initializer(const initializer_t *initializer) { if(initializer->type == INITIALIZER_VALUE) { - //print_expression(initializer->v.value); + const initializer_value_t *value = &initializer->value; + print_expression(value->value); return; } -#if 0 assert(initializer->type == INITIALIZER_LIST); fputs("{ ", out); - initializer_t *iter = initializer->v.list; - for( ; iter != NULL; iter = iter->next) { - print_initializer(iter); - if(iter->next != NULL) { + const initializer_list_t *list = &initializer->list; + + for(size_t i = 0 ; i < list->len; ++i) { + if(i > 0) { fputs(", ", out); } + print_initializer(list->initializers[i]); } fputs("}", out); -#endif } static void print_normal_declaration(const declaration_t *declaration)