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