public Token GetNextToken()

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: ;
  }
}