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); }