diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2016-11-01 12:18:59 +0300 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-04 09:26:37 +0200 |
commit | 5583ffaa2581858cb7f7f75e28660bc038bcc8ec (patch) | |
tree | 72707ac943e4f2a5a0457869d7672db558940461 /build2/test/script/lexer.cxx | |
parent | 40a34dc212a5749350723ac4f390335c0c5283e3 (diff) |
Add support for cleanup types to testscript parser
Diffstat (limited to 'build2/test/script/lexer.cxx')
-rw-r--r-- | build2/test/script/lexer.cxx | 14 |
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); } // < // |