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 += ')';
}
- formatted += ')';
if(iter.body.body.empty())
formatted += " { }";