public override void VisitConditionalStmt(ConditionalStmt x) { using (new ScopeHelper(this, x)) { base.VisitConditionalStmt(x); } }
/// <summary> /// Constructs if branch basic block. /// </summary> /// <param name="bottomBox">Merge destination for if and else branch.</param> /// <param name="condition">The condition of the if branch.</param> /// <returns>Empty basic block for the else branch</returns> private BasicBlock constructIfBranch(BasicBlock bottomBox, ConditionalStmt condition) { BasicBlock thenBranchBlock = new BasicBlock(); BasicBlock elseBranchBlock = new BasicBlock(); BasicBlockEdge.ConnectConditionalBranching(condition.Condition, currentBasicBlock, thenBranchBlock, elseBranchBlock, false); currentBasicBlock = thenBranchBlock; condition.Statement.VisitMe(this); BasicBlockEdge.ConnectDirectEdge(currentBasicBlock, bottomBox); return(elseBranchBlock); }
override public void VisitConditionalStmt(ConditionalStmt x) { _serializer.StartSerialize(typeof(ConditionalStmt).Name, SerializeSpan(x.Span)); _serializer.StartSerialize("Condition"); if (x.Condition != null) { VisitElement(x.Condition); } _serializer.EndSerialize(); _serializer.StartSerialize("Statement"); VisitElement(x.Statement); _serializer.EndSerialize(); _serializer.EndSerialize(); }
public sealed override void VisitConditionalStmt(ConditionalStmt x) { throw new InvalidOperationException(); // VisitIfStmt }
/// <summary> /// Visits condition and statement. /// </summary> virtual public void VisitConditionalStmt(ConditionalStmt x) { VisitElement(x.Condition); VisitElement(x.Statement); }
public override void VisitConditionalStmt(ConditionalStmt x) { throw new InvalidOperationException(); // should be handled by IfStmt }
private static ElseExpression ToElseExpression(ConditionalStmt c) { return(new ElseExpression(body: Parse(c.Statement))); }
private static IfExpression ToIfExpression(ConditionalStmt c) { return(new IfExpression(condition: Parse(c.Condition), body: Parse(c.Statement))); }