CSharpSourceEmitter.SourceEmitter.TraverseInitializersOrIncrementers C# (CSharp) Method

TraverseInitializersOrIncrementers() private method

private TraverseInitializersOrIncrementers ( IEnumerable statements ) : void
statements IEnumerable
return void
    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;
      }
    }
SourceEmitter