public override Statement CloneStatementOnly()
 {
     BlockStatement clonedBody = body != null ? body.CloneStatementOnly() as BlockStatement : null;
     ForStatement result = new ForStatement(Initializer.CloneExpressionOnly(), Condition.CloneExpressionOnly(), Increment.CloneExpressionOnly(), clonedBody);
     result.ConditionBlock = null;
     CopyParentAndLabel(result);
     return result;
 }
 public override void VisitForStatement(ForStatement node)
 {
     return;
 }
 public override ICodeNode VisitForStatement(ForStatement node)
 {
     statements.Push(node);
     base.VisitForStatement(node);
     statements.Pop();
     return node;
 }
        private ForStatement CreateForStatement(Statement initializer, WhileStatement theWhile)
        {
            int forStatementsCount = theWhile.Body.Statements.Count - 1;
            string incrementLabel = theWhile.Body.Statements[forStatementsCount].Label;
            ForStatement result = new ForStatement(
                (initializer as ExpressionStatement).Expression,
                theWhile.Condition,
                (theWhile.Body.Statements[forStatementsCount] as ExpressionStatement).Expression,
                new BlockStatement());

            for (int i = 0; i < forStatementsCount; i++)
            {
                result.Body.AddStatement(theWhile.Body.Statements[i]);
            }

            if (!string.IsNullOrEmpty(incrementLabel))
            {
                EmptyStatement emptyStatement = new EmptyStatement() { Label = incrementLabel };
                result.Body.AddStatement(emptyStatement);
            }

            return result;
        }
        public override void VisitForStatement(ForStatement node)
        {
            BinaryExpression binaryExpression = node.Condition as BinaryExpression;
            Expression incrementExpression = node.Increment;

            if (binaryExpression == null || incrementExpression == null)
            {
                throw new Exception("Unexpected null value.");
            }

            if (binaryExpression.IsAssignmentExpression)
            {
                return;
            }
            loopStates.Push(StatementState.For);
            var forStep = GetForStep(incrementExpression);
            WriteKeyword("For");
            WriteSpace();
            loopStates.Push(StatementState.ForEachInitializer);
            Visit(node.Initializer);
            loopStates.Pop();
            WriteSpace();
            WriteKeyword("To");
            WriteSpace();
            Visit(binaryExpression.Right);
            if (forStep != null)
            {
                WriteSpace();
                WriteKeyword("Step");
                WriteSpace();
                Visit(forStep);
            }
            WriteLine();
            Visit(node.Body);
            WriteKeyword(KeyWordWriter.Next);
            WriteLine();
            loopStates.Pop();
        }
		public override void VisitForStatement(ForStatement node)
		{
			TryProcessConditionStatement(node);
			Visit(node.Initializer);

			states.Push(Step.Expression);
			Visit(node.Condition);
			states.Pop();

			Visit(node.Increment);
			Visit(node.Body);
		}
 public override void VisitForStatement(ForStatement node)
 {
     expressions.Push(ExpressionKind.ForInitializer);
     Visit(node.Initializer);
     expressions.Pop();
     Visit(node.Condition);
     Visit(node.Increment);
     Visit(node.Body);
 }
 public override void VisitForStatement(ForStatement node)
 {
     WriteKeyword("for");
     WriteSpace();
     WriteToken("(");
     Visit(node.Initializer);
     WriteToken(";");
     WriteSpace();
     Visit(node.Condition);
     WriteToken(";");
     WriteSpace();
     Visit(node.Increment);
     WriteToken(")");
     WriteLine();
     Visit(node.Body);
 }
 public virtual void VisitForStatement(ForStatement node)
 {
     Visit(node.Initializer);
     Visit(node.Condition);
     Visit(node.Increment);
     Visit(node.Body);
 }
		public override void VisitForStatement(ForStatement node)
		{
			TryMergeExpressions(node);
			base.VisitForStatement(node);
		}