📄 queryparsertokenmanager.cs
字号:
}
}
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(11, 13);
break;
case 3:
if (curChar == 34)
JjCheckNAddStates(11, 13);
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(11, 13);
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(11, 13);
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[]{28, 29, 30, 15, 17, 18, 24, 25, 22, 31, 35, 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[37];
private int[] jjstateSet = new int[74];
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 = 37; 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: ;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -