aboutsummaryrefslogtreecommitdiff
path: root/build2/test/script/lexer.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2016-11-01 12:18:59 +0300
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:37 +0200
commit5583ffaa2581858cb7f7f75e28660bc038bcc8ec (patch)
tree72707ac943e4f2a5a0457869d7672db558940461 /build2/test/script/lexer.cxx
parent40a34dc212a5749350723ac4f390335c0c5283e3 (diff)
Add support for cleanup types to testscript parser
Diffstat (limited to 'build2/test/script/lexer.cxx')
-rw-r--r--build2/test/script/lexer.cxx14
1 files changed, 11 insertions, 3 deletions
diff --git a/build2/test/script/lexer.cxx b/build2/test/script/lexer.cxx
index a9b7d56..b7a9f78 100644
--- a/build2/test/script/lexer.cxx
+++ b/build2/test/script/lexer.cxx
@@ -264,13 +264,21 @@ namespace build2
//
case '&':
{
- if (peek () == '&')
+ xchar p (peek ());
+
+ if (p == '?' || p == '!' || p == '&')
{
get ();
- return make_token (type::log_and);
+
+ switch (p)
+ {
+ case '?': return make_token (type::clean_maybe);
+ case '!': return make_token (type::clean_never);
+ case '&': return make_token (type::log_and);
+ }
}
else
- return make_token (type::clean);
+ return make_token (type::clean_always);
}
// <
//