diff options
Diffstat (limited to 'libbuild2/cc/lexer.test.cxx')
-rw-r--r-- | libbuild2/cc/lexer.test.cxx | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/libbuild2/cc/lexer.test.cxx b/libbuild2/cc/lexer.test.cxx index 852d8b2..82163fe 100644 --- a/libbuild2/cc/lexer.test.cxx +++ b/libbuild2/cc/lexer.test.cxx @@ -1,14 +1,17 @@ // file : libbuild2/cc/lexer.test.cxx -*- C++ -*- // license : MIT; see accompanying LICENSE file -#include <cassert> #include <iostream> #include <libbuild2/types.hxx> #include <libbuild2/utility.hxx> +#include <libbuild2/cc/types.hxx> #include <libbuild2/cc/lexer.hxx> +#undef NDEBUG +#include <cassert> + using namespace std; using namespace butl; @@ -16,12 +19,19 @@ namespace build2 { namespace cc { - // Usage: argv[0] [-l] [<file>] + // Usage: argv[0] [-l] [-f] [<file>] + // + // -l + // Print location. + // + // -f + // Print first flag. // int main (int argc, char* argv[]) { bool loc (false); + bool first (false); path file; for (int i (1); i != argc; ++i) @@ -30,6 +40,8 @@ namespace build2 if (a == "-l") loc = true; + else if (a == "-f") + first = true; else { file = path (argv[i]); @@ -53,7 +65,7 @@ namespace build2 is.open (fddup (stdin_fd ())); } - lexer l (is, in); + lexer l (is, in, true /* preprocessed */); // No use printing eos since we will either get it or loop forever. // @@ -61,6 +73,9 @@ namespace build2 { cout << t; + if (first) + cout << ' ' << (t.first ? 't' : 'f'); + if (loc) cout << ' ' << *t.file << ':' << t.line << ':' << t.column; |