public static void EvalIf(MethodCallExpression exp, ExpressionToFormulaState state)
 {
     EvalExpression(exp.Arguments[0], state);
     var test = state.CurrentBlock.Formulas.Pop();
     var condition = new ConditionalFormula() { Test = test };
     state.CurrentBlock.Formulas.Push(condition);
     state.Conditions.Push(condition);
     state.PushBlock();
     condition.IfTrue = state.CurrentBlock;
 }
 public static void EvalElse(MethodCallExpression exp, ExpressionToFormulaState state)
 {
     state.PopBlock();
     var prevCondition = state.Conditions.Pop();
     state.Conditions.Push(prevCondition);
     state.PushBlock();
     prevCondition.IfFalse = state.CurrentBlock;
 }