aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/lexer.l
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-09-01 12:04:06 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-09-01 12:04:06 +0000
commitde90fdf908f2504e1a89a5d4660552cbcc1a15d5 (patch)
tree7f7670b5bc4a157eb5466f38e03c8fe2fc152e3b /src/libexpr/lexer.l
parentc9586b6c3f32b22eec8791fd9b49c81ec3f5fcf6 (diff)
* Allow "$" in strings as long as they are not followed by "{". (Too
bad flex doesn't have lexical restrictions, the current solution isn't quite right...)
Diffstat (limited to 'src/libexpr/lexer.l')
-rw-r--r--src/libexpr/lexer.l6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l
index 892543ec2..fb19e16b4 100644
--- a/src/libexpr/lexer.l
+++ b/src/libexpr/lexer.l
@@ -77,7 +77,11 @@ inherit { return INHERIT; }
}
\" { BEGIN(STRING); return '"'; }
-<STRING>([^\$\"\\]|\\.)+ {
+<STRING>([^\$\"\\]|\$[^\{\"]|\\.)+ {
+/* !!! Not quite right: we want a follow restriction on "$", it
+ shouldn't be followed by a "{". Right now "$\"" will be consumed
+ as part of a string, rather than a "$" followed by the string
+ terminator. Disallow "$\"" for now. */
yylval->t = unescapeStr(yytext); /* !!! alloc */
return STR;
}