public SYMBOL NextSym() { // like lexer.Next but allows a one-token pushback for reduce SYMBOL ret = m_ungot; if (ret != null) { m_ungot = null; return ret; } ret = (SYMBOL)m_lexer.Next(); if (ret==null) ret = m_symbols.EOFSymbol; return ret; }