public virtual T Visit(DoWhileExpression expression) { expression.Block.Accept(this); expression.Condition.Accept(this); return(default(T)); }
public object Visit(DoWhileExpression node) { if (node.Body != null) { Visit(node.Body); } return(null); }
public virtual Expression Visit(DoWhileExpression expression) { return(new DoWhileExpression( expression.Token, (ScopeExpression)expression.Block.Accept(this), expression.Condition.Accept(this)) { EndToken = expression.EndToken }); }
public int Visit(DoWhileExpression expression) { _writer.WriteLine("do"); expression.Block.Accept(this); _writer.Write(" while ("); expression.Condition.Accept(this); _writer.Write(")"); return(0); }
private CodeStatementCollection GenerateImperativeStatement(DoWhileExpression node) { var body = GenerateImperativeStatements(node.Body); body.Add(new CodeConditionStatement( CodeHelper.BinOpExp( GenerateImperativeExpression(node.Condition, isCondition: true), CodeBinaryOperatorType.ValueEquality, CodeHelper.False()), new CodeSnippetStatement("break;"))); return(new CodeStatementCollection(new[] { CodeHelper.While(CodeHelper.True(), body.OfType <CodeStatement>().ToArray()) })); }
public DoWhileExpression Visit(DoWhileExpression doWhile) { codeWriter.Write("do {", currentIndent); codeWriter.NewLine(); currentIndent++; Visit(doWhile.Body); currentIndent--; codeWriter.Write("} while(", currentIndent); insideExpressionCount++; Visit(doWhile.Test); insideExpressionCount--; codeWriter.Write(")"); codeWriter.NewLine(); return(null); }
public string Visit(DoWhileExpression doWhile) { var codeWriter = new XzaarCodeWriter(); codeWriter.Write("do {", currentIndent); codeWriter.NewLine(); currentIndent++; codeWriter.Write(Visit(doWhile.Body)); currentIndent--; codeWriter.Write("} while(", currentIndent); insideExpressionCount++; codeWriter.Write(Visit(doWhile.Test)); insideExpressionCount--; codeWriter.Write(")"); codeWriter.NewLine(); return(codeWriter.ToString()); }
public static DoWhileExpression Create( AphidExpressionContext context_aphidExpressionContext, AphidExpression condition_aphidExpression, List <AphidExpression> body_list, int value_i, int value_i1 ) { DoWhileExpression doWhileExpression = new DoWhileExpression (context_aphidExpressionContext, condition_aphidExpression, body_list); ((AphidExpression)doWhileExpression).Index = value_i; ((AphidExpression)doWhileExpression).Length = value_i1; return(doWhileExpression); // TODO: Edit factory method of DoWhileExpression // This method should be able to configure the object in all possible ways. // Add as many parameters as needed, // and assign their values to each field by using the API. }
public void evalExpression(Expression exp) { if (exp == null) { return; } if (exp is InstructionExpression) { evalInstruction((InstructionExpression)exp); return; } else if (exp is SequenceExpression) { SequenceExpression seqExp = (SequenceExpression)exp, seqTmp; Expression expTmp; int index = insertIndex; seqTmp = new SequenceExpression(new List <Expression>(seqExp.exps)); seqs.Add(seqExp); runningSeqs.Add(seqTmp); index = runningSeqs.Count - 1; while (seqTmp.exps.Count > 0) { expTmp = seqTmp.exps.ElementAt(0); evalExpression(expTmp); seqTmp.exps.RemoveAt(0); if (!shouldEvalSeq) { if (seqTmp.exps.Count == 0) { runningSeqs.RemoveAt(index); } return; } } runningSeqs.RemoveAt(runningSeqs.Count - 1); removeDeclaredVariables(seqs.ElementAt(seqs.Count - 1).declaredVariables()); seqs.RemoveAt(seqs.Count - 1); return; } else if (exp is IfExpression) { ifExp = (IfExpression)exp; o1 = evalSimpleExpression(ifExp.condition); if ((bool)o1.value) { evalExpression(ifExp.body); return; } if (ifExp.elseIfList != null) { foreach (ElseIfExpression elseIfExp in ifExp.elseIfList) { o1 = evalSimpleExpression(elseIfExp.condition); if ((bool)o1.value) { evalExpression(elseIfExp.corps); return; } } } if (ifExp.elseBlock != null) { evalExpression(ifExp.elseBlock.body); return; } return; } else if (exp is SwitchExpression) { switchExp = (SwitchExpression)exp; o1 = evalSimpleExpression(switchExp.exp); foreach (SwitchCaseExpression sce in switchExp.cases) { if (sce is CaseExpression) { if (o1.type == ObjectType.stringType && isCatched((string)o1.value, sce, false)) { return; } else if (o1.type == ObjectType.intType && isCatched((int)o1.value, sce, false)) { return; } } else if (sce is DefaultExpression) { evalExpression(((DefaultExpression)sce).body); return; } } return; } else if (exp is WhileExpression) { whileExp = (WhileExpression)exp; while (true) { o1 = evalSimpleExpression(whileExp.condition); if (!(bool)o1.value) { return; } evalExpression(whileExp.body); } } else if (exp is DoWhileExpression) { doWhileExp = (DoWhileExpression)exp; do { evalExpression(doWhileExp.body); o1 = evalSimpleExpression(doWhileExp.condition); if (!(bool)o1.value) { return; } } while (true); } else if (exp is ForExpression) { forExp = (ForExpression)exp; evalExpression(forExp.init); while (true) { o1 = evalSimpleExpression(forExp.condition); if (!(bool)o1.value) { return; } evalExpression(forExp.body); evalExpression(forExp.maj); } } }
[DebuggerStepThrough] protected virtual void EmitDoWhileExpression(DoWhileExpression expression, bool isStatement = false) { throw new NotImplementedException(); }
public object Visit(DoWhileExpression node) { return(null); }
protected virtual Expression VisitDoWhile(DoWhileExpression node) { Visit(node.Test); Visit(node.Body); return(node); }
public object Visit(DoWhileExpression doWhile) { throw new System.NotImplementedException(); }