Example #1
0
        public override void AfterVisit(IfStatement node)
        {
            Expression falseBlock = null;

            if (node.FalseStatementBlock != null)
                falseBlock = _expressionStack.Pop();

            Expression trueBlock = _expressionStack.Pop();
            Expression condition = Expression.Convert(_expressionStack.Pop(), typeof(Boolean));

            ConditionalExpression ifThenExpression;
            if (falseBlock != null)
                ifThenExpression = Expression.IfThenElse(condition, trueBlock, falseBlock);
            else
                ifThenExpression = Expression.IfThen(condition, trueBlock);

            _expressionStack.Push(node, ifThenExpression);
            base.AfterVisit(node);
        }
Example #2
0
 public virtual void AfterVisit(IfStatement node)
 {
     this.AfterVisitCatchAll(node);
 }
Example #3
0
 public virtual void AfterIfStatementTrueBlock(IfStatement ifStatement)
 {
     //Intentionally left blank
 }
Example #4
0
 public virtual void AfterIfStatementCondition(IfStatement ifStatement)
 {
     //Intentionally left blank
 }
Example #5
0
 public virtual void BeforeVisit(IfStatement node)
 {
     this.BeforeVisitCatchAll(node);
 }