Checkpoint. Pretty printing of switch and case statements.

This commit is contained in:
Roberto Raggi
2009-01-07 10:59:36 +01:00
parent 8ec03e6bcd
commit f4bf0a3a6d
2 changed files with 23 additions and 1 deletions

View File

@@ -198,7 +198,24 @@ bool PrettyPrinter::visit(CaseStatementAST *ast)
out << "case ";
accept(ast->expression);
out << ':';
accept(ast->statement);
if (! ast->statement) {
newline();
return false;
}
if (ast->statement->asCompoundStatement()) {
out << ' ';
accept(ast->statement);
} else if (ast->statement->asCaseStatement() || ast->statement->asLabeledStatement()) {
newline();
accept(ast->statement);
} else {
indent();
newline();
accept(ast->statement);
deindent();
newline();
}
return false;
}