- print_typeprop_expression(&expression->typeprop);
- break;
- case EXPR_BUILTIN_CONSTANT_P:
- print_builtin_constant(&expression->builtin_constant);
- break;
- case EXPR_BUILTIN_TYPES_COMPATIBLE_P:
- print_builtin_types_compatible(&expression->builtin_types_compatible);
- break;
- case EXPR_CONDITIONAL:
- print_conditional(&expression->conditional);
- break;
- case EXPR_VA_START:
- print_va_start(&expression->va_starte);
- break;
- case EXPR_VA_ARG:
- print_va_arg(&expression->va_arge);
- break;
- case EXPR_VA_COPY:
- print_va_copy(&expression->va_copye);
- break;
- case EXPR_SELECT:
- print_select(&expression->select);
- break;
- case EXPR_CLASSIFY_TYPE:
- print_classify_type_expression(&expression->classify_type);
- break;
- case EXPR_OFFSETOF:
- print_offsetof_expression(&expression->offsetofe);
+ case EXPR_SIZEOF: print_typeprop_expression( &expr->typeprop); break;
+ case EXPR_ARRAY_ACCESS: print_array_expression( &expr->array_access); break;
+ case EXPR_BINARY_CASES: print_binary_expression( &expr->binary); break;
+ case EXPR_BUILTIN_CONSTANT_P: print_builtin_constant( &expr->builtin_constant); break;
+ case EXPR_BUILTIN_TYPES_COMPATIBLE_P: print_builtin_types_compatible(&expr->builtin_types_compatible); break;
+ case EXPR_CALL: print_call_expression( &expr->call); break;
+ case EXPR_CLASSIFY_TYPE: print_classify_type_expression(&expr->classify_type); break;
+ case EXPR_COMPOUND_LITERAL: print_compound_literal( &expr->compound_literal); break;
+ case EXPR_CONDITIONAL: print_conditional( &expr->conditional); break;
+ case EXPR_ERROR: print_string("$error$"); break;
+ case EXPR_FUNCNAME: print_funcname( &expr->funcname); break;
+ case EXPR_LABEL_ADDRESS: print_label_address_expression(&expr->label_address); break;
+ case EXPR_LITERAL_CASES: print_literal( &expr->literal); break;
+ case EXPR_LITERAL_CHARACTER: print_string_literal( &expr->string_literal, '\''); break;
+ case EXPR_OFFSETOF: print_offsetof_expression( &expr->offsetofe); break;
+ case EXPR_REFERENCE:
+ case EXPR_ENUM_CONSTANT: print_reference_expression( &expr->reference); break;
+ case EXPR_SELECT: print_select( &expr->select); break;
+ case EXPR_STATEMENT: print_statement_expression( &expr->statement); break;
+ case EXPR_STRING_LITERAL: print_string_literal( &expr->string_literal, '"'); break;
+ case EXPR_UNARY_CASES: print_unary_expression( &expr->unary); break;
+ case EXPR_VA_ARG: print_va_arg( &expr->va_arge); break;
+ case EXPR_VA_COPY: print_va_copy( &expr->va_copye); break;
+ case EXPR_VA_START: print_va_start( &expr->va_starte); break;
+ }
+ if (parenthesized)
+ print_char(')');
+}
+
+static void print_indented_statement(statement_t const *const stmt)
+{
+ switch (stmt->kind) {
+ case STATEMENT_LABEL: