You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucenenet.apache.org by "jeroen lauwers (JIRA)" <ji...@apache.org> on 2008/06/27 14:21:45 UTC

[jira] Created: (LUCENENET-118) Trailing and leading wildcards in Lucene.NET 2.1

Trailing and leading wildcards in Lucene.NET 2.1
------------------------------------------------

                 Key: LUCENENET-118
                 URL: https://issues.apache.org/jira/browse/LUCENENET-118
             Project: Lucene.Net
          Issue Type: Improvement
         Environment: Lucene.NET 2.1
.NET2.0
            Reporter: jeroen lauwers
            Priority: Minor


See java project LUCENE-813

The patch of the java project was applied to QueryParserTokenManager.cs
(but only quickly tested)
It seems to work  :-)

{code:title=QueryParserTokenManager.cs|borderStyle=solid}
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* Generated By:JavaCC: Do not edit this line. QueryParserTokenManager.java */

using System;

using Term = Lucene.Net.Index.Term;
using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Search;
using Searchable = Lucene.Net.Search.Searchable;
using Parameter = Lucene.Net.Util.Parameter;

namespace Lucene.Net.QueryParsers
{

    public class QueryParserTokenManager : QueryParserConstants
    {
        private void InitBlock()
        {
            System.IO.StreamWriter temp_writer;
            temp_writer = new System.IO.StreamWriter(System.Console.OpenStandardOutput(), System.Console.Out.Encoding);
            temp_writer.AutoFlush = true;
            debugStream = temp_writer;
        }
        public System.IO.StreamWriter debugStream;
        public virtual void SetDebugStream(System.IO.StreamWriter ds)
        {
            debugStream = ds;
        }
        private int JjStopStringLiteralDfa_3(int pos, long active0)
        {
            switch (pos)
            {

                default:
                    return -1;

            }
        }
        private int JjStartNfa_3(int pos, long active0)
        {
            return JjMoveNfa_3(JjStopStringLiteralDfa_3(pos, active0), pos + 1);
        }
        private int JjStopAtPos(int pos, int kind)
        {
            jjmatchedKind = kind;
            jjmatchedPos = pos;
            return pos + 1;
        }
        private int JjStartNfaWithStates_3(int pos, int kind, int state)
        {
            jjmatchedKind = kind;
            jjmatchedPos = pos;
            try
            {
                curChar = input_stream.ReadChar();
            }
            catch (System.IO.IOException)
            {
                return pos + 1;
            }
            return JjMoveNfa_3(state, pos + 1);
        }
        private int JjMoveStringLiteralDfa0_3()
        {
            switch (curChar)
            {

                case (char)(40):
                    return JjStopAtPos(0, 12);

                case (char)(41):
                    return JjStopAtPos(0, 13);

                case (char)(42):
                    return JjStartNfaWithStates_3(0, 15, 36);

                case (char)(43):
                    return JjStopAtPos(0, 10);

                case (char)(45):
                    return JjStopAtPos(0, 11);

                case (char)(58):
                    return JjStopAtPos(0, 14);

                case (char)(91):
                    return JjStopAtPos(0, 22);

                case (char)(94):
                    return JjStopAtPos(0, 16);

                case (char)(123):
                    return JjStopAtPos(0, 23);

                default:
                    return JjMoveNfa_3(0, 0);

            }
        }
        private void JjCheckNAdd(int state)
        {
            if (jjrounds[state] != jjround)
            {
                jjstateSet[jjnewStateCnt++] = state;
                jjrounds[state] = jjround;
            }
        }
        private void JjAddStates(int start, int end)
        {
            do
            {
                jjstateSet[jjnewStateCnt++] = jjnextStates[start];
            }
            while (start++ != end);
        }
        private void JjCheckNAddTwoStates(int state1, int state2)
        {
            JjCheckNAdd(state1);
            JjCheckNAdd(state2);
        }
        private void JjCheckNAddStates(int start, int end)
        {
            do
            {
                JjCheckNAdd(jjnextStates[start]);
            }
            while (start++ != end);
        }
        private void JjCheckNAddStates(int start)
        {
            JjCheckNAdd(jjnextStates[start]);
            JjCheckNAdd(jjnextStates[start + 1]);
        }
        internal static readonly ulong[] jjbitVec0 = new ulong[] { 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL };
        internal static readonly ulong[] jjbitVec2 = new ulong[] { 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL };
        private int JjMoveNfa_3(int startState, int curPos)
        {
            int[] nextStates;
            int startsAt = 0;
            jjnewStateCnt = 36;
            int i = 1;
            jjstateSet[0] = startState;
            int j, kind = 0x7fffffff;
            for (; ; )
            {
                if (++jjround == 0x7fffffff)
                    ReInitRounds();
                if (curChar < 64)
                {
                    ulong l = ((ulong)1L) << curChar;

                MatchLoop:
                    do
                    {
                        switch (jjstateSet[--i])
                        {
                            case 36:
                            case 25:
                                if ((0xfbfffcf8ffffd9ffL & l) == 0L)
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;

                            case 0:
                                if ((0xfbffd4f8ffffd9ffL & l) != (ulong)0L)
                                {
                                    if (kind > 21)
                                        kind = 21;
                                    JjCheckNAddTwoStates(25, 26);
                                }
                                else if ((0x100002600L & l) != (ulong)0L)
                                {
                                    if (kind > 6)
                                        kind = 6;
                                }
                                else if (curChar == 34)
                                    JjCheckNAddTwoStates(15, 17);
                                else if (curChar == 33)
                                {
                                    if (kind > 9)
                                        kind = 9;
                                }
                                if ((0x7bffd0f8ffffd9ffL & l) != (ulong)0L)
                                {
                                    if (kind > 18)
                                        kind = 18;
                                    JjCheckNAddStates(0, 4);
                                }
                                else if (curChar == 42)
                                {
                                    if (kind > 20)
                                        kind = 20;
                                }
                                if (curChar == 38)
                                    jjstateSet[jjnewStateCnt++] = 4;
                                break;

                            case 4:
                                if (curChar == 38 && kind > 7)
                                    kind = 7;
                                break;

                            case 5:
                                if (curChar == 38)
                                    jjstateSet[jjnewStateCnt++] = 4;
                                break;

                            case 13:
                                if (curChar == 33 && kind > 9)
                                    kind = 9;
                                break;

                            case 14:
                                if (curChar == 34)
                                    JjCheckNAddTwoStates(15, 17);
                                break;

                            case 15:
                                if ((0xfffffffbffffffffL & l) != (ulong)0L)
                                    JjCheckNAddStates(5, 7);
                                break;

                            case 16:
                                if (curChar == 34)
                                    JjCheckNAddStates(5, 7);
                                break;

                            case 18:
                                if (curChar == 34 && kind > 17)
                                    kind = 17;
                                break;

                            case 20:
                                if ((0x3ff000000000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 19)
                                    kind = 19;
                                JjAddStates(8, 9);
                                break;

                            case 21:
                                if (curChar == 46)
                                    JjCheckNAdd(22);
                                break;

                            case 22:
                                if ((0x3ff000000000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 19)
                                    kind = 19;
                                JjCheckNAdd(22);
                                break;

                            case 23:
                                if (curChar == 42 && kind > 20)
                                    kind = 20;
                                break;

                            case 24:
                                if ((0xfbffd4f8ffffd9ffL & l) == (ulong)0L)
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;

                            case 27:
                                if ((0x84002f0600000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;

                            case 28:
                                if ((0x7bffd0f8ffffd9ffL & l) == (ulong)0L)
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddStates(0, 4);
                                break;
                            case 29:
                                if ((0x7bfff8f8ffffd9ffL & l) == (ulong)0L)
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddTwoStates(29, 30);
                                break;
                            case 31:
                                if ((0x84002f0600000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddTwoStates(29, 30);
                                break;

                            case 32:
                                if ((0x7bfff8f8ffffd9ffL & l) != 0L)
                                    JjCheckNAddStates(10, 12);
                                break;

                            case 34:
                                if ((0x84002f0600000000L & l) != 0L)
                                    JjCheckNAddStates(10, 12);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else if (curChar < 128)
                {
                    ulong l = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 36:
                                if ((0x97ffffff97ffffffL & l) != (ulong)0L)
                                {
                                    if (kind > 21)
                                        kind = 21;
                                    JjCheckNAddTwoStates(25, 26);
                                }

                                if (curChar == 92)
                                    JjCheckNAddTwoStates(27, 27);
                                break;

                            case 0:
                                if ((0x97ffffff97ffffffL & l) != (ulong)0L)
                                {
                                    if (kind > 18)
                                        kind = 18;
                                    JjCheckNAddStates(0, 4);
                                }
                                else if (curChar == 126)
                                {
                                    if (kind > 19)
                                        kind = 19;
                                    jjstateSet[jjnewStateCnt++] = 20;
                                }
                                if ((0x97ffffff97ffffffL & l) != (ulong)0L)
                                {
                                    if (kind > 21)
                                        kind = 21;
                                    JjCheckNAddTwoStates(25, 26);
                                }
                                if (curChar == 92)
                                    JjCheckNAddStates(13, 15);
                                else if (curChar == 78)
                                    jjstateSet[jjnewStateCnt++] = 11;
                                else if (curChar == 124)
                                    jjstateSet[jjnewStateCnt++] = 8;
                                else if (curChar == 79)
                                    jjstateSet[jjnewStateCnt++] = 6;
                                else if (curChar == 65)
                                    jjstateSet[jjnewStateCnt++] = 2;
                                break;

                            case 1:
                                if (curChar == 68 && kind > 7)
                                    kind = 7;
                                break;

                            case 2:
                                if (curChar == 78)
                                    jjstateSet[jjnewStateCnt++] = 1;
                                break;

                            case 3:
                                if (curChar == 65)
                                    jjstateSet[jjnewStateCnt++] = 2;
                                break;

                            case 6:
                                if (curChar == 82 && kind > 8)
                                    kind = 8;
                                break;

                            case 7:
                                if (curChar == 79)
                                    jjstateSet[jjnewStateCnt++] = 6;
                                break;

                            case 8:
                                if (curChar == 124 && kind > 8)
                                    kind = 8;
                                break;

                            case 9:
                                if (curChar == 124)
                                    jjstateSet[jjnewStateCnt++] = 8;
                                break;

                            case 10:
                                if (curChar == 84 && kind > 9)
                                    kind = 9;
                                break;

                            case 11:
                                if (curChar == 79)
                                    jjstateSet[jjnewStateCnt++] = 10;
                                break;

                            case 12:
                                if (curChar == 78)
                                    jjstateSet[jjnewStateCnt++] = 11;
                                break;

                            case 15:
                                JjAddStates(5, 7);
                                break;

                            case 17:
                                if (curChar == 92)
                                    jjstateSet[jjnewStateCnt++] = 16;
                                break;

                            case 19:
                                if (curChar != 126)
                                    break;
                                if (kind > 19)
                                    kind = 19;
                                jjstateSet[jjnewStateCnt++] = 20;
                                break;
                            case 24:
                                if ((0x97ffffff97ffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;

                            case 25:
                                if ((0x97ffffff97ffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;
                            case 26:
                                if (curChar == 92)
                                    JjCheckNAddTwoStates(27, 27);
                                break;

                            case 27:
                                if ((0x6800000078000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;
                            case 28:
                                if ((0x97ffffff97ffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddTwoStates(0, 4);
                                break;

                            case 29:
                                if ((0x97ffffff97ffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddTwoStates(29, 30);
                                break;

                            case 30:
                                if (curChar == 92)
                                    JjCheckNAddTwoStates(31, 31);
                                break;

                            case 31:
                                if ((0x6800000078000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddTwoStates(29, 30);
                                break;

                            case 32:
                                if ((0x97ffffff97ffffffL & l) != 0L)
                                    JjCheckNAddStates(10, 12);
                                break;

                            case 33:
                                if (curChar == 92)
                                    JjCheckNAddTwoStates(34, 34);
                                break;

                            case 34:
                                if ((0x6800000078000000L & l) != (ulong)0L)
                                    JjCheckNAddStates(10, 12);
                                break;

                            case 35:
                                if (curChar == 92)
                                    JjCheckNAddStates(13, 15);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else
                {
                    int hiByte = (int)(curChar >> 8);
                    int i1 = hiByte >> 6;
                    ulong l1 = ((ulong)1L) << (hiByte & 63);
                    int i2 = (curChar & 0xff) >> 6;
                    ulong l2 = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 36:
                            case 25:
                                if (!JjCanMove_0(hiByte, i1, i2, l1, l2))
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;
                            case 0:
                                if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                {
                                    if (kind > 21)
                                        kind = 21;
                                    JjCheckNAddTwoStates(25, 26);
                                }
                                if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                {
                                    if (kind > 18)
                                        kind = 18;
                                    JjCheckNAddStates(0, 4);
                                }
                                break;

                            case 15:
                                if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    JjAddStates(5, 7);
                                break;

                            case 24:
                                if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    break;
                                if (kind > 21)
                                    kind = 21;
                                JjCheckNAddTwoStates(25, 26);
                                break;

                            case 28:
                                if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddStates(0, 4);
                                break;

                            case 29:
                                if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    break;
                                if (kind > 18)
                                    kind = 18;
                                JjCheckNAddTwoStates(29, 30);
                                break;
                            case 32:
                                if (JjCanMove_0(hiByte, i1, i2, l1, l2))
                                    JjCheckNAddStates(10, 12);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                if (kind != 0x7fffffff)
                {
                    jjmatchedKind = kind;
                    jjmatchedPos = curPos;
                    kind = 0x7fffffff;
                }
                ++curPos;
                if ((i = jjnewStateCnt) == (startsAt = 36 - (jjnewStateCnt = startsAt)))
                    return curPos;
                try
                {
                    curChar = input_stream.ReadChar();
                }
                catch (System.IO.IOException e)
                {
                    return curPos;
                }
            }
        }
        private int JjStopStringLiteralDfa_1(int pos, ulong active0)
        {
            switch (pos)
            {

                case 0:
                    if ((active0 & 0x20000000L) != 0L)
                    {
                        jjmatchedKind = 32;
                        return 6;
                    }
                    return -1;

                default:
                    return -1;

            }
        }
        private int JjStartNfa_1(int pos, ulong active0)
        {
            return JjMoveNfa_1(JjStopStringLiteralDfa_1(pos, (ulong)active0), pos + 1);
        }
        private int JjStartNfaWithStates_1(int pos, int kind, int state)
        {
            jjmatchedKind = kind;
            jjmatchedPos = pos;
            try
            {
                curChar = input_stream.ReadChar();
            }
            catch (System.IO.IOException)
            {
                return pos + 1;
            }
            return JjMoveNfa_1(state, pos + 1);
        }
        private int JjMoveStringLiteralDfa0_1()
        {
            switch (curChar)
            {

                case (char)(84):
                    return JjMoveStringLiteralDfa1_1((ulong)0x20000000L);

                case (char)(125):
                    return JjStopAtPos(0, 30);

                default:
                    return JjMoveNfa_1(0, 0);

            }
        }
        private int JjMoveStringLiteralDfa1_1(ulong active0)
        {
            try
            {
                curChar = input_stream.ReadChar();
            }
            catch (System.IO.IOException)
            {
                JjStopStringLiteralDfa_1(0, (ulong)active0);
                return 1;
            }
            switch (curChar)
            {

                case (char)(79):
                    if ((active0 & 0x20000000L) != 0L)
                        return JjStartNfaWithStates_1(1, 29, 6);
                    break;

                default:
                    break;

            }
            return JjStartNfa_1(0, (ulong)active0);
        }
        private int JjMoveNfa_1(int startState, int curPos)
        {
            int[] nextStates;
            int startsAt = 0;
            jjnewStateCnt = 7;
            int i = 1;
            jjstateSet[0] = startState;
            int j, kind = 0x7fffffff;
            for (; ; )
            {
                if (++jjround == 0x7fffffff)
                    ReInitRounds();
                if (curChar < 64)
                {
                    ulong l = ((ulong)1L) << curChar;

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 0:
                                if ((0xfffffffeffffffffL & l) != (ulong)0L)
                                {
                                    if (kind > 32)
                                        kind = 32;
                                    JjCheckNAdd(6);
                                }
                                if ((0x100002600L & l) != (ulong)0L)
                                {
                                    if (kind > 6)
                                        kind = 6;
                                }
                                else if (curChar == 34)
                                    JjCheckNAddTwoStates(2, 4);
                                break;

                            case 1:
                                if (curChar == 34)
                                    JjCheckNAddTwoStates(2, 4);
                                break;

                            case 2:
                                if ((0xfffffffbffffffffL & l) != (ulong)0L)
                                    JjCheckNAddStates(16, 18);
                                break;

                            case 3:
                                if (curChar == 34)
                                    JjCheckNAddStates(16, 18);
                                break;

                            case 5:
                                if (curChar == 34 && kind > 31)
                                    kind = 31;
                                break;

                            case 6:
                                if ((0xfffffffeffffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 32)
                                    kind = 32;
                                JjCheckNAdd(6);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else if (curChar < 128)
                {
                    ulong l = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 0:
                            case 6:
                                if ((0xdfffffffffffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 32)
                                    kind = 32;
                                JjCheckNAdd(6);
                                break;

                            case 2:
                                JjAddStates(16, 18);
                                break;

                            case 4:
                                if (curChar == 92)
                                    jjstateSet[jjnewStateCnt++] = 3;
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else
                {
                    int hiByte = (int)(curChar >> 8);
                    int i1 = hiByte >> 6;
                    ulong l1 = ((ulong)1L) << (hiByte & 63);
                    int i2 = (curChar & 0xff) >> 6;
                    ulong l2 = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 0:
                            case 6:
                                if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    break;
                                if (kind > 32)
                                    kind = 32;
                                JjCheckNAdd(6);
                                break;

                            case 2:
                                if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    JjAddStates(16, 18);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                if (kind != 0x7fffffff)
                {
                    jjmatchedKind = kind;
                    jjmatchedPos = curPos;
                    kind = 0x7fffffff;
                }
                ++curPos;
                if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
                    return curPos;
                try
                {
                    curChar = input_stream.ReadChar();
                }
                catch (System.IO.IOException)
                {
                    return curPos;
                }
            }
        }
        private int JjMoveStringLiteralDfa0_0()
        {
            return JjMoveNfa_0(0, 0);
        }
        private int JjMoveNfa_0(int startState, int curPos)
        {
            int[] nextStates;
            int startsAt = 0;
            jjnewStateCnt = 3;
            int i = 1;
            jjstateSet[0] = startState;
            int j, kind = 0x7fffffff;
            for (; ; )
            {
                if (++jjround == 0x7fffffff)
                    ReInitRounds();
                if (curChar < 64)
                {
                    ulong l = ((ulong)1L) << curChar;

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 0:
                                if ((0x3ff000000000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 24)
                                    kind = 24;
                                JjAddStates(19, 20);
                                break;

                            case 1:
                                if (curChar == 46)
                                    JjCheckNAdd(2);
                                break;

                            case 2:
                                if ((0x3ff000000000000L & l) == (ulong)0L)
                                    break;
                                if (kind > 24)
                                    kind = 24;
                                JjCheckNAdd(2);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else if (curChar < 128)
                {
                    ulong l = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else
                {
                    int hiByte = (int)(curChar >> 8);
                    int i1 = hiByte >> 6;
                    ulong l1 = ((ulong)1L) << (hiByte & 63);
                    int i2 = (curChar & 0xff) >> 6;
                    ulong l2 = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                if (kind != 0x7fffffff)
                {
                    jjmatchedKind = kind;
                    jjmatchedPos = curPos;
                    kind = 0x7fffffff;
                }
                ++curPos;
                if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
                    return curPos;
                try
                {
                    curChar = input_stream.ReadChar();
                }
                catch (System.IO.IOException e)
                {
                    return curPos;
                }
            }
        }
        private int JjStopStringLiteralDfa_2(int pos, ulong active0)
        {
            switch (pos)
            {

                case 0:
                    if ((active0 & 0x2000000L) != (ulong)0L)
                    {
                        jjmatchedKind = 28;
                        return 6;
                    }
                    return -1;

                default:
                    return -1;

            }
        }
        private int JjStartNfa_2(int pos, ulong active0)
        {
            return JjMoveNfa_2(JjStopStringLiteralDfa_2(pos, (ulong)active0), pos + 1);
        }
        private int JjStartNfaWithStates_2(int pos, int kind, int state)
        {
            jjmatchedKind = kind;
            jjmatchedPos = pos;
            try
            {
                curChar = input_stream.ReadChar();
            }
            catch (System.IO.IOException e)
            {
                return pos + 1;
            }
            return JjMoveNfa_2(state, pos + 1);
        }
        private int JjMoveStringLiteralDfa0_2()
        {
            switch (curChar)
            {

                case (char)(84):
                    return JjMoveStringLiteralDfa1_2((ulong)0x2000000L);

                case (char)(93):
                    return JjStopAtPos(0, 26);

                default:
                    return JjMoveNfa_2(0, 0);

            }
        }
        private int JjMoveStringLiteralDfa1_2(ulong active0)
        {
            try
            {
                curChar = input_stream.ReadChar();
            }
            catch (System.IO.IOException e)
            {
                JjStopStringLiteralDfa_2(0, (ulong)active0);
                return 1;
            }
            switch (curChar)
            {

                case (char)(79):
                    if ((active0 & 0x2000000L) != (ulong)0L)
                        return JjStartNfaWithStates_2(1, 25, 6);
                    break;

                default:
                    break;

            }
            return JjStartNfa_2(0, (ulong)active0);
        }
        private int JjMoveNfa_2(int startState, int curPos)
        {
            int[] nextStates;
            int startsAt = 0;
            jjnewStateCnt = 7;
            int i = 1;
            jjstateSet[0] = startState;
            int j, kind = 0x7fffffff;
            for (; ; )
            {
                if (++jjround == 0x7fffffff)
                    ReInitRounds();
                if (curChar < 64)
                {
                    ulong l = ((ulong)1L) << curChar;

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 0:
                                if ((0xfffffffeffffffffL & l) != (ulong)0L)
                                {
                                    if (kind > 28)
                                        kind = 28;
                                    JjCheckNAdd(6);
                                }
                                if ((0x100002600L & l) != (ulong)0L)
                                {
                                    if (kind > 6)
                                        kind = 6;
                                }
                                else if (curChar == 34)
                                    JjCheckNAddTwoStates(2, 4);
                                break;

                            case 1:
                                if (curChar == 34)
                                    JjCheckNAddTwoStates(2, 4);
                                break;

                            case 2:
                                if ((0xfffffffbffffffffL & l) != (ulong)0L)
                                    JjCheckNAddStates(16, 18);
                                break;

                            case 3:
                                if (curChar == 34)
                                    JjCheckNAddStates(16, 18);
                                break;

                            case 5:
                                if (curChar == 34 && kind > 27)
                                    kind = 27;
                                break;

                            case 6:
                                if ((0xfffffffeffffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 28)
                                    kind = 28;
                                JjCheckNAdd(6);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else if (curChar < 128)
                {
                    ulong l = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 0:
                            case 6:
                                if ((0xffffffffdfffffffL & l) == (ulong)0L)
                                    break;
                                if (kind > 28)
                                    kind = 28;
                                JjCheckNAdd(6);
                                break;

                            case 2:
                                JjAddStates(16, 18);
                                break;

                            case 4:
                                if (curChar == 92)
                                    jjstateSet[jjnewStateCnt++] = 3;
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                else
                {
                    int hiByte = (int)(curChar >> 8);
                    int i1 = hiByte >> 6;
                    ulong l1 = ((ulong)1L) << (hiByte & 63);
                    int i2 = (curChar & 0xff) >> 6;
                    ulong l2 = ((ulong)1L) << (curChar & 63);

                MatchLoop1:
                    do
                    {
                        switch (jjstateSet[--i])
                        {

                            case 0:
                            case 6:
                                if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    break;
                                if (kind > 28)
                                    kind = 28;
                                JjCheckNAdd(6);
                                break;

                            case 2:
                                if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
                                    JjAddStates(16, 18);
                                break;

                            default: break;

                        }
                    }
                    while (i != startsAt);
                }
                if (kind != 0x7fffffff)
                {
                    jjmatchedKind = kind;
                    jjmatchedPos = curPos;
                    kind = 0x7fffffff;
                }
                ++curPos;
                if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
                    return curPos;
                try
                {
                    curChar = input_stream.ReadChar();
                }
                catch (System.IO.IOException e)
                {
                    return curPos;
                }
            }
        }
        internal static readonly int[] jjnextStates = new int[] { 29, 32, 23, 33, 30, 15, 17, 18, 20, 21, 32, 23, 33, 31, 34, 27, 2, 4, 5, 0, 1 };
        private static bool JjCanMove_0(int hiByte, int i1, int i2, ulong l1, ulong l2)
        {
            switch (hiByte)
            {

                case 0:
                    return ((jjbitVec2[i2] & l2) != (ulong)0L);

                default:
                    if ((jjbitVec0[i1] & l1) != (ulong)0L)
                        return true;
                    return false;

            }
        }
        public static readonly System.String[] jjstrLiteralImages = new System.String[] { "", null, null, null, null, null, null, null, null, null, "\x002B", "\x002D", "\x0028", "\x0029", "\x003A", "\x002A", "\x005E", null, null, null, null, null, "\x005B", "\x007B", null, "\x0054\x004F", "\x005D", null, null, "\x0054\x004F", "\x007D", null, null };
        public static readonly System.String[] lexStateNames = new System.String[] { "Boost", "RangeEx", "RangeIn", "DEFAULT" };
        public static readonly int[] jjnewLexState = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 2, 1, 3, -1, 3, -1, -1, -1, 3, -1, -1 };
        internal static readonly ulong[] jjtoToken = new ulong[] { 0x1ffffff81L };
        internal static readonly long[] jjtoSkip = new long[] { 0x40L };
        protected internal CharStream input_stream;
        private uint[] jjrounds = new uint[36];
        private int[] jjstateSet = new int[72];
        protected internal char curChar;
        public QueryParserTokenManager(CharStream stream)
        {
            InitBlock();
            input_stream = stream;
        }
        public QueryParserTokenManager(CharStream stream, int lexState)
            : this(stream)
        {
            SwitchTo(lexState);
        }
        public virtual void ReInit(CharStream stream)
        {
            jjmatchedPos = jjnewStateCnt = 0;
            curLexState = defaultLexState;
            input_stream = stream;
            ReInitRounds();
        }
        private void ReInitRounds()
        {
            int i;
            jjround = 0x80000001;
            for (i = 36; i-- > 0; )
                jjrounds[i] = 0x80000000;
        }
        public virtual void ReInit(CharStream stream, int lexState)
        {
            ReInit(stream);
            SwitchTo(lexState);
        }
        public virtual void SwitchTo(int lexState)
        {
            if (lexState >= 4 || lexState < 0)
                throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
            else
                curLexState = lexState;
        }

        protected internal virtual Token JjFillToken()
        {
            Token t = Token.newToken(jjmatchedKind);
            t.kind = jjmatchedKind;
            System.String im = jjstrLiteralImages[jjmatchedKind];
            t.image = (im == null) ? input_stream.GetImage() : im;
            t.beginLine = input_stream.GetBeginLine();
            t.beginColumn = input_stream.GetBeginColumn();
            t.endLine = input_stream.GetEndLine();
            t.endColumn = input_stream.GetEndColumn();
            return t;
        }

        internal int curLexState = 3;
        internal int defaultLexState = 3;
        internal int jjnewStateCnt;
        internal uint jjround;
        internal int jjmatchedPos;
        internal int jjmatchedKind;

        public virtual Token GetNextToken()
        {
            int kind;
            Token specialToken = null;
            Token matchedToken;
            int curPos = 0;

            for (; ; )
            {
                try
                {
                    curChar = input_stream.BeginToken();
                }
                catch (System.IO.IOException e)
                {
                    jjmatchedKind = 0;
                    matchedToken = JjFillToken();
                    return matchedToken;
                }

                switch (curLexState)
                {

                    case 0:
                        jjmatchedKind = 0x7fffffff;
                        jjmatchedPos = 0;
                        curPos = JjMoveStringLiteralDfa0_0();
                        break;

                    case 1:
                        jjmatchedKind = 0x7fffffff;
                        jjmatchedPos = 0;
                        curPos = JjMoveStringLiteralDfa0_1();
                        break;

                    case 2:
                        jjmatchedKind = 0x7fffffff;
                        jjmatchedPos = 0;
                        curPos = JjMoveStringLiteralDfa0_2();
                        break;

                    case 3:
                        jjmatchedKind = 0x7fffffff;
                        jjmatchedPos = 0;
                        curPos = JjMoveStringLiteralDfa0_3();
                        break;
                }
                if (jjmatchedKind != 0x7fffffff)
                {
                    if (jjmatchedPos + 1 < curPos)
                        input_stream.Backup(curPos - jjmatchedPos - 1);
                    if ((jjtoToken[jjmatchedKind >> 6] & ((ulong)(1L << (jjmatchedKind & 63)))) != (ulong)0L)
                    {
                        matchedToken = JjFillToken();
                        if (jjnewLexState[jjmatchedKind] != -1)
                            curLexState = jjnewLexState[jjmatchedKind];
                        return matchedToken;
                    }
                    else
                    {
                        if (jjnewLexState[jjmatchedKind] != -1)
                            curLexState = jjnewLexState[jjmatchedKind];
                        goto EOFLoop;
                    }
                }
                int error_line = input_stream.GetEndLine();
                int error_column = input_stream.GetEndColumn();
                System.String error_after = null;
                bool EOFSeen = false;
                try
                {
                    input_stream.ReadChar(); input_stream.Backup(1);
                }
                catch (System.IO.IOException e1)
                {
                    EOFSeen = true;
                    error_after = curPos <= 1 ? "" : input_stream.GetImage();
                    if (curChar == '\n' || curChar == '\r')
                    {
                        error_line++;
                        error_column = 0;
                    }
                    else
                        error_column++;
                }
                if (!EOFSeen)
                {
                    input_stream.Backup(1);
                    error_after = curPos <= 1 ? "" : input_stream.GetImage();
                }
                throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);

            EOFLoop: ;
            }
        }
    }
}
{code} 


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (LUCENENET-118) Trailing and leading wildcards in Lucene.NET 2.1

Posted by "George Aroush (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LUCENENET-118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

George Aroush closed LUCENENET-118.
-----------------------------------

    Resolution: Won't Fix
      Assignee: George Aroush

I rather we don't work on older versions.  If this is still an issue in 2.3.1, please submit a new patch for 2.3.1.  Thanks.

> Trailing and leading wildcards in Lucene.NET 2.1
> ------------------------------------------------
>
>                 Key: LUCENENET-118
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-118
>             Project: Lucene.Net
>          Issue Type: Improvement
>         Environment: Lucene.NET 2.1
> .NET2.0
>            Reporter: jeroen lauwers
>            Assignee: George Aroush
>            Priority: Minor
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> See java project LUCENE-813
> The patch of the java project was applied to QueryParserTokenManager.cs
> (but only quickly tested)
> It seems to work  :-)
> {code:title=QueryParserTokenManager.cs|borderStyle=solid}
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one or more
>  * contributor license agreements.  See the NOTICE file distributed with
>  * this work for additional information regarding copyright ownership.
>  * The ASF licenses this file to You under the Apache License, Version 2.0
>  * (the "License"); you may not use this file except in compliance with
>  * the License.  You may obtain a copy of the License at
>  * 
>  * http://www.apache.org/licenses/LICENSE-2.0
>  * 
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
> /* Generated By:JavaCC: Do not edit this line. QueryParserTokenManager.java */
> using System;
> using Term = Lucene.Net.Index.Term;
> using Lucene.Net.Analysis;
> using Lucene.Net.Documents;
> using Lucene.Net.Search;
> using Searchable = Lucene.Net.Search.Searchable;
> using Parameter = Lucene.Net.Util.Parameter;
> namespace Lucene.Net.QueryParsers
> {
>     public class QueryParserTokenManager : QueryParserConstants
>     {
>         private void InitBlock()
>         {
>             System.IO.StreamWriter temp_writer;
>             temp_writer = new System.IO.StreamWriter(System.Console.OpenStandardOutput(), System.Console.Out.Encoding);
>             temp_writer.AutoFlush = true;
>             debugStream = temp_writer;
>         }
>         public System.IO.StreamWriter debugStream;
>         public virtual void SetDebugStream(System.IO.StreamWriter ds)
>         {
>             debugStream = ds;
>         }
>         private int JjStopStringLiteralDfa_3(int pos, long active0)
>         {
>             switch (pos)
>             {
>                 default:
>                     return -1;
>             }
>         }
>         private int JjStartNfa_3(int pos, long active0)
>         {
>             return JjMoveNfa_3(JjStopStringLiteralDfa_3(pos, active0), pos + 1);
>         }
>         private int JjStopAtPos(int pos, int kind)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             return pos + 1;
>         }
>         private int JjStartNfaWithStates_3(int pos, int kind, int state)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException)
>             {
>                 return pos + 1;
>             }
>             return JjMoveNfa_3(state, pos + 1);
>         }
>         private int JjMoveStringLiteralDfa0_3()
>         {
>             switch (curChar)
>             {
>                 case (char)(40):
>                     return JjStopAtPos(0, 12);
>                 case (char)(41):
>                     return JjStopAtPos(0, 13);
>                 case (char)(42):
>                     return JjStartNfaWithStates_3(0, 15, 36);
>                 case (char)(43):
>                     return JjStopAtPos(0, 10);
>                 case (char)(45):
>                     return JjStopAtPos(0, 11);
>                 case (char)(58):
>                     return JjStopAtPos(0, 14);
>                 case (char)(91):
>                     return JjStopAtPos(0, 22);
>                 case (char)(94):
>                     return JjStopAtPos(0, 16);
>                 case (char)(123):
>                     return JjStopAtPos(0, 23);
>                 default:
>                     return JjMoveNfa_3(0, 0);
>             }
>         }
>         private void JjCheckNAdd(int state)
>         {
>             if (jjrounds[state] != jjround)
>             {
>                 jjstateSet[jjnewStateCnt++] = state;
>                 jjrounds[state] = jjround;
>             }
>         }
>         private void JjAddStates(int start, int end)
>         {
>             do
>             {
>                 jjstateSet[jjnewStateCnt++] = jjnextStates[start];
>             }
>             while (start++ != end);
>         }
>         private void JjCheckNAddTwoStates(int state1, int state2)
>         {
>             JjCheckNAdd(state1);
>             JjCheckNAdd(state2);
>         }
>         private void JjCheckNAddStates(int start, int end)
>         {
>             do
>             {
>                 JjCheckNAdd(jjnextStates[start]);
>             }
>             while (start++ != end);
>         }
>         private void JjCheckNAddStates(int start)
>         {
>             JjCheckNAdd(jjnextStates[start]);
>             JjCheckNAdd(jjnextStates[start + 1]);
>         }
>         internal static readonly ulong[] jjbitVec0 = new ulong[] { 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL };
>         internal static readonly ulong[] jjbitVec2 = new ulong[] { 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL };
>         private int JjMoveNfa_3(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 36;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 36:
>                             case 25:
>                                 if ((0xfbfffcf8ffffd9ffL & l) == 0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 0:
>                                 if ((0xfbffd4f8ffffd9ffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 else if ((0x100002600L & l) != (ulong)0L)
>                                 {
>                                     if (kind > 6)
>                                         kind = 6;
>                                 }
>                                 else if (curChar == 34)
>                                     JjCheckNAddTwoStates(15, 17);
>                                 else if (curChar == 33)
>                                 {
>                                     if (kind > 9)
>                                         kind = 9;
>                                 }
>                                 if ((0x7bffd0f8ffffd9ffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 18)
>                                         kind = 18;
>                                     JjCheckNAddStates(0, 4);
>                                 }
>                                 else if (curChar == 42)
>                                 {
>                                     if (kind > 20)
>                                         kind = 20;
>                                 }
>                                 if (curChar == 38)
>                                     jjstateSet[jjnewStateCnt++] = 4;
>                                 break;
>                             case 4:
>                                 if (curChar == 38 && kind > 7)
>                                     kind = 7;
>                                 break;
>                             case 5:
>                                 if (curChar == 38)
>                                     jjstateSet[jjnewStateCnt++] = 4;
>                                 break;
>                             case 13:
>                                 if (curChar == 33 && kind > 9)
>                                     kind = 9;
>                                 break;
>                             case 14:
>                                 if (curChar == 34)
>                                     JjCheckNAddTwoStates(15, 17);
>                                 break;
>                             case 15:
>                                 if ((0xfffffffbffffffffL & l) != (ulong)0L)
>                                     JjCheckNAddStates(5, 7);
>                                 break;
>                             case 16:
>                                 if (curChar == 34)
>                                     JjCheckNAddStates(5, 7);
>                                 break;
>                             case 18:
>                                 if (curChar == 34 && kind > 17)
>                                     kind = 17;
>                                 break;
>                             case 20:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 19)
>                                     kind = 19;
>                                 JjAddStates(8, 9);
>                                 break;
>                             case 21:
>                                 if (curChar == 46)
>                                     JjCheckNAdd(22);
>                                 break;
>                             case 22:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 19)
>                                     kind = 19;
>                                 JjCheckNAdd(22);
>                                 break;
>                             case 23:
>                                 if (curChar == 42 && kind > 20)
>                                     kind = 20;
>                                 break;
>                             case 24:
>                                 if ((0xfbffd4f8ffffd9ffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 27:
>                                 if ((0x84002f0600000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 28:
>                                 if ((0x7bffd0f8ffffd9ffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddStates(0, 4);
>                                 break;
>                             case 29:
>                                 if ((0x7bfff8f8ffffd9ffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 31:
>                                 if ((0x84002f0600000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 32:
>                                 if ((0x7bfff8f8ffffd9ffL & l) != 0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             case 34:
>                                 if ((0x84002f0600000000L & l) != 0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 36:
>                                 if ((0x97ffffff97ffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(27, 27);
>                                 break;
>                             case 0:
>                                 if ((0x97ffffff97ffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 18)
>                                         kind = 18;
>                                     JjCheckNAddStates(0, 4);
>                                 }
>                                 else if (curChar == 126)
>                                 {
>                                     if (kind > 19)
>                                         kind = 19;
>                                     jjstateSet[jjnewStateCnt++] = 20;
>                                 }
>                                 if ((0x97ffffff97ffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 if (curChar == 92)
>                                     JjCheckNAddStates(13, 15);
>                                 else if (curChar == 78)
>                                     jjstateSet[jjnewStateCnt++] = 11;
>                                 else if (curChar == 124)
>                                     jjstateSet[jjnewStateCnt++] = 8;
>                                 else if (curChar == 79)
>                                     jjstateSet[jjnewStateCnt++] = 6;
>                                 else if (curChar == 65)
>                                     jjstateSet[jjnewStateCnt++] = 2;
>                                 break;
>                             case 1:
>                                 if (curChar == 68 && kind > 7)
>                                     kind = 7;
>                                 break;
>                             case 2:
>                                 if (curChar == 78)
>                                     jjstateSet[jjnewStateCnt++] = 1;
>                                 break;
>                             case 3:
>                                 if (curChar == 65)
>                                     jjstateSet[jjnewStateCnt++] = 2;
>                                 break;
>                             case 6:
>                                 if (curChar == 82 && kind > 8)
>                                     kind = 8;
>                                 break;
>                             case 7:
>                                 if (curChar == 79)
>                                     jjstateSet[jjnewStateCnt++] = 6;
>                                 break;
>                             case 8:
>                                 if (curChar == 124 && kind > 8)
>                                     kind = 8;
>                                 break;
>                             case 9:
>                                 if (curChar == 124)
>                                     jjstateSet[jjnewStateCnt++] = 8;
>                                 break;
>                             case 10:
>                                 if (curChar == 84 && kind > 9)
>                                     kind = 9;
>                                 break;
>                             case 11:
>                                 if (curChar == 79)
>                                     jjstateSet[jjnewStateCnt++] = 10;
>                                 break;
>                             case 12:
>                                 if (curChar == 78)
>                                     jjstateSet[jjnewStateCnt++] = 11;
>                                 break;
>                             case 15:
>                                 JjAddStates(5, 7);
>                                 break;
>                             case 17:
>                                 if (curChar == 92)
>                                     jjstateSet[jjnewStateCnt++] = 16;
>                                 break;
>                             case 19:
>                                 if (curChar != 126)
>                                     break;
>                                 if (kind > 19)
>                                     kind = 19;
>                                 jjstateSet[jjnewStateCnt++] = 20;
>                                 break;
>                             case 24:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 25:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 26:
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(27, 27);
>                                 break;
>                             case 27:
>                                 if ((0x6800000078000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 28:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(0, 4);
>                                 break;
>                             case 29:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 30:
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(31, 31);
>                                 break;
>                             case 31:
>                                 if ((0x6800000078000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 32:
>                                 if ((0x97ffffff97ffffffL & l) != 0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             case 33:
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(34, 34);
>                                 break;
>                             case 34:
>                                 if ((0x6800000078000000L & l) != (ulong)0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             case 35:
>                                 if (curChar == 92)
>                                     JjCheckNAddStates(13, 15);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 36:
>                             case 25:
>                                 if (!JjCanMove_0(hiByte, i1, i2, l1, l2))
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 0:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                 {
>                                     if (kind > 18)
>                                         kind = 18;
>                                     JjCheckNAddStates(0, 4);
>                                 }
>                                 break;
>                             case 15:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     JjAddStates(5, 7);
>                                 break;
>                             case 24:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 28:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddStates(0, 4);
>                                 break;
>                             case 29:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 32:
>                                 if (JjCanMove_0(hiByte, i1, i2, l1, l2))
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 36 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         private int JjStopStringLiteralDfa_1(int pos, ulong active0)
>         {
>             switch (pos)
>             {
>                 case 0:
>                     if ((active0 & 0x20000000L) != 0L)
>                     {
>                         jjmatchedKind = 32;
>                         return 6;
>                     }
>                     return -1;
>                 default:
>                     return -1;
>             }
>         }
>         private int JjStartNfa_1(int pos, ulong active0)
>         {
>             return JjMoveNfa_1(JjStopStringLiteralDfa_1(pos, (ulong)active0), pos + 1);
>         }
>         private int JjStartNfaWithStates_1(int pos, int kind, int state)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException)
>             {
>                 return pos + 1;
>             }
>             return JjMoveNfa_1(state, pos + 1);
>         }
>         private int JjMoveStringLiteralDfa0_1()
>         {
>             switch (curChar)
>             {
>                 case (char)(84):
>                     return JjMoveStringLiteralDfa1_1((ulong)0x20000000L);
>                 case (char)(125):
>                     return JjStopAtPos(0, 30);
>                 default:
>                     return JjMoveNfa_1(0, 0);
>             }
>         }
>         private int JjMoveStringLiteralDfa1_1(ulong active0)
>         {
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException)
>             {
>                 JjStopStringLiteralDfa_1(0, (ulong)active0);
>                 return 1;
>             }
>             switch (curChar)
>             {
>                 case (char)(79):
>                     if ((active0 & 0x20000000L) != 0L)
>                         return JjStartNfaWithStates_1(1, 29, 6);
>                     break;
>                 default:
>                     break;
>             }
>             return JjStartNfa_1(0, (ulong)active0);
>         }
>         private int JjMoveNfa_1(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 7;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                                 if ((0xfffffffeffffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 32)
>                                         kind = 32;
>                                     JjCheckNAdd(6);
>                                 }
>                                 if ((0x100002600L & l) != (ulong)0L)
>                                 {
>                                     if (kind > 6)
>                                         kind = 6;
>                                 }
>                                 else if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 1:
>                                 if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 2:
>                                 if ((0xfffffffbffffffffL & l) != (ulong)0L)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 3:
>                                 if (curChar == 34)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 5:
>                                 if (curChar == 34 && kind > 31)
>                                     kind = 31;
>                                 break;
>                             case 6:
>                                 if ((0xfffffffeffffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 32)
>                                     kind = 32;
>                                 JjCheckNAdd(6);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if ((0xdfffffffffffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 32)
>                                     kind = 32;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 JjAddStates(16, 18);
>                                 break;
>                             case 4:
>                                 if (curChar == 92)
>                                     jjstateSet[jjnewStateCnt++] = 3;
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 32)
>                                     kind = 32;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     JjAddStates(16, 18);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         private int JjMoveStringLiteralDfa0_0()
>         {
>             return JjMoveNfa_0(0, 0);
>         }
>         private int JjMoveNfa_0(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 3;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 24)
>                                     kind = 24;
>                                 JjAddStates(19, 20);
>                                 break;
>                             case 1:
>                                 if (curChar == 46)
>                                     JjCheckNAdd(2);
>                                 break;
>                             case 2:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 24)
>                                     kind = 24;
>                                 JjCheckNAdd(2);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         private int JjStopStringLiteralDfa_2(int pos, ulong active0)
>         {
>             switch (pos)
>             {
>                 case 0:
>                     if ((active0 & 0x2000000L) != (ulong)0L)
>                     {
>                         jjmatchedKind = 28;
>                         return 6;
>                     }
>                     return -1;
>                 default:
>                     return -1;
>             }
>         }
>         private int JjStartNfa_2(int pos, ulong active0)
>         {
>             return JjMoveNfa_2(JjStopStringLiteralDfa_2(pos, (ulong)active0), pos + 1);
>         }
>         private int JjStartNfaWithStates_2(int pos, int kind, int state)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException e)
>             {
>                 return pos + 1;
>             }
>             return JjMoveNfa_2(state, pos + 1);
>         }
>         private int JjMoveStringLiteralDfa0_2()
>         {
>             switch (curChar)
>             {
>                 case (char)(84):
>                     return JjMoveStringLiteralDfa1_2((ulong)0x2000000L);
>                 case (char)(93):
>                     return JjStopAtPos(0, 26);
>                 default:
>                     return JjMoveNfa_2(0, 0);
>             }
>         }
>         private int JjMoveStringLiteralDfa1_2(ulong active0)
>         {
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException e)
>             {
>                 JjStopStringLiteralDfa_2(0, (ulong)active0);
>                 return 1;
>             }
>             switch (curChar)
>             {
>                 case (char)(79):
>                     if ((active0 & 0x2000000L) != (ulong)0L)
>                         return JjStartNfaWithStates_2(1, 25, 6);
>                     break;
>                 default:
>                     break;
>             }
>             return JjStartNfa_2(0, (ulong)active0);
>         }
>         private int JjMoveNfa_2(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 7;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                                 if ((0xfffffffeffffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 28)
>                                         kind = 28;
>                                     JjCheckNAdd(6);
>                                 }
>                                 if ((0x100002600L & l) != (ulong)0L)
>                                 {
>                                     if (kind > 6)
>                                         kind = 6;
>                                 }
>                                 else if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 1:
>                                 if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 2:
>                                 if ((0xfffffffbffffffffL & l) != (ulong)0L)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 3:
>                                 if (curChar == 34)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 5:
>                                 if (curChar == 34 && kind > 27)
>                                     kind = 27;
>                                 break;
>                             case 6:
>                                 if ((0xfffffffeffffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 28)
>                                     kind = 28;
>                                 JjCheckNAdd(6);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if ((0xffffffffdfffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 28)
>                                     kind = 28;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 JjAddStates(16, 18);
>                                 break;
>                             case 4:
>                                 if (curChar == 92)
>                                     jjstateSet[jjnewStateCnt++] = 3;
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 28)
>                                     kind = 28;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     JjAddStates(16, 18);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         internal static readonly int[] jjnextStates = new int[] { 29, 32, 23, 33, 30, 15, 17, 18, 20, 21, 32, 23, 33, 31, 34, 27, 2, 4, 5, 0, 1 };
>         private static bool JjCanMove_0(int hiByte, int i1, int i2, ulong l1, ulong l2)
>         {
>             switch (hiByte)
>             {
>                 case 0:
>                     return ((jjbitVec2[i2] & l2) != (ulong)0L);
>                 default:
>                     if ((jjbitVec0[i1] & l1) != (ulong)0L)
>                         return true;
>                     return false;
>             }
>         }
>         public static readonly System.String[] jjstrLiteralImages = new System.String[] { "", null, null, null, null, null, null, null, null, null, "\x002B", "\x002D", "\x0028", "\x0029", "\x003A", "\x002A", "\x005E", null, null, null, null, null, "\x005B", "\x007B", null, "\x0054\x004F", "\x005D", null, null, "\x0054\x004F", "\x007D", null, null };
>         public static readonly System.String[] lexStateNames = new System.String[] { "Boost", "RangeEx", "RangeIn", "DEFAULT" };
>         public static readonly int[] jjnewLexState = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 2, 1, 3, -1, 3, -1, -1, -1, 3, -1, -1 };
>         internal static readonly ulong[] jjtoToken = new ulong[] { 0x1ffffff81L };
>         internal static readonly long[] jjtoSkip = new long[] { 0x40L };
>         protected internal CharStream input_stream;
>         private uint[] jjrounds = new uint[36];
>         private int[] jjstateSet = new int[72];
>         protected internal char curChar;
>         public QueryParserTokenManager(CharStream stream)
>         {
>             InitBlock();
>             input_stream = stream;
>         }
>         public QueryParserTokenManager(CharStream stream, int lexState)
>             : this(stream)
>         {
>             SwitchTo(lexState);
>         }
>         public virtual void ReInit(CharStream stream)
>         {
>             jjmatchedPos = jjnewStateCnt = 0;
>             curLexState = defaultLexState;
>             input_stream = stream;
>             ReInitRounds();
>         }
>         private void ReInitRounds()
>         {
>             int i;
>             jjround = 0x80000001;
>             for (i = 36; i-- > 0; )
>                 jjrounds[i] = 0x80000000;
>         }
>         public virtual void ReInit(CharStream stream, int lexState)
>         {
>             ReInit(stream);
>             SwitchTo(lexState);
>         }
>         public virtual void SwitchTo(int lexState)
>         {
>             if (lexState >= 4 || lexState < 0)
>                 throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
>             else
>                 curLexState = lexState;
>         }
>         protected internal virtual Token JjFillToken()
>         {
>             Token t = Token.newToken(jjmatchedKind);
>             t.kind = jjmatchedKind;
>             System.String im = jjstrLiteralImages[jjmatchedKind];
>             t.image = (im == null) ? input_stream.GetImage() : im;
>             t.beginLine = input_stream.GetBeginLine();
>             t.beginColumn = input_stream.GetBeginColumn();
>             t.endLine = input_stream.GetEndLine();
>             t.endColumn = input_stream.GetEndColumn();
>             return t;
>         }
>         internal int curLexState = 3;
>         internal int defaultLexState = 3;
>         internal int jjnewStateCnt;
>         internal uint jjround;
>         internal int jjmatchedPos;
>         internal int jjmatchedKind;
>         public virtual Token GetNextToken()
>         {
>             int kind;
>             Token specialToken = null;
>             Token matchedToken;
>             int curPos = 0;
>             for (; ; )
>             {
>                 try
>                 {
>                     curChar = input_stream.BeginToken();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     jjmatchedKind = 0;
>                     matchedToken = JjFillToken();
>                     return matchedToken;
>                 }
>                 switch (curLexState)
>                 {
>                     case 0:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_0();
>                         break;
>                     case 1:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_1();
>                         break;
>                     case 2:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_2();
>                         break;
>                     case 3:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_3();
>                         break;
>                 }
>                 if (jjmatchedKind != 0x7fffffff)
>                 {
>                     if (jjmatchedPos + 1 < curPos)
>                         input_stream.Backup(curPos - jjmatchedPos - 1);
>                     if ((jjtoToken[jjmatchedKind >> 6] & ((ulong)(1L << (jjmatchedKind & 63)))) != (ulong)0L)
>                     {
>                         matchedToken = JjFillToken();
>                         if (jjnewLexState[jjmatchedKind] != -1)
>                             curLexState = jjnewLexState[jjmatchedKind];
>                         return matchedToken;
>                     }
>                     else
>                     {
>                         if (jjnewLexState[jjmatchedKind] != -1)
>                             curLexState = jjnewLexState[jjmatchedKind];
>                         goto EOFLoop;
>                     }
>                 }
>                 int error_line = input_stream.GetEndLine();
>                 int error_column = input_stream.GetEndColumn();
>                 System.String error_after = null;
>                 bool EOFSeen = false;
>                 try
>                 {
>                     input_stream.ReadChar(); input_stream.Backup(1);
>                 }
>                 catch (System.IO.IOException e1)
>                 {
>                     EOFSeen = true;
>                     error_after = curPos <= 1 ? "" : input_stream.GetImage();
>                     if (curChar == '\n' || curChar == '\r')
>                     {
>                         error_line++;
>                         error_column = 0;
>                     }
>                     else
>                         error_column++;
>                 }
>                 if (!EOFSeen)
>                 {
>                     input_stream.Backup(1);
>                     error_after = curPos <= 1 ? "" : input_stream.GetImage();
>                 }
>                 throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
>             EOFLoop: ;
>             }
>         }
>     }
> }
> {code} 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (LUCENENET-118) Trailing and leading wildcards in Lucene.NET 2.1

Posted by "jeroen lauwers (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/LUCENENET-118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12608750#action_12608750 ] 

jeroen lauwers commented on LUCENENET-118:
------------------------------------------

George, If support for 2.1 has ended, please feel free to close this issue asap. It was just to help those who want to keep on using 2.1

> Trailing and leading wildcards in Lucene.NET 2.1
> ------------------------------------------------
>
>                 Key: LUCENENET-118
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-118
>             Project: Lucene.Net
>          Issue Type: Improvement
>         Environment: Lucene.NET 2.1
> .NET2.0
>            Reporter: jeroen lauwers
>            Priority: Minor
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> See java project LUCENE-813
> The patch of the java project was applied to QueryParserTokenManager.cs
> (but only quickly tested)
> It seems to work  :-)
> {code:title=QueryParserTokenManager.cs|borderStyle=solid}
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one or more
>  * contributor license agreements.  See the NOTICE file distributed with
>  * this work for additional information regarding copyright ownership.
>  * The ASF licenses this file to You under the Apache License, Version 2.0
>  * (the "License"); you may not use this file except in compliance with
>  * the License.  You may obtain a copy of the License at
>  * 
>  * http://www.apache.org/licenses/LICENSE-2.0
>  * 
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
> /* Generated By:JavaCC: Do not edit this line. QueryParserTokenManager.java */
> using System;
> using Term = Lucene.Net.Index.Term;
> using Lucene.Net.Analysis;
> using Lucene.Net.Documents;
> using Lucene.Net.Search;
> using Searchable = Lucene.Net.Search.Searchable;
> using Parameter = Lucene.Net.Util.Parameter;
> namespace Lucene.Net.QueryParsers
> {
>     public class QueryParserTokenManager : QueryParserConstants
>     {
>         private void InitBlock()
>         {
>             System.IO.StreamWriter temp_writer;
>             temp_writer = new System.IO.StreamWriter(System.Console.OpenStandardOutput(), System.Console.Out.Encoding);
>             temp_writer.AutoFlush = true;
>             debugStream = temp_writer;
>         }
>         public System.IO.StreamWriter debugStream;
>         public virtual void SetDebugStream(System.IO.StreamWriter ds)
>         {
>             debugStream = ds;
>         }
>         private int JjStopStringLiteralDfa_3(int pos, long active0)
>         {
>             switch (pos)
>             {
>                 default:
>                     return -1;
>             }
>         }
>         private int JjStartNfa_3(int pos, long active0)
>         {
>             return JjMoveNfa_3(JjStopStringLiteralDfa_3(pos, active0), pos + 1);
>         }
>         private int JjStopAtPos(int pos, int kind)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             return pos + 1;
>         }
>         private int JjStartNfaWithStates_3(int pos, int kind, int state)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException)
>             {
>                 return pos + 1;
>             }
>             return JjMoveNfa_3(state, pos + 1);
>         }
>         private int JjMoveStringLiteralDfa0_3()
>         {
>             switch (curChar)
>             {
>                 case (char)(40):
>                     return JjStopAtPos(0, 12);
>                 case (char)(41):
>                     return JjStopAtPos(0, 13);
>                 case (char)(42):
>                     return JjStartNfaWithStates_3(0, 15, 36);
>                 case (char)(43):
>                     return JjStopAtPos(0, 10);
>                 case (char)(45):
>                     return JjStopAtPos(0, 11);
>                 case (char)(58):
>                     return JjStopAtPos(0, 14);
>                 case (char)(91):
>                     return JjStopAtPos(0, 22);
>                 case (char)(94):
>                     return JjStopAtPos(0, 16);
>                 case (char)(123):
>                     return JjStopAtPos(0, 23);
>                 default:
>                     return JjMoveNfa_3(0, 0);
>             }
>         }
>         private void JjCheckNAdd(int state)
>         {
>             if (jjrounds[state] != jjround)
>             {
>                 jjstateSet[jjnewStateCnt++] = state;
>                 jjrounds[state] = jjround;
>             }
>         }
>         private void JjAddStates(int start, int end)
>         {
>             do
>             {
>                 jjstateSet[jjnewStateCnt++] = jjnextStates[start];
>             }
>             while (start++ != end);
>         }
>         private void JjCheckNAddTwoStates(int state1, int state2)
>         {
>             JjCheckNAdd(state1);
>             JjCheckNAdd(state2);
>         }
>         private void JjCheckNAddStates(int start, int end)
>         {
>             do
>             {
>                 JjCheckNAdd(jjnextStates[start]);
>             }
>             while (start++ != end);
>         }
>         private void JjCheckNAddStates(int start)
>         {
>             JjCheckNAdd(jjnextStates[start]);
>             JjCheckNAdd(jjnextStates[start + 1]);
>         }
>         internal static readonly ulong[] jjbitVec0 = new ulong[] { 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL };
>         internal static readonly ulong[] jjbitVec2 = new ulong[] { 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL };
>         private int JjMoveNfa_3(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 36;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 36:
>                             case 25:
>                                 if ((0xfbfffcf8ffffd9ffL & l) == 0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 0:
>                                 if ((0xfbffd4f8ffffd9ffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 else if ((0x100002600L & l) != (ulong)0L)
>                                 {
>                                     if (kind > 6)
>                                         kind = 6;
>                                 }
>                                 else if (curChar == 34)
>                                     JjCheckNAddTwoStates(15, 17);
>                                 else if (curChar == 33)
>                                 {
>                                     if (kind > 9)
>                                         kind = 9;
>                                 }
>                                 if ((0x7bffd0f8ffffd9ffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 18)
>                                         kind = 18;
>                                     JjCheckNAddStates(0, 4);
>                                 }
>                                 else if (curChar == 42)
>                                 {
>                                     if (kind > 20)
>                                         kind = 20;
>                                 }
>                                 if (curChar == 38)
>                                     jjstateSet[jjnewStateCnt++] = 4;
>                                 break;
>                             case 4:
>                                 if (curChar == 38 && kind > 7)
>                                     kind = 7;
>                                 break;
>                             case 5:
>                                 if (curChar == 38)
>                                     jjstateSet[jjnewStateCnt++] = 4;
>                                 break;
>                             case 13:
>                                 if (curChar == 33 && kind > 9)
>                                     kind = 9;
>                                 break;
>                             case 14:
>                                 if (curChar == 34)
>                                     JjCheckNAddTwoStates(15, 17);
>                                 break;
>                             case 15:
>                                 if ((0xfffffffbffffffffL & l) != (ulong)0L)
>                                     JjCheckNAddStates(5, 7);
>                                 break;
>                             case 16:
>                                 if (curChar == 34)
>                                     JjCheckNAddStates(5, 7);
>                                 break;
>                             case 18:
>                                 if (curChar == 34 && kind > 17)
>                                     kind = 17;
>                                 break;
>                             case 20:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 19)
>                                     kind = 19;
>                                 JjAddStates(8, 9);
>                                 break;
>                             case 21:
>                                 if (curChar == 46)
>                                     JjCheckNAdd(22);
>                                 break;
>                             case 22:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 19)
>                                     kind = 19;
>                                 JjCheckNAdd(22);
>                                 break;
>                             case 23:
>                                 if (curChar == 42 && kind > 20)
>                                     kind = 20;
>                                 break;
>                             case 24:
>                                 if ((0xfbffd4f8ffffd9ffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 27:
>                                 if ((0x84002f0600000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 28:
>                                 if ((0x7bffd0f8ffffd9ffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddStates(0, 4);
>                                 break;
>                             case 29:
>                                 if ((0x7bfff8f8ffffd9ffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 31:
>                                 if ((0x84002f0600000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 32:
>                                 if ((0x7bfff8f8ffffd9ffL & l) != 0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             case 34:
>                                 if ((0x84002f0600000000L & l) != 0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 36:
>                                 if ((0x97ffffff97ffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(27, 27);
>                                 break;
>                             case 0:
>                                 if ((0x97ffffff97ffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 18)
>                                         kind = 18;
>                                     JjCheckNAddStates(0, 4);
>                                 }
>                                 else if (curChar == 126)
>                                 {
>                                     if (kind > 19)
>                                         kind = 19;
>                                     jjstateSet[jjnewStateCnt++] = 20;
>                                 }
>                                 if ((0x97ffffff97ffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 if (curChar == 92)
>                                     JjCheckNAddStates(13, 15);
>                                 else if (curChar == 78)
>                                     jjstateSet[jjnewStateCnt++] = 11;
>                                 else if (curChar == 124)
>                                     jjstateSet[jjnewStateCnt++] = 8;
>                                 else if (curChar == 79)
>                                     jjstateSet[jjnewStateCnt++] = 6;
>                                 else if (curChar == 65)
>                                     jjstateSet[jjnewStateCnt++] = 2;
>                                 break;
>                             case 1:
>                                 if (curChar == 68 && kind > 7)
>                                     kind = 7;
>                                 break;
>                             case 2:
>                                 if (curChar == 78)
>                                     jjstateSet[jjnewStateCnt++] = 1;
>                                 break;
>                             case 3:
>                                 if (curChar == 65)
>                                     jjstateSet[jjnewStateCnt++] = 2;
>                                 break;
>                             case 6:
>                                 if (curChar == 82 && kind > 8)
>                                     kind = 8;
>                                 break;
>                             case 7:
>                                 if (curChar == 79)
>                                     jjstateSet[jjnewStateCnt++] = 6;
>                                 break;
>                             case 8:
>                                 if (curChar == 124 && kind > 8)
>                                     kind = 8;
>                                 break;
>                             case 9:
>                                 if (curChar == 124)
>                                     jjstateSet[jjnewStateCnt++] = 8;
>                                 break;
>                             case 10:
>                                 if (curChar == 84 && kind > 9)
>                                     kind = 9;
>                                 break;
>                             case 11:
>                                 if (curChar == 79)
>                                     jjstateSet[jjnewStateCnt++] = 10;
>                                 break;
>                             case 12:
>                                 if (curChar == 78)
>                                     jjstateSet[jjnewStateCnt++] = 11;
>                                 break;
>                             case 15:
>                                 JjAddStates(5, 7);
>                                 break;
>                             case 17:
>                                 if (curChar == 92)
>                                     jjstateSet[jjnewStateCnt++] = 16;
>                                 break;
>                             case 19:
>                                 if (curChar != 126)
>                                     break;
>                                 if (kind > 19)
>                                     kind = 19;
>                                 jjstateSet[jjnewStateCnt++] = 20;
>                                 break;
>                             case 24:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 25:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 26:
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(27, 27);
>                                 break;
>                             case 27:
>                                 if ((0x6800000078000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 28:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(0, 4);
>                                 break;
>                             case 29:
>                                 if ((0x97ffffff97ffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 30:
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(31, 31);
>                                 break;
>                             case 31:
>                                 if ((0x6800000078000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 32:
>                                 if ((0x97ffffff97ffffffL & l) != 0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             case 33:
>                                 if (curChar == 92)
>                                     JjCheckNAddTwoStates(34, 34);
>                                 break;
>                             case 34:
>                                 if ((0x6800000078000000L & l) != (ulong)0L)
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             case 35:
>                                 if (curChar == 92)
>                                     JjCheckNAddStates(13, 15);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 36:
>                             case 25:
>                                 if (!JjCanMove_0(hiByte, i1, i2, l1, l2))
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 0:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                 {
>                                     if (kind > 21)
>                                         kind = 21;
>                                     JjCheckNAddTwoStates(25, 26);
>                                 }
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                 {
>                                     if (kind > 18)
>                                         kind = 18;
>                                     JjCheckNAddStates(0, 4);
>                                 }
>                                 break;
>                             case 15:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     JjAddStates(5, 7);
>                                 break;
>                             case 24:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 21)
>                                     kind = 21;
>                                 JjCheckNAddTwoStates(25, 26);
>                                 break;
>                             case 28:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddStates(0, 4);
>                                 break;
>                             case 29:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 18)
>                                     kind = 18;
>                                 JjCheckNAddTwoStates(29, 30);
>                                 break;
>                             case 32:
>                                 if (JjCanMove_0(hiByte, i1, i2, l1, l2))
>                                     JjCheckNAddStates(10, 12);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 36 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         private int JjStopStringLiteralDfa_1(int pos, ulong active0)
>         {
>             switch (pos)
>             {
>                 case 0:
>                     if ((active0 & 0x20000000L) != 0L)
>                     {
>                         jjmatchedKind = 32;
>                         return 6;
>                     }
>                     return -1;
>                 default:
>                     return -1;
>             }
>         }
>         private int JjStartNfa_1(int pos, ulong active0)
>         {
>             return JjMoveNfa_1(JjStopStringLiteralDfa_1(pos, (ulong)active0), pos + 1);
>         }
>         private int JjStartNfaWithStates_1(int pos, int kind, int state)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException)
>             {
>                 return pos + 1;
>             }
>             return JjMoveNfa_1(state, pos + 1);
>         }
>         private int JjMoveStringLiteralDfa0_1()
>         {
>             switch (curChar)
>             {
>                 case (char)(84):
>                     return JjMoveStringLiteralDfa1_1((ulong)0x20000000L);
>                 case (char)(125):
>                     return JjStopAtPos(0, 30);
>                 default:
>                     return JjMoveNfa_1(0, 0);
>             }
>         }
>         private int JjMoveStringLiteralDfa1_1(ulong active0)
>         {
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException)
>             {
>                 JjStopStringLiteralDfa_1(0, (ulong)active0);
>                 return 1;
>             }
>             switch (curChar)
>             {
>                 case (char)(79):
>                     if ((active0 & 0x20000000L) != 0L)
>                         return JjStartNfaWithStates_1(1, 29, 6);
>                     break;
>                 default:
>                     break;
>             }
>             return JjStartNfa_1(0, (ulong)active0);
>         }
>         private int JjMoveNfa_1(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 7;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                                 if ((0xfffffffeffffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 32)
>                                         kind = 32;
>                                     JjCheckNAdd(6);
>                                 }
>                                 if ((0x100002600L & l) != (ulong)0L)
>                                 {
>                                     if (kind > 6)
>                                         kind = 6;
>                                 }
>                                 else if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 1:
>                                 if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 2:
>                                 if ((0xfffffffbffffffffL & l) != (ulong)0L)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 3:
>                                 if (curChar == 34)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 5:
>                                 if (curChar == 34 && kind > 31)
>                                     kind = 31;
>                                 break;
>                             case 6:
>                                 if ((0xfffffffeffffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 32)
>                                     kind = 32;
>                                 JjCheckNAdd(6);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if ((0xdfffffffffffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 32)
>                                     kind = 32;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 JjAddStates(16, 18);
>                                 break;
>                             case 4:
>                                 if (curChar == 92)
>                                     jjstateSet[jjnewStateCnt++] = 3;
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 32)
>                                     kind = 32;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     JjAddStates(16, 18);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         private int JjMoveStringLiteralDfa0_0()
>         {
>             return JjMoveNfa_0(0, 0);
>         }
>         private int JjMoveNfa_0(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 3;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 24)
>                                     kind = 24;
>                                 JjAddStates(19, 20);
>                                 break;
>                             case 1:
>                                 if (curChar == 46)
>                                     JjCheckNAdd(2);
>                                 break;
>                             case 2:
>                                 if ((0x3ff000000000000L & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 24)
>                                     kind = 24;
>                                 JjCheckNAdd(2);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         private int JjStopStringLiteralDfa_2(int pos, ulong active0)
>         {
>             switch (pos)
>             {
>                 case 0:
>                     if ((active0 & 0x2000000L) != (ulong)0L)
>                     {
>                         jjmatchedKind = 28;
>                         return 6;
>                     }
>                     return -1;
>                 default:
>                     return -1;
>             }
>         }
>         private int JjStartNfa_2(int pos, ulong active0)
>         {
>             return JjMoveNfa_2(JjStopStringLiteralDfa_2(pos, (ulong)active0), pos + 1);
>         }
>         private int JjStartNfaWithStates_2(int pos, int kind, int state)
>         {
>             jjmatchedKind = kind;
>             jjmatchedPos = pos;
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException e)
>             {
>                 return pos + 1;
>             }
>             return JjMoveNfa_2(state, pos + 1);
>         }
>         private int JjMoveStringLiteralDfa0_2()
>         {
>             switch (curChar)
>             {
>                 case (char)(84):
>                     return JjMoveStringLiteralDfa1_2((ulong)0x2000000L);
>                 case (char)(93):
>                     return JjStopAtPos(0, 26);
>                 default:
>                     return JjMoveNfa_2(0, 0);
>             }
>         }
>         private int JjMoveStringLiteralDfa1_2(ulong active0)
>         {
>             try
>             {
>                 curChar = input_stream.ReadChar();
>             }
>             catch (System.IO.IOException e)
>             {
>                 JjStopStringLiteralDfa_2(0, (ulong)active0);
>                 return 1;
>             }
>             switch (curChar)
>             {
>                 case (char)(79):
>                     if ((active0 & 0x2000000L) != (ulong)0L)
>                         return JjStartNfaWithStates_2(1, 25, 6);
>                     break;
>                 default:
>                     break;
>             }
>             return JjStartNfa_2(0, (ulong)active0);
>         }
>         private int JjMoveNfa_2(int startState, int curPos)
>         {
>             int[] nextStates;
>             int startsAt = 0;
>             jjnewStateCnt = 7;
>             int i = 1;
>             jjstateSet[0] = startState;
>             int j, kind = 0x7fffffff;
>             for (; ; )
>             {
>                 if (++jjround == 0x7fffffff)
>                     ReInitRounds();
>                 if (curChar < 64)
>                 {
>                     ulong l = ((ulong)1L) << curChar;
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                                 if ((0xfffffffeffffffffL & l) != (ulong)0L)
>                                 {
>                                     if (kind > 28)
>                                         kind = 28;
>                                     JjCheckNAdd(6);
>                                 }
>                                 if ((0x100002600L & l) != (ulong)0L)
>                                 {
>                                     if (kind > 6)
>                                         kind = 6;
>                                 }
>                                 else if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 1:
>                                 if (curChar == 34)
>                                     JjCheckNAddTwoStates(2, 4);
>                                 break;
>                             case 2:
>                                 if ((0xfffffffbffffffffL & l) != (ulong)0L)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 3:
>                                 if (curChar == 34)
>                                     JjCheckNAddStates(16, 18);
>                                 break;
>                             case 5:
>                                 if (curChar == 34 && kind > 27)
>                                     kind = 27;
>                                 break;
>                             case 6:
>                                 if ((0xfffffffeffffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 28)
>                                     kind = 28;
>                                 JjCheckNAdd(6);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else if (curChar < 128)
>                 {
>                     ulong l = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if ((0xffffffffdfffffffL & l) == (ulong)0L)
>                                     break;
>                                 if (kind > 28)
>                                     kind = 28;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 JjAddStates(16, 18);
>                                 break;
>                             case 4:
>                                 if (curChar == 92)
>                                     jjstateSet[jjnewStateCnt++] = 3;
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 else
>                 {
>                     int hiByte = (int)(curChar >> 8);
>                     int i1 = hiByte >> 6;
>                     ulong l1 = ((ulong)1L) << (hiByte & 63);
>                     int i2 = (curChar & 0xff) >> 6;
>                     ulong l2 = ((ulong)1L) << (curChar & 63);
>                 MatchLoop1:
>                     do
>                     {
>                         switch (jjstateSet[--i])
>                         {
>                             case 0:
>                             case 6:
>                                 if (!JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     break;
>                                 if (kind > 28)
>                                     kind = 28;
>                                 JjCheckNAdd(6);
>                                 break;
>                             case 2:
>                                 if (JjCanMove_0(hiByte, i1, i2, (ulong)l1, (ulong)l2))
>                                     JjAddStates(16, 18);
>                                 break;
>                             default: break;
>                         }
>                     }
>                     while (i != startsAt);
>                 }
>                 if (kind != 0x7fffffff)
>                 {
>                     jjmatchedKind = kind;
>                     jjmatchedPos = curPos;
>                     kind = 0x7fffffff;
>                 }
>                 ++curPos;
>                 if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
>                     return curPos;
>                 try
>                 {
>                     curChar = input_stream.ReadChar();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     return curPos;
>                 }
>             }
>         }
>         internal static readonly int[] jjnextStates = new int[] { 29, 32, 23, 33, 30, 15, 17, 18, 20, 21, 32, 23, 33, 31, 34, 27, 2, 4, 5, 0, 1 };
>         private static bool JjCanMove_0(int hiByte, int i1, int i2, ulong l1, ulong l2)
>         {
>             switch (hiByte)
>             {
>                 case 0:
>                     return ((jjbitVec2[i2] & l2) != (ulong)0L);
>                 default:
>                     if ((jjbitVec0[i1] & l1) != (ulong)0L)
>                         return true;
>                     return false;
>             }
>         }
>         public static readonly System.String[] jjstrLiteralImages = new System.String[] { "", null, null, null, null, null, null, null, null, null, "\x002B", "\x002D", "\x0028", "\x0029", "\x003A", "\x002A", "\x005E", null, null, null, null, null, "\x005B", "\x007B", null, "\x0054\x004F", "\x005D", null, null, "\x0054\x004F", "\x007D", null, null };
>         public static readonly System.String[] lexStateNames = new System.String[] { "Boost", "RangeEx", "RangeIn", "DEFAULT" };
>         public static readonly int[] jjnewLexState = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 2, 1, 3, -1, 3, -1, -1, -1, 3, -1, -1 };
>         internal static readonly ulong[] jjtoToken = new ulong[] { 0x1ffffff81L };
>         internal static readonly long[] jjtoSkip = new long[] { 0x40L };
>         protected internal CharStream input_stream;
>         private uint[] jjrounds = new uint[36];
>         private int[] jjstateSet = new int[72];
>         protected internal char curChar;
>         public QueryParserTokenManager(CharStream stream)
>         {
>             InitBlock();
>             input_stream = stream;
>         }
>         public QueryParserTokenManager(CharStream stream, int lexState)
>             : this(stream)
>         {
>             SwitchTo(lexState);
>         }
>         public virtual void ReInit(CharStream stream)
>         {
>             jjmatchedPos = jjnewStateCnt = 0;
>             curLexState = defaultLexState;
>             input_stream = stream;
>             ReInitRounds();
>         }
>         private void ReInitRounds()
>         {
>             int i;
>             jjround = 0x80000001;
>             for (i = 36; i-- > 0; )
>                 jjrounds[i] = 0x80000000;
>         }
>         public virtual void ReInit(CharStream stream, int lexState)
>         {
>             ReInit(stream);
>             SwitchTo(lexState);
>         }
>         public virtual void SwitchTo(int lexState)
>         {
>             if (lexState >= 4 || lexState < 0)
>                 throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
>             else
>                 curLexState = lexState;
>         }
>         protected internal virtual Token JjFillToken()
>         {
>             Token t = Token.newToken(jjmatchedKind);
>             t.kind = jjmatchedKind;
>             System.String im = jjstrLiteralImages[jjmatchedKind];
>             t.image = (im == null) ? input_stream.GetImage() : im;
>             t.beginLine = input_stream.GetBeginLine();
>             t.beginColumn = input_stream.GetBeginColumn();
>             t.endLine = input_stream.GetEndLine();
>             t.endColumn = input_stream.GetEndColumn();
>             return t;
>         }
>         internal int curLexState = 3;
>         internal int defaultLexState = 3;
>         internal int jjnewStateCnt;
>         internal uint jjround;
>         internal int jjmatchedPos;
>         internal int jjmatchedKind;
>         public virtual Token GetNextToken()
>         {
>             int kind;
>             Token specialToken = null;
>             Token matchedToken;
>             int curPos = 0;
>             for (; ; )
>             {
>                 try
>                 {
>                     curChar = input_stream.BeginToken();
>                 }
>                 catch (System.IO.IOException e)
>                 {
>                     jjmatchedKind = 0;
>                     matchedToken = JjFillToken();
>                     return matchedToken;
>                 }
>                 switch (curLexState)
>                 {
>                     case 0:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_0();
>                         break;
>                     case 1:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_1();
>                         break;
>                     case 2:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_2();
>                         break;
>                     case 3:
>                         jjmatchedKind = 0x7fffffff;
>                         jjmatchedPos = 0;
>                         curPos = JjMoveStringLiteralDfa0_3();
>                         break;
>                 }
>                 if (jjmatchedKind != 0x7fffffff)
>                 {
>                     if (jjmatchedPos + 1 < curPos)
>                         input_stream.Backup(curPos - jjmatchedPos - 1);
>                     if ((jjtoToken[jjmatchedKind >> 6] & ((ulong)(1L << (jjmatchedKind & 63)))) != (ulong)0L)
>                     {
>                         matchedToken = JjFillToken();
>                         if (jjnewLexState[jjmatchedKind] != -1)
>                             curLexState = jjnewLexState[jjmatchedKind];
>                         return matchedToken;
>                     }
>                     else
>                     {
>                         if (jjnewLexState[jjmatchedKind] != -1)
>                             curLexState = jjnewLexState[jjmatchedKind];
>                         goto EOFLoop;
>                     }
>                 }
>                 int error_line = input_stream.GetEndLine();
>                 int error_column = input_stream.GetEndColumn();
>                 System.String error_after = null;
>                 bool EOFSeen = false;
>                 try
>                 {
>                     input_stream.ReadChar(); input_stream.Backup(1);
>                 }
>                 catch (System.IO.IOException e1)
>                 {
>                     EOFSeen = true;
>                     error_after = curPos <= 1 ? "" : input_stream.GetImage();
>                     if (curChar == '\n' || curChar == '\r')
>                     {
>                         error_line++;
>                         error_column = 0;
>                     }
>                     else
>                         error_column++;
>                 }
>                 if (!EOFSeen)
>                 {
>                     input_stream.Backup(1);
>                     error_after = curPos <= 1 ? "" : input_stream.GetImage();
>                 }
>                 throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
>             EOFLoop: ;
>             }
>         }
>     }
> }
> {code} 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.