private static bool IsIdentifierStartChar(int c)
{
UnicodeCategory cat = char.GetUnicodeCategory((char)c);
return c == '$' || c == '_' || c == '\\' ||
cat == UnicodeCategory.UppercaseLetter ||
cat == UnicodeCategory.LowercaseLetter ||
cat == UnicodeCategory.TitlecaseLetter ||
cat == UnicodeCategory.ModifierLetter ||
cat == UnicodeCategory.OtherLetter ||
cat == UnicodeCategory.LetterNumber;
}