lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jeroen lauwers (JIRA)" <j...@apache.org>
Subject [jira] Created: (LUCENENET-118) Trailing and leading wildcards in Lucene.NET 2.1
Date Fri, 27 Jun 2008 12:21:45 GMT
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.


Mime
View raw message