Exemplo n.º 1
0
        private BoundExpression BindBetweenExpression(BetweenExpressionSyntax node)
        {
            // left BETWEEN lowerBound AND upperBound
            //
            // ===>
            //
            // left >= lowerBound AND left <= upperBound

            var left       = BindExpression(node.Left);
            var lowerBound = BindExpression(node.LowerBound);
            var upperBound = BindExpression(node.UpperBound);

            var lowerCheck  = BindBinaryExpression(node.Span, BinaryOperatorKind.GreaterOrEqual, left, lowerBound);
            var upperCheck  = BindBinaryExpression(node.Span, BinaryOperatorKind.LessOrEqual, left, upperBound);
            var boundsCheck = BindBinaryExpression(node.Span, BinaryOperatorKind.LogicalAnd, lowerCheck, upperCheck);

            return(BindOptionalNegation(node.Span, node.NotKeyword, boundsCheck));
        }
Exemplo n.º 2
0
 public virtual void VisitBetweenExpression(BetweenExpressionSyntax node)
 {
     DefaultVisit(node);
 }
Exemplo n.º 3
0
 public virtual TResult VisitBetweenExpression(BetweenExpressionSyntax node)
 {
     return(DefaultVisit(node));
 }