void print_initializer(const initializer_t *initializer)
{
if(initializer->type == INITIALIZER_VALUE) {
- //print_expression(initializer->v.value);
+ initializer_value_t *value = (initializer_value_t*) initializer;
+ 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) {
+ initializer_list_t *list = (initializer_list_t*) initializer;
+
+ 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)
fputc(')', out);
}
-static
-void print_pointer_type_pre(const pointer_type_t *type)
+static void print_pointer_type_pre(const pointer_type_t *type)
{
intern_print_type_pre(type->points_to);
fputs("*", out);
intern_print_type_post(type->points_to);
}
+static void print_array_type_pre(const array_type_t *type)
+{
+ intern_print_type_pre(type->element_type);
+}
+
static void print_array_type_post(const array_type_t *type)
{
+ intern_print_type_post(type->element_type);
fputc('[', out);
if(type->is_static) {
fputs("static ", out);
print_pointer_type_pre((pointer_type_t*) type);
return;
case TYPE_ARRAY:
+ print_array_type_pre((array_type_t*) type);
return;
case TYPE_TYPEDEF:
print_typedef_type_pre((typedef_type_t*) type);