private static bool IsNCNameStartChar(int c)
{
if ((c & ~unchecked((int)(0x7F))) == 0)
{
// Optimize for ASCII and use A..Z < _ < a..z
if (c >= 'a')
{
return c <= 'z';
}
else
{
if (c >= 'A')
{
if (c <= 'Z')
{
return true;
}
return c == '_';
}
}
}
else
{
if ((c & ~unchecked((int)(0x1FFF))) == 0)
{
return (unchecked((int)(0xC0)) <= c && c <= unchecked((int)(0xD6))) || (unchecked((int)(0xD8)) <= c && c <= unchecked((int)(0xF6))) || (unchecked((int)(0xF8)) <= c && c <= unchecked((int)(0x2FF))) || (unchecked((int)(0x370)) <= c && c <= unchecked((int)(0x37D))) || unchecked((int)(0x37F)) <= c;
}
}
return (unchecked((int)(0x200C)) <= c && c <= unchecked((int)(0x200D))) || (unchecked((int)(0x2070)) <= c && c <= unchecked((int)(0x218F))) || (unchecked((int)(0x2C00)) <= c && c <= unchecked((int)(0x2FEF))) || (unchecked((int)(0x3001)) <= c && c <= unchecked((int)(0xD7FF))) || (unchecked((int)(0xF900)) <= c && c <= unchecked((int)(0xFDCF))) || (unchecked((int)(0xFDF0)) <= c && c <= unchecked((int)
(0xFFFD))) || (unchecked((int)(0x10000)) <= c && c <= unchecked((int)(0xEFFFF)));
}