/// <summary> /// Visits the children of the <see cref="T:System.Linq.Expressions.BinaryExpression"/>. /// </summary> /// <returns> /// The modified expression, if it or any subexpression was modified; otherwise, returns the original expression. /// </returns> /// <param name="node">The expression to visit.</param> protected override Expression VisitBinary(BinaryExpression node) { var op = QueryHelper.GetOperator(node); Expression left = node.Left; Expression right = node.Right; _writer.OpenBrace(); if (QueryHelper.IsBoolean(left.Type)) { Visit(left); _writer.WhiteSpace(); _writer.Write(op); _writer.WhiteSpace(); Visit(right); } else { VisitValue(left); _writer.WhiteSpace(); _writer.Write(op); _writer.WhiteSpace(); VisitValue(right); } _writer.CloseBrace(); return(node); }