public virtual char ParseTagName()
{
short map;
int c;
/* fold case of first char in buffer */
c = Lexbuf[Txtstart];
map = Map((char) c);
if (!Options.XmlTags && (map & UPPERCASE) != 0)
{
c += ('a' - 'A');
Lexbuf[Txtstart] = (byte) c;
}
while (true)
{
c = Input.ReadChar();
if (c == StreamIn.END_OF_STREAM)
{
break;
}
map = Map((char) c);
if ((map & NAMECHAR) == 0)
{
break;
}
/* fold case of subsequent chars */
if (!Options.XmlTags && (map & UPPERCASE) != 0)
{
c += ('a' - 'A');
}
AddCharToLexer(c);
}
Txtend = Lexsize;
return (char) c;
}