void UndoChar()
{
if (m_iSourceLine == 0 && m_iSourceChar == 0)
throw new LexerException("Cannot undo char beyond start of source.");
--m_iSourceChar;
if (m_iSourceChar < 0) {
--m_iSourceLine;
m_iSourceChar = m_listSourceLines[m_iSourceLine].Length - 1;
}
}
void IgnoreLine()