diff options
Diffstat (limited to 'src/libexpr')
-rw-r--r-- | src/libexpr/lexer.l | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l index 23a14324f32c..cf90f2939d24 100644 --- a/src/libexpr/lexer.l +++ b/src/libexpr/lexer.l @@ -128,6 +128,18 @@ inherit { return INHERIT; } yylval->t = makeIndStr(toATerm(yytext)); return IND_STR; } +<IND_STRING>\'\'\$ { + yylval->t = makeIndStr(toATerm("$")); + return IND_STR; + } +<IND_STRING>\'\'\' { + yylval->t = makeIndStr(toATerm("''")); + return IND_STR; + } +<IND_STRING>\'\'\\. { + yylval->t = unescapeStr(yytext + 2); + return IND_STR; + } <IND_STRING>\$\{ { BEGIN(INITIAL); return DOLLAR_CURLY; } <IND_STRING>\'\' { BEGIN(INITIAL); return IND_STRING_CLOSE; } <IND_STRING>. return yytext[0]; /* just in case: shouldn't be reached */ |