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; }
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); }
private string Translate(StandaloneBoolean standalone, TranslationContext context) { return(standalone.IsComparisonToTrue ? TranslateOperand(standalone.Boolean, context) : _negationTranslator.TranslateNot(standalone.Boolean, context)); }