Skip to content

Commit

Permalink
Add quick.cpp test
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed Oct 24, 2018
1 parent 6a6135f commit 5891614
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
8 changes: 8 additions & 0 deletions test/build/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -165,5 +165,13 @@ test-suite wave
test_re2c_lexer
]

[
run
# sources
../testwave/quick.cpp
/boost/wave//boost_wave
/boost/thread//boost_thread
/boost/filesystem//boost_filesystem
]
;

49 changes: 49 additions & 0 deletions test/testwave/quick.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@

// Copyright 2018 Peter Dimov.
//
// Distributed under the Boost Software License, Version 1.0.
//
// See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt

#include <boost/wave.hpp>
#include <boost/wave/cpplexer/cpp_lex_token.hpp>
#include <boost/wave/cpplexer/cpp_lex_iterator.hpp>
#include <iostream>

int main()
{
std::string input(
"#if 0\n"
"6.28\n"
"#else\n"
"3.14\n"
"#endif\n"
);

try
{
typedef boost::wave::cpplexer::lex_token<> token_type;
typedef boost::wave::cpplexer::lex_iterator<token_type> lex_iterator_type;
typedef boost::wave::context<std::string::iterator, lex_iterator_type> context_type;

context_type ctx( input.begin(), input.end(), "input.cpp" );

for( context_type::iterator_type first = ctx.begin(), last = ctx.end(); first != last; ++first )
{
std::cout << first->get_value();
}

return 0;
}
catch( boost::wave::cpp_exception const & x )
{
std::cerr << x.file_name() << "(" << x.line_no() << "): " << x.description() << std::endl;
return 1;
}
catch( std::exception const & x )
{
std::cerr << "Exception: " << x.what() << std::endl;
return 2;
}
}

0 comments on commit 5891614

Please sign in to comment.