internal Token CreateToken(TokenType type, object data) { if (m_SpareTokens.Count != 0) { var t = m_SpareTokens.Pop(); t.type = type; t.data = data; return t; } else return new Token(type, data); }