From: Joshua Wise Date: Wed, 14 Jul 2010 03:50:47 +0000 (-0400) Subject: Add escape sequences to strings. X-Git-Url: http://git.joshuawise.com/snipe.git/commitdiff_plain/c2d3f412503bdb8a1bffbfbc249d1fec256e0fc6?ds=sidebyside Add escape sequences to strings. --- diff --git a/parse/l5.lex b/parse/l5.lex index 3028a6c..32665a6 100644 --- a/parse/l5.lex +++ b/parse/l5.lex @@ -85,6 +85,7 @@ decnum = [0-9][0-9]*; hexnum = 0x[0-9a-fA-F][0-9a-fA-F]*; ws = [\ \t\012]; +quote = [\"]; %% @@ -188,5 +189,15 @@ ws = [\ \t\012]; \n => (ParseState.newline yypos; YYBEGIN INITIAL; lex()); . => (lex()); - [^\"\\]* => (addString yytext ; lex() ); + "\\\\" => (addString "\\" ; lex() ); + "\\n" => (addString "\n" ; lex() ); + "\\t" => (addString "\t" ; lex() ); + "\\\"" => (addString "\t" ; lex() ); + "\\". => (ErrorMsg.error (ParseState.ext (yypos,yypos)) + ("illegal escape sequence: \"" ^ yytext ^ "\""); + lex ()); + "\n" => (ErrorMsg.error (ParseState.ext (yypos,yypos)) + ("illegal newline in the middle of the string, asshole"); + lex ()); "\"" => (YYBEGIN INITIAL; endString yypos ); + . => (addString yytext ; lex() );