in src/main/csharp/Selector/SelectorParserTokenManager.cs [977:1039]
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: ;
}
}