mirror of https://github.com/vitalif/openscad
This adds support for escape sequences in strings e.g \t \n \r \" \\
git-svn-id: http://svn.clifford.at/openscad/trunk@581 b57f626f-c46c-0410-a088-ec61d464b74cstl_dim
parent
d96fedc529
commit
8bf2099ca0
14
src/lexer.l
14
src/lexer.l
|
@ -140,11 +140,15 @@ use[ \t\r\n>]*"<"[^ \t\r\n>]+">" {
|
|||
{DIGIT}+|{DIGIT}*\.{DIGIT}+|{DIGIT}+\.{DIGIT}* { parserlval.number = QString(yytext).toDouble(); return TOK_NUMBER; }
|
||||
"$"?[a-zA-Z0-9_]+ { parserlval.text = strdup(yytext); return TOK_ID; }
|
||||
|
||||
\"[^"]*\" {
|
||||
parserlval.text = strdup(yytext+1);
|
||||
parserlval.text[strlen(parserlval.text)-1] = 0;
|
||||
return TOK_STRING;
|
||||
}
|
||||
\"(\\[tnr\"\\]|[^\\"])*\" { QString str(yytext+1);
|
||||
str.chop(1);
|
||||
str=str.replace("\\\\","\\");
|
||||
str=str.replace("\\\"","\"");
|
||||
str=str.replace("\\t","\t");
|
||||
str=str.replace("\\n","\n");
|
||||
str=str.replace("\\r","\r");
|
||||
parserlval.text = strdup(str.toAscii().data());
|
||||
return TOK_STRING; }
|
||||
|
||||
[\n\r\t ]
|
||||
\/\/[^\n]*\n?
|
||||
|
|
Loading…
Reference in New Issue