示例#1
0
        private RangeNode ParseRange(ExpressionType expressionType)
        {
            var range = new RangeNode();

            range.Start = expressionType == ExpressionType.Dates ? (ValueNode)ParseDate() : ParseIntegerValue(expressionType);

            var isRange = false;

            if (IsNext(TokenType.RangeInclusive))
            {
                isRange = true;
            }
            else if (IsNext(TokenType.RangeHalfOpen))
            {
                isRange          = true;
                range.IsHalfOpen = true;
            }

            if (isRange)
            {
                range.AddToken(Advance());
                range.End = expressionType == ExpressionType.Dates ? (ValueNode)ParseDate() : ParseIntegerValue(expressionType);
            }

            return(range);
        }
示例#2
0
        private RangeNode ParseRange(ExpressionType expressionType)
        {
            var range = new RangeNode();
            range.Start = expressionType == ExpressionType.Dates ? (ValueNode)ParseDate() : ParseIntegerValue(expressionType);

            var isRange = false;
            if (IsNext(TokenType.RangeInclusive))
            {
                isRange = true;
            }
            else if (IsNext(TokenType.RangeHalfOpen))
            {
                isRange = true;
                range.IsHalfOpen = true;
            }

            if (isRange)
            {
                range.AddToken(Advance());
                range.End = expressionType == ExpressionType.Dates ? (ValueNode)ParseDate() : ParseIntegerValue(expressionType);
            }

            return range;
        }