aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc/lexer.test.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/cc/lexer.test.cxx')
-rw-r--r--libbuild2/cc/lexer.test.cxx21
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;