void ProgramCompiler::Formatter::visit(Iteration &iter)
{
- formatted += "for(";
- if(iter.init_statement)
- iter.init_statement->visit(*this);
- else
- formatted += ';';
- if(iter.condition)
+ if(!iter.init_statement && iter.condition && !iter.loop_expression)
{
- formatted += ' ';
+ formatted += "while(";
iter.condition->visit(*this);
+ formatted += ')';
}
- formatted += ';';
- if(iter.loop_expression)
+ else
{
- formatted += ' ';
- iter.loop_expression->visit(*this);
+ formatted += "for(";
+ if(iter.init_statement)
+ iter.init_statement->visit(*this);
+ else
+ formatted += ';';
+ if(iter.condition)
+ {
+ formatted += ' ';
+ iter.condition->visit(*this);
+ }
+ formatted += ';';
+ if(iter.loop_expression)
+ {
+ formatted += ' ';
+ iter.loop_expression->visit(*this);
+ }
+ formatted += ')';
+ }
+
+ if(iter.body.body.empty())
+ formatted += " { }";
+ else
+ {
+ formatted += '\n';
+ iter.body.visit(*this);
}
- formatted += ')';
- iter.body.visit(*this);
}
void ProgramCompiler::Formatter::visit(Return &ret)