summaryrefslogtreecommitdiffstats
path: root/parser.l
diff options
context:
space:
mode:
Diffstat (limited to 'parser.l')
-rw-r--r--parser.l16
1 files changed, 15 insertions, 1 deletions
diff --git a/parser.l b/parser.l
index 29a45ab1..b1fb63fe 100644
--- a/parser.l
+++ b/parser.l
@@ -854,10 +854,18 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U}
return LITCHAR;
}
+<STRLIT,QSILIT>{WS}[\\]\n{WS} {
+ yyextra->lineno++;
+}
+
<STRLIT,QSILIT,WLIT,QWLIT>{WS}[\\]\n{WS} {
yyextra->lineno++;
+
+ if (!opt_compat || opt_compat > 109)
+ return ' ';
}
+
<STRLIT,QSILIT,WLIT,QWLIT>[\\](x{HEX}+|{OCT}+);? {
yylval->chr = num_esc(yyg, yytext+1);
return LITCHAR;
@@ -905,7 +913,13 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U}
<WLIT,QWLIT>\n {
yyextra->lineno++;
- return ' ';
+
+ if (opt_compat && opt_compat <= 109)
+ return ' ';
+
+ yyerrprepf(yyg, lit("newline in word list literal"), nao);
+ yylval->chr = yytext[0];
+ return ERRTOK;
}
<QSILIT,QWLIT>@/([[({'^,@]|{TOK}) {