blob: 99f51e2878c5a7d9584b6ecb753380d79c31e8dc [file] [log] [blame]
/* 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: ;
}
}
}