about summary refs log tree commit diff
path: root/src/libexpr
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2014-01-06T15·27-0500
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-01-14T13·00+0100
commitf9913f4422d1317af3c6b5aff37ad18b78083eb5 (patch)
treeb18e070f5e266bfaff2abed726b767760412809f /src/libexpr
parente640d671443e291b3ca5cc0575919d6fcf14a157 (diff)
Allow "bare" dynamic attrs
Now, in addition to a."${b}".c, you can write a.${b}.c (applicable
wherever dynamic attributes are valid).

Signed-off-by: Shea Levy <shea@shealevy.com>
Diffstat (limited to 'src/libexpr')
-rw-r--r--src/libexpr/lexer.l2
-rw-r--r--src/libexpr/parser.y1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l
index 5d0360401dd3..911850cc5ba5 100644
--- a/src/libexpr/lexer.l
+++ b/src/libexpr/lexer.l
@@ -117,6 +117,8 @@ or          { return OR_KW; }
               return INT;
             }
 
+\$\{        { return DOLLAR_CURLY; }
+
 \"          { BEGIN(STRING); return '"'; }
 <STRING>([^\$\"\\]|\$[^\{\"]|\\.)+ {
               /* !!! Not quite right: we want a follow restriction on
diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y
index 28972cf72416..230584388268 100644
--- a/src/libexpr/parser.y
+++ b/src/libexpr/parser.y
@@ -509,6 +509,7 @@ attr
 
 string_attr
   : '"' string_parts '"' { $$ = $2; }
+  | DOLLAR_CURLY expr '}' { $$ = $2; }
   ;
 
 expr_list