Ejemplo n.º 1
0
 private StandaloneEqualityComparisonTranslation(
     ExpressionType nodeType,
     Expression boolean,
     ExpressionType @operator,
     Expression comparison,
     ITranslationContext context)
 {
     NodeType            = nodeType;
     _standaloneBoolean  = new StandaloneBoolean(boolean, @operator, comparison);
     _operandTranslation = context.GetTranslationFor(_standaloneBoolean.Expression);
     EstimatedSize       = _operandTranslation.EstimatedSize + 1;
 }
Ejemplo n.º 2
0
        private static bool TryGetStandaloneBoolean(BinaryExpression comparison, out StandaloneBoolean standalone)
        {
            if (IsBooleanConstant(comparison.Right))
            {
                standalone = new StandaloneBoolean(comparison.Left, comparison.NodeType, comparison.Right);
                return(true);
            }

            if (IsBooleanConstant(comparison.Left))
            {
                standalone = new StandaloneBoolean(comparison.Right, comparison.NodeType, comparison.Left);
                return(true);
            }

            standalone = null;
            return(false);
        }
Ejemplo n.º 3
0
 private string Translate(StandaloneBoolean standalone, TranslationContext context)
 {
     return(standalone.IsComparisonToTrue
         ? TranslateOperand(standalone.Boolean, context)
         : _negationTranslator.TranslateNot(standalone.Boolean, context));
 }