public virtual Token GetNextToken() { Token matchedToken; int curPos = 0; for (; ;) { try { m_curChar = m_input_stream.BeginToken(); } catch (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; } if (jjmatchedKind != 0x7fffffff) { if (jjmatchedPos + 1 < curPos) { m_input_stream.BackUp(curPos - jjmatchedPos - 1); } if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 63 /*077*/))) != 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 = m_input_stream.EndLine; int error_column = m_input_stream.EndColumn; string error_after = null; bool EOFSeen = false; try { m_input_stream.ReadChar(); m_input_stream.BackUp(1); } catch (IOException /*e1*/) { EOFSeen = true; error_after = curPos <= 1 ? "" : m_input_stream.Image; if (m_curChar == '\n' || m_curChar == '\r') { error_line++; error_column = 0; } else { error_column++; } } if (!EOFSeen) { m_input_stream.BackUp(1); error_after = curPos <= 1 ? "" : m_input_stream.Image; } throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, m_curChar, TokenMgrError.LEXICAL_ERROR); EOFLoop :; } }