| /* Generated By:CSharpCC: Do not edit this line. SelectorParserTokenManager.cs */
|
| /**
|
| *
|
| * 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.
|
| */
|
| using System;
|
| using System.IO;
|
| using System.Text;
|
| using System.Collections;
|
| using Apache.NMS;
|
|
|
| public class SelectorParserTokenManager : SelectorParserConstants {
|
| public System.IO.TextWriter debugStream = Console.Out;
|
| public void SetDebugStream(System.IO.TextWriter ds) { debugStream = ds; }
|
| private int mccStopAtPos(int pos, int kind)
|
| {
|
| mccmatchedKind = kind;
|
| mccmatchedPos = pos;
|
| return pos + 1;
|
| }
|
| private int mccMoveStringLiteralDfa0_0()
|
| {
|
| switch((int)curChar) {
|
| case 9:
|
| mccmatchedKind = 2;
|
| return mccMoveNfa_0(5, 0);
|
| case 10:
|
| mccmatchedKind = 3;
|
| return mccMoveNfa_0(5, 0);
|
| case 12:
|
| mccmatchedKind = 5;
|
| return mccMoveNfa_0(5, 0);
|
| case 13:
|
| mccmatchedKind = 4;
|
| return mccMoveNfa_0(5, 0);
|
| case 32:
|
| mccmatchedKind = 1;
|
| return mccMoveNfa_0(5, 0);
|
| case 37:
|
| mccmatchedKind = 41;
|
| return mccMoveNfa_0(5, 0);
|
| case 40:
|
| mccmatchedKind = 34;
|
| return mccMoveNfa_0(5, 0);
|
| case 41:
|
| mccmatchedKind = 36;
|
| return mccMoveNfa_0(5, 0);
|
| case 42:
|
| mccmatchedKind = 39;
|
| return mccMoveNfa_0(5, 0);
|
| case 43:
|
| mccmatchedKind = 37;
|
| return mccMoveNfa_0(5, 0);
|
| case 44:
|
| mccmatchedKind = 35;
|
| return mccMoveNfa_0(5, 0);
|
| case 45:
|
| mccmatchedKind = 38;
|
| return mccMoveNfa_0(5, 0);
|
| case 47:
|
| mccmatchedKind = 40;
|
| return mccMoveNfa_0(5, 0);
|
| case 60:
|
| mccmatchedKind = 32;
|
| return mccMoveStringLiteralDfa1_0(9126805504L);
|
| case 61:
|
| mccmatchedKind = 28;
|
| return mccMoveNfa_0(5, 0);
|
| case 62:
|
| mccmatchedKind = 30;
|
| return mccMoveStringLiteralDfa1_0(2147483648L);
|
| case 65:
|
| return mccMoveStringLiteralDfa1_0(512L);
|
| case 66:
|
| return mccMoveStringLiteralDfa1_0(2048L);
|
| case 69:
|
| return mccMoveStringLiteralDfa1_0(8192L);
|
| case 70:
|
| return mccMoveStringLiteralDfa1_0(131072L);
|
| case 73:
|
| return mccMoveStringLiteralDfa1_0(49152L);
|
| case 76:
|
| return mccMoveStringLiteralDfa1_0(4096L);
|
| case 78:
|
| return mccMoveStringLiteralDfa1_0(262400L);
|
| case 79:
|
| return mccMoveStringLiteralDfa1_0(1024L);
|
| case 84:
|
| return mccMoveStringLiteralDfa1_0(65536L);
|
| case 88:
|
| return mccMoveStringLiteralDfa1_0(1572864L);
|
| case 97:
|
| return mccMoveStringLiteralDfa1_0(512L);
|
| case 98:
|
| return mccMoveStringLiteralDfa1_0(2048L);
|
| case 101:
|
| return mccMoveStringLiteralDfa1_0(8192L);
|
| case 102:
|
| return mccMoveStringLiteralDfa1_0(131072L);
|
| case 105:
|
| return mccMoveStringLiteralDfa1_0(49152L);
|
| case 108:
|
| return mccMoveStringLiteralDfa1_0(4096L);
|
| case 110:
|
| return mccMoveStringLiteralDfa1_0(262400L);
|
| case 111:
|
| return mccMoveStringLiteralDfa1_0(1024L);
|
| case 116:
|
| return mccMoveStringLiteralDfa1_0(65536L);
|
| case 120:
|
| return mccMoveStringLiteralDfa1_0(1572864L);
|
| default :
|
| return mccMoveNfa_0(5, 0);
|
| }
|
| }
|
| private int mccMoveStringLiteralDfa1_0(long active0)
|
| {
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) {
|
| return mccMoveNfa_0(5, 0);
|
| }
|
| switch((int)curChar) {
|
| case 61:
|
| if ((active0 & 2147483648L) != 0L)
|
| {
|
| mccmatchedKind = 31;
|
| mccmatchedPos = 1;
|
| }
|
| else if ((active0 & 8589934592L) != 0L)
|
| {
|
| mccmatchedKind = 33;
|
| mccmatchedPos = 1;
|
| }
|
| break;
|
| case 62:
|
| if ((active0 & 536870912L) != 0L)
|
| {
|
| mccmatchedKind = 29;
|
| mccmatchedPos = 1;
|
| }
|
| break;
|
| case 65:
|
| return mccMoveStringLiteralDfa2_0(active0, 131072L);
|
| case 69:
|
| return mccMoveStringLiteralDfa2_0(active0, 2048L);
|
| case 73:
|
| return mccMoveStringLiteralDfa2_0(active0, 4096L);
|
| case 78:
|
| if ((active0 & 16384L) != 0L)
|
| {
|
| mccmatchedKind = 14;
|
| mccmatchedPos = 1;
|
| }
|
| return mccMoveStringLiteralDfa2_0(active0, 512L);
|
| case 79:
|
| return mccMoveStringLiteralDfa2_0(active0, 256L);
|
| case 80:
|
| return mccMoveStringLiteralDfa2_0(active0, 524288L);
|
| case 81:
|
| return mccMoveStringLiteralDfa2_0(active0, 1048576L);
|
| case 82:
|
| if ((active0 & 1024L) != 0L)
|
| {
|
| mccmatchedKind = 10;
|
| mccmatchedPos = 1;
|
| }
|
| return mccMoveStringLiteralDfa2_0(active0, 65536L);
|
| case 83:
|
| if ((active0 & 32768L) != 0L)
|
| {
|
| mccmatchedKind = 15;
|
| mccmatchedPos = 1;
|
| }
|
| return mccMoveStringLiteralDfa2_0(active0, 8192L);
|
| case 85:
|
| return mccMoveStringLiteralDfa2_0(active0, 262144L);
|
| case 97:
|
| return mccMoveStringLiteralDfa2_0(active0, 131072L);
|
| case 101:
|
| return mccMoveStringLiteralDfa2_0(active0, 2048L);
|
| case 105:
|
| return mccMoveStringLiteralDfa2_0(active0, 4096L);
|
| case 110:
|
| if ((active0 & 16384L) != 0L)
|
| {
|
| mccmatchedKind = 14;
|
| mccmatchedPos = 1;
|
| }
|
| return mccMoveStringLiteralDfa2_0(active0, 512L);
|
| case 111:
|
| return mccMoveStringLiteralDfa2_0(active0, 256L);
|
| case 112:
|
| return mccMoveStringLiteralDfa2_0(active0, 524288L);
|
| case 113:
|
| return mccMoveStringLiteralDfa2_0(active0, 1048576L);
|
| case 114:
|
| if ((active0 & 1024L) != 0L)
|
| {
|
| mccmatchedKind = 10;
|
| mccmatchedPos = 1;
|
| }
|
| return mccMoveStringLiteralDfa2_0(active0, 65536L);
|
| case 115:
|
| if ((active0 & 32768L) != 0L)
|
| {
|
| mccmatchedKind = 15;
|
| mccmatchedPos = 1;
|
| }
|
| return mccMoveStringLiteralDfa2_0(active0, 8192L);
|
| case 117:
|
| return mccMoveStringLiteralDfa2_0(active0, 262144L);
|
| default :
|
| break;
|
| }
|
| return mccMoveNfa_0(5, 1);
|
| }
|
| private int mccMoveStringLiteralDfa2_0(long old0, long active0)
|
| {
|
| if (((active0 &= old0)) == 0L)
|
| return mccMoveNfa_0(5, 1);
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) {
|
| return mccMoveNfa_0(5, 1);
|
| }
|
| switch((int)curChar) {
|
| case 65:
|
| return mccMoveStringLiteralDfa3_0(active0, 524288L);
|
| case 67:
|
| return mccMoveStringLiteralDfa3_0(active0, 8192L);
|
| case 68:
|
| if ((active0 & 512L) != 0L)
|
| {
|
| mccmatchedKind = 9;
|
| mccmatchedPos = 2;
|
| }
|
| break;
|
| case 75:
|
| return mccMoveStringLiteralDfa3_0(active0, 4096L);
|
| case 76:
|
| return mccMoveStringLiteralDfa3_0(active0, 393216L);
|
| case 84:
|
| if ((active0 & 256L) != 0L)
|
| {
|
| mccmatchedKind = 8;
|
| mccmatchedPos = 2;
|
| }
|
| return mccMoveStringLiteralDfa3_0(active0, 2048L);
|
| case 85:
|
| return mccMoveStringLiteralDfa3_0(active0, 1114112L);
|
| case 97:
|
| return mccMoveStringLiteralDfa3_0(active0, 524288L);
|
| case 99:
|
| return mccMoveStringLiteralDfa3_0(active0, 8192L);
|
| case 100:
|
| if ((active0 & 512L) != 0L)
|
| {
|
| mccmatchedKind = 9;
|
| mccmatchedPos = 2;
|
| }
|
| break;
|
| case 107:
|
| return mccMoveStringLiteralDfa3_0(active0, 4096L);
|
| case 108:
|
| return mccMoveStringLiteralDfa3_0(active0, 393216L);
|
| case 116:
|
| if ((active0 & 256L) != 0L)
|
| {
|
| mccmatchedKind = 8;
|
| mccmatchedPos = 2;
|
| }
|
| return mccMoveStringLiteralDfa3_0(active0, 2048L);
|
| case 117:
|
| return mccMoveStringLiteralDfa3_0(active0, 1114112L);
|
| default :
|
| break;
|
| }
|
| return mccMoveNfa_0(5, 2);
|
| }
|
| private int mccMoveStringLiteralDfa3_0(long old0, long active0)
|
| {
|
| if (((active0 &= old0)) == 0L)
|
| return mccMoveNfa_0(5, 2);
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) {
|
| return mccMoveNfa_0(5, 2);
|
| }
|
| switch((int)curChar) {
|
| case 65:
|
| return mccMoveStringLiteralDfa4_0(active0, 8192L);
|
| case 69:
|
| if ((active0 & 4096L) != 0L)
|
| {
|
| mccmatchedKind = 12;
|
| mccmatchedPos = 3;
|
| }
|
| else if ((active0 & 65536L) != 0L)
|
| {
|
| mccmatchedKind = 16;
|
| mccmatchedPos = 3;
|
| }
|
| return mccMoveStringLiteralDfa4_0(active0, 1048576L);
|
| case 76:
|
| if ((active0 & 262144L) != 0L)
|
| {
|
| mccmatchedKind = 18;
|
| mccmatchedPos = 3;
|
| }
|
| break;
|
| case 83:
|
| return mccMoveStringLiteralDfa4_0(active0, 131072L);
|
| case 84:
|
| return mccMoveStringLiteralDfa4_0(active0, 524288L);
|
| case 87:
|
| return mccMoveStringLiteralDfa4_0(active0, 2048L);
|
| case 97:
|
| return mccMoveStringLiteralDfa4_0(active0, 8192L);
|
| case 101:
|
| if ((active0 & 4096L) != 0L)
|
| {
|
| mccmatchedKind = 12;
|
| mccmatchedPos = 3;
|
| }
|
| else if ((active0 & 65536L) != 0L)
|
| {
|
| mccmatchedKind = 16;
|
| mccmatchedPos = 3;
|
| }
|
| return mccMoveStringLiteralDfa4_0(active0, 1048576L);
|
| case 108:
|
| if ((active0 & 262144L) != 0L)
|
| {
|
| mccmatchedKind = 18;
|
| mccmatchedPos = 3;
|
| }
|
| break;
|
| case 115:
|
| return mccMoveStringLiteralDfa4_0(active0, 131072L);
|
| case 116:
|
| return mccMoveStringLiteralDfa4_0(active0, 524288L);
|
| case 119:
|
| return mccMoveStringLiteralDfa4_0(active0, 2048L);
|
| default :
|
| break;
|
| }
|
| return mccMoveNfa_0(5, 3);
|
| }
|
| private int mccMoveStringLiteralDfa4_0(long old0, long active0)
|
| {
|
| if (((active0 &= old0)) == 0L)
|
| return mccMoveNfa_0(5, 3);
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) {
|
| return mccMoveNfa_0(5, 3);
|
| }
|
| switch((int)curChar) {
|
| case 69:
|
| if ((active0 & 131072L) != 0L)
|
| {
|
| mccmatchedKind = 17;
|
| mccmatchedPos = 4;
|
| }
|
| return mccMoveStringLiteralDfa5_0(active0, 2048L);
|
| case 72:
|
| if ((active0 & 524288L) != 0L)
|
| {
|
| mccmatchedKind = 19;
|
| mccmatchedPos = 4;
|
| }
|
| break;
|
| case 80:
|
| return mccMoveStringLiteralDfa5_0(active0, 8192L);
|
| case 82:
|
| return mccMoveStringLiteralDfa5_0(active0, 1048576L);
|
| case 101:
|
| if ((active0 & 131072L) != 0L)
|
| {
|
| mccmatchedKind = 17;
|
| mccmatchedPos = 4;
|
| }
|
| return mccMoveStringLiteralDfa5_0(active0, 2048L);
|
| case 104:
|
| if ((active0 & 524288L) != 0L)
|
| {
|
| mccmatchedKind = 19;
|
| mccmatchedPos = 4;
|
| }
|
| break;
|
| case 112:
|
| return mccMoveStringLiteralDfa5_0(active0, 8192L);
|
| case 114:
|
| return mccMoveStringLiteralDfa5_0(active0, 1048576L);
|
| default :
|
| break;
|
| }
|
| return mccMoveNfa_0(5, 4);
|
| }
|
| private int mccMoveStringLiteralDfa5_0(long old0, long active0)
|
| {
|
| if (((active0 &= old0)) == 0L)
|
| return mccMoveNfa_0(5, 4);
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) {
|
| return mccMoveNfa_0(5, 4);
|
| }
|
| switch((int)curChar) {
|
| case 69:
|
| if ((active0 & 8192L) != 0L)
|
| {
|
| mccmatchedKind = 13;
|
| mccmatchedPos = 5;
|
| }
|
| return mccMoveStringLiteralDfa6_0(active0, 2048L);
|
| case 89:
|
| if ((active0 & 1048576L) != 0L)
|
| {
|
| mccmatchedKind = 20;
|
| mccmatchedPos = 5;
|
| }
|
| break;
|
| case 101:
|
| if ((active0 & 8192L) != 0L)
|
| {
|
| mccmatchedKind = 13;
|
| mccmatchedPos = 5;
|
| }
|
| return mccMoveStringLiteralDfa6_0(active0, 2048L);
|
| case 121:
|
| if ((active0 & 1048576L) != 0L)
|
| {
|
| mccmatchedKind = 20;
|
| mccmatchedPos = 5;
|
| }
|
| break;
|
| default :
|
| break;
|
| }
|
| return mccMoveNfa_0(5, 5);
|
| }
|
| private int mccMoveStringLiteralDfa6_0(long old0, long active0)
|
| {
|
| if (((active0 &= old0)) == 0L)
|
| return mccMoveNfa_0(5, 5);
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) {
|
| return mccMoveNfa_0(5, 5);
|
| }
|
| switch((int)curChar) {
|
| case 78:
|
| if ((active0 & 2048L) != 0L)
|
| {
|
| mccmatchedKind = 11;
|
| mccmatchedPos = 6;
|
| }
|
| break;
|
| case 110:
|
| if ((active0 & 2048L) != 0L)
|
| {
|
| mccmatchedKind = 11;
|
| mccmatchedPos = 6;
|
| }
|
| break;
|
| default :
|
| break;
|
| }
|
| return mccMoveNfa_0(5, 6);
|
| }
|
| private void mccCheckNAdd(int state)
|
| {
|
| if (mccrounds[state] != mccround)
|
| {
|
| mccstateSet[mccnewStateCnt++] = state;
|
| mccrounds[state] = mccround;
|
| }
|
| }
|
| private void mccAddStates(int start, int end)
|
| {
|
| do {
|
| mccstateSet[mccnewStateCnt++] = mccnextStates[start];
|
| } while (start++ != end);
|
| }
|
| private void mccCheckNAddTwoStates(int state1, int state2)
|
| {
|
| mccCheckNAdd(state1);
|
| mccCheckNAdd(state2);
|
| }
|
| private void mccCheckNAddStates(int start, int end)
|
| {
|
| do {
|
| mccCheckNAdd(mccnextStates[start]);
|
| } while (start++ != end);
|
| }
|
| private void mccCheckNAddStates(int start)
|
| {
|
| mccCheckNAdd(mccnextStates[start]);
|
| mccCheckNAdd(mccnextStates[start + 1]);
|
| }
|
| static readonly long[] mccbitVec0 = { |
| -2, -1L, -1L, -1L |
| };
|
| static readonly long[] mccbitVec1 = { |
| -1L, -1L, -1L, -1L |
| };
|
| static readonly long[] mccbitVec2 = { |
| 0L, 0L, -1L, -1L |
| };
|
| private int mccMoveNfa_0(int startState, int curPos)
|
| {
|
| int strKind = mccmatchedKind;
|
| int strPos = mccmatchedPos;
|
| int seenUpto = curPos + 1;
|
| input_stream.Backup(seenUpto);
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) { throw new Exception("Internal Error"); }
|
| curPos = 0;
|
| //int[] nextStates;
|
| int startsAt = 0;
|
| mccnewStateCnt = 43;
|
| int i = 1;
|
| mccstateSet[0] = startState;
|
| int /*j,*/ kind = Int32.MaxValue;
|
| for (;;)
|
| {
|
| if (++mccround == Int32.MaxValue)
|
| ReInitRounds();
|
| if (curChar < 64)
|
| {
|
| long l = 1L << curChar;
|
| do
|
| {
|
| switch(mccstateSet[--i])
|
| {
|
| case 5:
|
| if ((287948901175001088 & l) != 0L)
|
| mccCheckNAddStates(0, 3);
|
| else if (curChar == 36)
|
| {
|
| if (kind > 27)
|
| kind = 27;
|
| mccCheckNAdd(27);
|
| }
|
| else if (curChar == 39)
|
| mccCheckNAddStates(4, 6);
|
| else if (curChar == 46)
|
| mccCheckNAdd(17);
|
| else if (curChar == 47)
|
| mccstateSet[mccnewStateCnt++] = 6;
|
| else if (curChar == 45)
|
| mccstateSet[mccnewStateCnt++] = 0;
|
| if ((287667426198290432 & l) != 0L)
|
| {
|
| if (kind > 21)
|
| kind = 21;
|
| mccCheckNAddTwoStates(14, 15);
|
| }
|
| else if (curChar == 48)
|
| {
|
| if (kind > 23)
|
| kind = 23;
|
| mccCheckNAddTwoStates(40, 42);
|
| }
|
| break;
|
| case 0:
|
| if (curChar == 45)
|
| mccCheckNAddStates(7, 9);
|
| break;
|
| case 1:
|
| if ((-9217 & l) != 0L)
|
| mccCheckNAddStates(7, 9);
|
| break;
|
| case 2:
|
| if ((9216 & l) != 0L && kind > 6)
|
| kind = 6;
|
| break;
|
| case 3:
|
| if (curChar == 10 && kind > 6)
|
| kind = 6;
|
| break;
|
| case 4:
|
| if (curChar == 13)
|
| mccstateSet[mccnewStateCnt++] = 3;
|
| break;
|
| case 6:
|
| if (curChar == 42)
|
| mccCheckNAddTwoStates(7, 8);
|
| break;
|
| case 7:
|
| if ((-4398046511105 & l) != 0L)
|
| mccCheckNAddTwoStates(7, 8);
|
| break;
|
| case 8:
|
| if (curChar == 42)
|
| mccCheckNAddStates(10, 12);
|
| break;
|
| case 9:
|
| if ((-145135534866433 & l) != 0L)
|
| mccCheckNAddTwoStates(10, 8);
|
| break;
|
| case 10:
|
| if ((-4398046511105 & l) != 0L)
|
| mccCheckNAddTwoStates(10, 8);
|
| break;
|
| case 11:
|
| if (curChar == 47 && kind > 7)
|
| kind = 7;
|
| break;
|
| case 12:
|
| if (curChar == 47)
|
| mccstateSet[mccnewStateCnt++] = 6;
|
| break;
|
| case 13:
|
| if ((287667426198290432 & l) == 0L)
|
| break;
|
| if (kind > 21)
|
| kind = 21;
|
| mccCheckNAddTwoStates(14, 15);
|
| break;
|
| case 14:
|
| if ((287948901175001088 & l) == 0L)
|
| break;
|
| if (kind > 21)
|
| kind = 21;
|
| mccCheckNAddTwoStates(14, 15);
|
| break;
|
| case 16:
|
| if (curChar == 46)
|
| mccCheckNAdd(17);
|
| break;
|
| case 17:
|
| if ((287948901175001088 & l) == 0L)
|
| break;
|
| if (kind > 24)
|
| kind = 24;
|
| mccCheckNAddTwoStates(17, 18);
|
| break;
|
| case 19:
|
| if ((43980465111040 & l) != 0L)
|
| mccCheckNAdd(20);
|
| break;
|
| case 20:
|
| if ((287948901175001088 & l) == 0L)
|
| break;
|
| if (kind > 24)
|
| kind = 24;
|
| mccCheckNAdd(20);
|
| break;
|
| case 21:
|
| case 22:
|
| if (curChar == 39)
|
| mccCheckNAddStates(4, 6);
|
| break;
|
| case 23:
|
| if (curChar == 39)
|
| mccstateSet[mccnewStateCnt++] = 22;
|
| break;
|
| case 24:
|
| if ((-549755813889 & l) != 0L)
|
| mccCheckNAddStates(4, 6);
|
| break;
|
| case 25:
|
| if (curChar == 39 && kind > 26)
|
| kind = 26;
|
| break;
|
| case 26:
|
| if (curChar != 36)
|
| break;
|
| if (kind > 27)
|
| kind = 27;
|
| mccCheckNAdd(27);
|
| break;
|
| case 27:
|
| if ((287948969894477824 & l) == 0L)
|
| break;
|
| if (kind > 27)
|
| kind = 27;
|
| mccCheckNAdd(27);
|
| break;
|
| case 28:
|
| if ((287948901175001088 & l) != 0L)
|
| mccCheckNAddStates(0, 3);
|
| break;
|
| case 29:
|
| if ((287948901175001088 & l) != 0L)
|
| mccCheckNAddTwoStates(29, 30);
|
| break;
|
| case 30:
|
| if (curChar != 46)
|
| break;
|
| if (kind > 24)
|
| kind = 24;
|
| mccCheckNAddTwoStates(31, 32);
|
| break;
|
| case 31:
|
| if ((287948901175001088 & l) == 0L)
|
| break;
|
| if (kind > 24)
|
| kind = 24;
|
| mccCheckNAddTwoStates(31, 32);
|
| break;
|
| case 33:
|
| if ((43980465111040 & l) != 0L)
|
| mccCheckNAdd(34);
|
| break;
|
| case 34:
|
| if ((287948901175001088 & l) == 0L)
|
| break;
|
| if (kind > 24)
|
| kind = 24;
|
| mccCheckNAdd(34);
|
| break;
|
| case 35:
|
| if ((287948901175001088 & l) != 0L)
|
| mccCheckNAddTwoStates(35, 36);
|
| break;
|
| case 37:
|
| if ((43980465111040 & l) != 0L)
|
| mccCheckNAdd(38);
|
| break;
|
| case 38:
|
| if ((287948901175001088 & l) == 0L)
|
| break;
|
| if (kind > 24)
|
| kind = 24;
|
| mccCheckNAdd(38);
|
| break;
|
| case 39:
|
| if (curChar != 48)
|
| break;
|
| if (kind > 23)
|
| kind = 23;
|
| mccCheckNAddTwoStates(40, 42);
|
| break;
|
| case 41:
|
| if ((287948901175001088 & l) == 0L)
|
| break;
|
| if (kind > 22)
|
| kind = 22;
|
| mccstateSet[mccnewStateCnt++] = 41;
|
| break;
|
| case 42:
|
| if ((71776119061217280 & l) == 0L)
|
| break;
|
| if (kind > 23)
|
| kind = 23;
|
| mccCheckNAdd(42);
|
| break;
|
| default : break;
|
| }
|
| } while(i != startsAt);
|
| }
|
| else if (curChar < 128)
|
| {
|
| long l = 1L << (curChar & 63);
|
| do
|
| {
|
| switch(mccstateSet[--i])
|
| {
|
| case 5:
|
| case 27:
|
| if ((576460745995190270 & l) == 0L)
|
| break;
|
| if (kind > 27)
|
| kind = 27;
|
| mccCheckNAdd(27);
|
| break;
|
| case 1:
|
| mccAddStates(7, 9);
|
| break;
|
| case 7:
|
| mccCheckNAddTwoStates(7, 8);
|
| break;
|
| case 9:
|
| case 10:
|
| mccCheckNAddTwoStates(10, 8);
|
| break;
|
| case 15:
|
| if ((17592186048512 & l) != 0L && kind > 21)
|
| kind = 21;
|
| break;
|
| case 18:
|
| if ((137438953504 & l) != 0L)
|
| mccAddStates(13, 14);
|
| break;
|
| case 24:
|
| mccAddStates(4, 6);
|
| break;
|
| case 32:
|
| if ((137438953504 & l) != 0L)
|
| mccAddStates(15, 16);
|
| break;
|
| case 36:
|
| if ((137438953504 & l) != 0L)
|
| mccAddStates(17, 18);
|
| break;
|
| case 40:
|
| if ((72057594054705152 & l) != 0L)
|
| mccCheckNAdd(41);
|
| break;
|
| case 41:
|
| if ((541165879422 & l) == 0L)
|
| break;
|
| if (kind > 22)
|
| kind = 22;
|
| mccCheckNAdd(41);
|
| break;
|
| default : break;
|
| }
|
| } while(i != startsAt);
|
| }
|
| else
|
| {
|
| int hiByte = (curChar >> 8);
|
| int i1 = hiByte >> 6;
|
| long l1 = 1L << (hiByte & 63);
|
| int i2 = (curChar & 0xff) >> 6;
|
| long l2 = 1L << (curChar & 63);
|
| do
|
| {
|
| switch(mccstateSet[--i])
|
| {
|
| case 1:
|
| if (mccCanMove_0(hiByte, i1, i2, l1, l2))
|
| mccAddStates(7, 9);
|
| break;
|
| case 7:
|
| if (mccCanMove_0(hiByte, i1, i2, l1, l2))
|
| mccCheckNAddTwoStates(7, 8);
|
| break;
|
| case 9:
|
| case 10:
|
| if (mccCanMove_0(hiByte, i1, i2, l1, l2))
|
| mccCheckNAddTwoStates(10, 8);
|
| break;
|
| case 24:
|
| if (mccCanMove_0(hiByte, i1, i2, l1, l2))
|
| mccAddStates(4, 6);
|
| break;
|
| default : break;
|
| }
|
| } while(i != startsAt);
|
| }
|
| if (kind != Int32.MaxValue)
|
| {
|
| mccmatchedKind = kind;
|
| mccmatchedPos = curPos;
|
| kind = Int32.MaxValue;
|
| }
|
| ++curPos;
|
| if ((i = mccnewStateCnt) == (startsAt = 43 - (mccnewStateCnt = startsAt)))
|
| break;
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) { break; }
|
| }
|
| if (mccmatchedPos > strPos)
|
| return curPos;
|
|
|
| int toRet = Math.Max(curPos, seenUpto);
|
|
|
| if (curPos < toRet)
|
| for (i = toRet - Math.Min(curPos, seenUpto); i-- > 0; )
|
| try { curChar = input_stream.ReadChar(); }
|
| catch(System.IO.IOException) { throw new Exception("Internal Error : Please send a bug report."); }
|
|
|
| if (mccmatchedPos < strPos)
|
| {
|
| mccmatchedKind = strKind;
|
| mccmatchedPos = strPos;
|
| }
|
| else if (mccmatchedPos == strPos && mccmatchedKind > strKind)
|
| mccmatchedKind = strKind;
|
|
|
| return toRet;
|
| }
|
| static readonly int[] mccnextStates = { |
| 29, 30, 35, 36, 23, 24, 25, 1, 2, 4, 8, 9, 11, 19, 20, 33, |
| 34, 37, 38, |
| };
|
| private static bool mccCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
|
| {
|
| switch(hiByte)
|
| {
|
| case 0:
|
| return ((mccbitVec2[i2] & l2) != 0L);
|
| default :
|
| if ((mccbitVec0[i1] & l1) != 0L)
|
| if ((mccbitVec1[i2] & l2) == 0L)
|
| return false;
|
| else
|
| return true;
|
| return false;
|
| }
|
| }
|
| public static readonly string[] mccstrLiteralImages = {
|
| "", null, null, null, null, null, null, null, null, null, null, null, null,
|
| null, null, null, null, null, null, null, null, null, null, null, null, null, null,
|
| null, "=", "<>", ">", ">=", "<", "<=", "(", ",", ")", "+", "-", "*", "/", "%", };
|
| public static readonly string[] lexStateNames = {
|
| "DEFAULT",
|
| };
|
| static readonly long[] mcctoToken = { |
| 4398012956417, |
| };
|
| static readonly long[] mcctoSkip = { |
| 254, |
| };
|
| static readonly long[] mcctoSpecial = { |
| 62, |
| };
|
| protected SimpleCharStream input_stream;
|
| private readonly int[] mccrounds = new int[43];
|
| private readonly int[] mccstateSet = new int[86];
|
| protected char curChar;
|
| public SelectorParserTokenManager(SimpleCharStream stream) {
|
| if (SimpleCharStream.staticFlag)
|
| throw new System.SystemException("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
|
| input_stream = stream;
|
| }
|
| public SelectorParserTokenManager(SimpleCharStream stream, int lexState)
|
| : this(stream) {
|
| SwitchTo(lexState);
|
| }
|
| public void ReInit(SimpleCharStream stream) {
|
| mccmatchedPos = mccnewStateCnt = 0;
|
| curLexState = defaultLexState;
|
| input_stream = stream;
|
| ReInitRounds();
|
| }
|
| private void ReInitRounds()
|
| {
|
| int i;
|
| mccround = -2147483647;
|
| for (i = 43; i-- > 0;)
|
| mccrounds[i] = Int32.MinValue;
|
| }
|
| public void ReInit(SimpleCharStream stream, int lexState) {
|
| ReInit(stream);
|
| SwitchTo(lexState);
|
| }
|
| public void SwitchTo(int lexState) {
|
| if (lexState >= 1 || lexState < 0)
|
| throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.InvalidLexicalState);
|
| else
|
| curLexState = lexState;
|
| }
|
|
|
| protected Token mccFillToken()
|
| {
|
| Token t = Token.NewToken(mccmatchedKind);
|
| t.kind = mccmatchedKind;
|
| string im = mccstrLiteralImages[mccmatchedKind];
|
| t.image = (im == null) ? input_stream.GetImage() : im;
|
| t.beginLine = input_stream.BeginLine;
|
| t.beginColumn = input_stream.BeginColumn;
|
| t.endLine = input_stream.EndLine;
|
| t.endColumn = input_stream.EndColumn;
|
| return t;
|
| }
|
|
|
| int curLexState = 0;
|
| int defaultLexState = 0;
|
| int mccnewStateCnt;
|
| int mccround;
|
| int mccmatchedPos;
|
| int mccmatchedKind;
|
|
|
| public Token GetNextToken() {
|
| //int kind;
|
| Token specialToken = null;
|
| Token matchedToken;
|
| int curPos = 0;
|
|
|
| for (;;) {
|
| try {
|
| curChar = input_stream.BeginToken();
|
| } catch(System.IO.IOException) {
|
| mccmatchedKind = 0;
|
| matchedToken = mccFillToken();
|
| matchedToken.specialToken = specialToken;
|
| return matchedToken;
|
| }
|
|
|
| mccmatchedKind = Int32.MaxValue;
|
| mccmatchedPos = 0;
|
| curPos = mccMoveStringLiteralDfa0_0();
|
| if (mccmatchedKind != Int32.MaxValue) {
|
| if (mccmatchedPos + 1 < curPos)
|
| input_stream.Backup(curPos - mccmatchedPos - 1);
|
| if ((mcctoToken[mccmatchedKind >> 6] & (1L << (mccmatchedKind & 63))) != 0L) {
|
| matchedToken = mccFillToken();
|
| matchedToken.specialToken = specialToken;
|
| return matchedToken;
|
| }
|
| else
|
| {
|
| if ((mcctoSpecial[mccmatchedKind >> 6] & (1L << (mccmatchedKind & 63))) != 0L) {
|
| matchedToken = mccFillToken();
|
| if (specialToken == null)
|
| specialToken = matchedToken;
|
| else {
|
| matchedToken.specialToken = specialToken;
|
| specialToken = (specialToken.next = matchedToken);
|
| }
|
| }
|
| goto EOFLoop;
|
| }
|
| }
|
| int error_line = input_stream.EndLine;
|
| int error_column = input_stream.EndColumn;
|
| string error_after = null;
|
| bool EOFSeen = false;
|
| try { input_stream.ReadChar(); input_stream.Backup(1); }
|
| catch (System.IO.IOException) {
|
| 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.LexicalError);
|
| EOFLoop: ;
|
| }
|
| }
|
|
|
| }
|