From 77e7dc1ac70976e39f2bd3bb91f49ab1f25ef524 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 5 Apr 2016 12:53:45 +0200 Subject: 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. --- build2/token.cxx | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'build2/token.cxx') diff --git a/build2/token.cxx b/build2/token.cxx index 90aeff5..330af1f 100644 --- a/build2/token.cxx +++ b/build2/token.cxx @@ -16,20 +16,20 @@ namespace build2 case token_type::eos: os << ""; break; case token_type::newline: os << ""; break; case token_type::pair_separator: os << ""; break; - case token_type::colon: os << ":"; break; - case token_type::lcbrace: os << "{"; break; - case token_type::rcbrace: os << "}"; break; - case token_type::lsbrace: os << "["; break; - case token_type::rsbrace: os << "]"; break; - case token_type::assign: os << "="; break; - case token_type::prepend: os << "=+"; break; - case token_type::append: os << "+="; break; - case token_type::equal: os << "=="; break; - case token_type::not_equal: os << "!="; break; - case token_type::dollar: os << "$"; break; - case token_type::lparen: os << "("; break; - case token_type::rparen: os << ")"; break; - case token_type::name: os << t.value; break; + case token_type::colon: os << "':'"; break; + case token_type::lcbrace: os << "'{'"; break; + case token_type::rcbrace: os << "'}'"; break; + case token_type::lsbrace: os << "'['"; break; + case token_type::rsbrace: os << "']'"; break; + case token_type::assign: os << "'='"; break; + case token_type::prepend: os << "'=+'"; break; + case token_type::append: os << "'+='"; break; + case token_type::equal: os << "'=='"; break; + case token_type::not_equal: os << "'!='"; break; + case token_type::dollar: os << "'$'"; break; + case token_type::lparen: os << "'('"; break; + case token_type::rparen: os << "')'"; break; + case token_type::name: os << '\'' << t.value << '\''; break; } return os; -- cgit v1.1