+
+ switch (ch) {
+ case '\\': break;
+ case 'a': ch = '\a'; break;
+ case 'b': ch = '\b'; break;
+ case 'r': ch = '\r'; break;
+ case 'n': ch = '\n'; break;
+ case 't': ch = '\t'; break;
+ case 'f': ch = '\f'; break;
+ case 'v': ch = '\v'; break;
+ default:
+ lexwarn(lex, WARN_UNKNOWN_CONTROL_SEQUENCE, "unrecognized control sequence: \\%c", ch);
+ /* so we just add the character plus backslash no matter what it actually is */
+ if (!lex_tokench(lex, '\\'))
+ return (lex->tok->ttype = TOKEN_FATAL);
+ }
+ /* add the character finally */