static string descape (char c)
{
switch (c){
case '\a':
return "\\a";
case '\b':
return "\\b";
case '\n':
return "\\n";
case '\t':
return "\\t";
case '\v':
return "\\v";
case '\r':
return "\\r";
case '\\':
return "\\\\";
case '\f':
return "\\f";
case '\0':
return "\\0";
case '"':
return "\\\"";
case '\'':
return "\\\'";
}
return c.ToString ();
}