private string PullEscapeSequence()
{
Take(); //consume "\"
char escaped = Take();
switch (escaped)
{
case '"':
return ("\"");
case '\\':
return ("\\");
case '/':
return ("/");
case 'b':
return ("\b");
case 'f':
return ("\f");
case 'n':
return ("\n");
case 'r':
return ("\r");
case 't':
return ("\t");
case 'u':
string hex = "0x" + Take(4);
int j = Convert.ToInt32(hex, 16);
return ((char) j).ToString(CultureInfo.InvariantCulture);
default:
throw new NotSupportedException(string.Format("Unknown escape code: {0}", escaped));
}
}