/// <summary> /// Visits the between. /// </summary> /// <param name="between">The between.</param> /// <returns></returns> protected virtual Expression VisitBetween(BetweenExpression between) { var expr = this.Visit(between.Expression); var lower = this.Visit(between.Lower); var upper = this.Visit(between.Upper); return(this.UpdateBetween(between, expr, lower, upper)); }
/// <summary> /// Updates the between. /// </summary> /// <param name="between">The between.</param> /// <param name="expression">The expression.</param> /// <param name="lower">The lower.</param> /// <param name="upper">The upper.</param> /// <returns></returns> protected BetweenExpression UpdateBetween(BetweenExpression between, Expression expression, Expression lower, Expression upper) { if (expression != between.Expression || lower != between.Lower || upper != between.Upper) { return(new BetweenExpression(expression, lower, upper)); } return(between); }
/// <summary> /// Compares the between. /// </summary> /// <param name="a">A.</param> /// <param name="b">The b.</param> /// <returns></returns> protected virtual bool CompareBetween(BetweenExpression a, BetweenExpression b) { return(this.Compare(a.Expression, b.Expression) && this.Compare(a.Lower, b.Lower) && this.Compare(a.Upper, b.Upper)); }