aboutsummaryrefslogtreecommitdiff
path: root/build2/token.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/token.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/token.cxx')
-rw-r--r--build2/token.cxx28
1 files changed, 14 insertions, 14 deletions
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 << "<end-of-file>"; break;
case token_type::newline: os << "<newline>"; break;
case token_type::pair_separator: os << "<pair separator>"; 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;