/// <summary>
 ///     获取简单表达式
 /// </summary>
 /// <param name="binaryExpression">二元表达式</param>
 /// <returns>简单表达式</returns>
 private static TmphExpression getSimpleNotEqual(TmphBinaryExpression binaryExpression)
 {
     if (binaryExpression.Left.IsConstant && binaryExpression.Right.IsConstant)
     {
         var leftValue = ((TmphConstantExpression)binaryExpression.Left).Value;
         var rightValue = ((TmphConstantExpression)binaryExpression.Right).Value;
         binaryExpression.PushPool();
         return
             TmphLogicConstantExpression.Get(leftValue == null ? rightValue != null : !leftValue.Equals(rightValue));
     }
     return binaryExpression;
 }
 /// <summary>
 ///     获取简单表达式
 /// </summary>
 /// <param name="binaryExpression">二元表达式</param>
 /// <returns>简单表达式</returns>
 private static TmphExpression getSimpleLessThanOrEqual(TmphBinaryExpression binaryExpression)
 {
     if (binaryExpression.Left.IsConstant && binaryExpression.Right.IsConstant)
     {
         var value = ((IComparable)((TmphConstantExpression)binaryExpression.Left).Value)
             .CompareTo(((TmphConstantExpression)binaryExpression.Right).Value);
         binaryExpression.PushPool();
         return TmphLogicConstantExpression.Get(value <= 0);
     }
     return binaryExpression;
 }
 /// <summary>
 ///     获取简单表达式
 /// </summary>
 /// <param name="binaryExpression">二元表达式</param>
 /// <returns>简单表达式</returns>
 private static TmphExpression getSimpleAndAlso(TmphBinaryExpression binaryExpression)
 {
     if (binaryExpression.Left.NodeType == TmphExpressionType.LogicConstant)
     {
         TmphExpression expression;
         if (((TmphLogicConstantExpression)binaryExpression.Left).Value)
         {
             expression = binaryExpression.Right;
             binaryExpression.Right = null;
         }
         else
         {
             expression = binaryExpression.Left;
             binaryExpression.Left = null;
         }
         --expression.ExpressionCount;
         binaryExpression.PushPool();
         return expression;
     }
     if (binaryExpression.Right.NodeType == TmphExpressionType.LogicConstant)
     {
         TmphExpression expression;
         if (((TmphLogicConstantExpression)binaryExpression.Right).Value)
         {
             expression = binaryExpression.Left;
             binaryExpression.Left = null;
         }
         else
         {
             expression = binaryExpression.Right;
             binaryExpression.Right = null;
         }
         --expression.ExpressionCount;
         binaryExpression.PushPool();
         return expression;
     }
     return binaryExpression;
 }