/// <summary>
 /// Rewrites the expression tree to a field predicate tree given an <see cref="AbstractQueryStructureBinder"/> implementation.
 /// </summary>
 /// <param name="expressionToVisit">The expression to visit.</param>
 /// <param name="structureBinder">The structure binder.</param>
 /// <returns></returns>
 /// <remarks></remarks>
 public static Expression RewriteToFieldPredicateTree(Expression expressionToVisit, AbstractQueryStructureBinder structureBinder)
 {
     var visitor = new DefaultExpressionTreeVisitor(structureBinder);
     return visitor.VisitExpression(expressionToVisit);
 }
        /// <summary>
        /// Rewrites the expression tree to a field predicate tree given an <see cref="AbstractQueryStructureBinder"/> implementation.
        /// </summary>
        /// <param name="expressionToVisit">The expression to visit.</param>
        /// <param name="structureBinder">The structure binder.</param>
        /// <returns></returns>
        /// <remarks></remarks>
        public static Expression RewriteToFieldPredicateTree(Expression expressionToVisit, AbstractQueryStructureBinder structureBinder)
        {
            var visitor = new DefaultExpressionTreeVisitor(structureBinder);

            return(visitor.VisitExpression(expressionToVisit));
        }