internal string SniffName()
{
int c = PeekChar();
if (c == EOF)
return null;
char ch = (char)c;
int start = pos;
while (pos < used - 1 && (char.IsLetterOrDigit(ch) || ch == '-' || ch == '_' || ch == ':'))
ch = m_buffer[++pos];
if (start == pos)
return null;
return new string(m_buffer, start, pos - start);
}