• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2001-2010 Joel de Guzman
3 
4     Distributed under the Boost Software License, Version 1.0. (See accompanying
5     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 =============================================================================*/
7 #include <boost/detail/lightweight_test.hpp>
8 #include <boost/spirit/include/qi_directive.hpp>
9 #include <boost/spirit/include/qi_char.hpp>
10 #include <boost/spirit/include/qi_operator.hpp>
11 #include <boost/spirit/include/qi_nonterminal.hpp>
12 
13 #include <iostream>
14 #include "test.hpp"
15 
16 int
main()17 main()
18 {
19     using spirit_test::test;
20     using boost::spirit::ascii::space;
21     using boost::spirit::ascii::space_type;
22     using boost::spirit::ascii::digit;
23     using boost::spirit::qi::lexeme;
24     using boost::spirit::qi::rule;
25 
26     {
27         BOOST_TEST((test(" 1 2 3 4 5", +digit, space)));
28         BOOST_TEST((!test(" 1 2 3 4 5", lexeme[+digit], space)));
29         BOOST_TEST((test(" 12345", lexeme[+digit], space)));
30         BOOST_TEST((test(" 12345  ", lexeme[+digit], space, false)));
31 
32         rule<char const*, space_type> rr;
33         rule<char const*> r;
34         r = +digit;
35         rr = lexeme[r];
36         BOOST_TEST((!test(" 1 2 3 4 5", rr, space)));
37         BOOST_TEST((test(" 12345", rr, space)));
38     }
39 
40     return boost::report_errors();
41 }
42