From 354b6cf42c3dad99aed8d7ed49454e69b5460824 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 13 Jul 2013 16:19:42 -0700 Subject: * parser.l: Diagnose unrecognized escape sequences in string literals and quasiliterals and after @\. Support "\ " (backslash space) escape in string literals and quasiliterals. --- parser.l | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'parser.l') diff --git a/parser.l b/parser.l index ad7b013f..8a95d2ec 100644 --- a/parser.l +++ b/parser.l @@ -564,6 +564,10 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} return TEXT; } +[\\]. { + yyerrorf(lit("unrecognized escape: \\~a"), chr(yytext[1]), nao); +} + [;].* { /* comment */ } @@ -688,7 +692,7 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} return yytext[0]; } -[\\][abtnvfre"`'\\] { +[\\][abtnvfre "`'\\ ] { yylval.chr = char_esc(yytext[1]); return LITCHAR; } @@ -702,6 +706,10 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} return LITCHAR; } +[\\]. { + yyerrorf(lit("unrecognized escape: \\~a"), chr(yytext[1]), nao); +} + (x{HEX}+|o{OCT}+) { yylval.chr = num_esc(yytext); return LITCHAR; -- cgit v1.2.3