aboutsummaryrefslogtreecommitdiff
path: root/build2/lexer.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-04-05 12:53:45 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-04-05 12:53:45 +0200
commit77e7dc1ac70976e39f2bd3bb91f49ab1f25ef524 (patch)
treec3a1e736c326473bd611b4c0bc74d45b2f9beb76 /build2/lexer.cxx
parent86cdcdcf11982281aa286682faf604cff3b1c7d1 (diff)
Add support for scope/target-qualified variable expansion
For example: print $(dir/:var) print $(file{target}:var) print $(dir/file{target}:var) Note that if the scope/target does not (yet) exists, it will be created.
Diffstat (limited to 'build2/lexer.cxx')
-rw-r--r--build2/lexer.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/build2/lexer.cxx b/build2/lexer.cxx
index ba43839..53b9e12 100644
--- a/build2/lexer.cxx
+++ b/build2/lexer.cxx
@@ -140,6 +140,7 @@ namespace build2
// NOTE: remember to update name() if adding new special characters.
//
case '\n': fail (c) << "newline in evaluation context";
+ case ':': return token (type::colon, sep, ln, cn);
case '{': return token (type::lcbrace, sep, ln, cn);
case '}': return token (type::rcbrace, sep, ln, cn);
case '$': return token (type::dollar, sep, ln, cn);
@@ -267,6 +268,11 @@ namespace build2
{
switch (c)
{
+ case ':':
+ {
+ done = true;
+ break;
+ }
case '=':
case '!':
{