private void TraverseInitializersOrIncrementers(IEnumerable<IStatement> statements) {
bool first = true;
foreach (var statement in statements) {
if (!first) this.sourceEmitterOutput.Write(", ");
var expressionStatement = statement as IExpressionStatement;
if (expressionStatement != null)
this.Traverse(expressionStatement.Expression);
else {
var localDeclarationStatement = statement as ILocalDeclarationStatement;
if (localDeclarationStatement != null) {
if (first) {
this.PrintTypeReference(localDeclarationStatement.LocalVariable.Type);
this.sourceEmitterOutput.Write(" ");
} else {
this.sourceEmitterOutput.Write(", ");
}
this.sourceEmitterOutput.Write(localDeclarationStatement.LocalVariable.Name.Value);
if (localDeclarationStatement.InitialValue != null) {
this.sourceEmitterOutput.Write(" = ");
this.Traverse(localDeclarationStatement.InitialValue);
}
} else
this.Traverse(statement);
}
first = false;
}
}