]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/karma/grammar.cpp
1 // Copyright (c) 2001-2011 Hartmut Kaiser
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #include <boost/config/warning_disable.hpp>
7 #include <boost/detail/lightweight_test.hpp>
9 #include <boost/spirit/include/karma_operator.hpp>
10 #include <boost/spirit/include/karma_char.hpp>
11 #include <boost/spirit/include/karma_string.hpp>
12 #include <boost/spirit/include/karma_numeric.hpp>
13 #include <boost/spirit/include/karma_nonterminal.hpp>
14 #include <boost/spirit/include/karma_action.hpp>
15 #include <boost/spirit/include/phoenix_core.hpp>
16 #include <boost/spirit/include/phoenix_operator.hpp>
23 using namespace spirit_test
;
24 using namespace boost::spirit
;
25 using namespace boost::spirit::ascii
;
27 typedef spirit_test::output_iterator
<char>::type outiter_type
;
29 struct num_list
: karma::grammar
<outiter_type
, space_type
>
31 num_list() : num_list::base_type(start
)
33 using boost::spirit::int_
;
37 start
= num1
<< ',' << num2
<< ',' << num3
;
40 karma::rule
<outiter_type
, space_type
> start
, num1
, num2
, num3
;
46 { // simple grammar test
48 BOOST_TEST(test_delimited("123 , 456 , 789 ", nlist
, space
));
51 { // direct access to the rules
53 BOOST_TEST(test_delimited("123 ", def
.num1
, space
));
54 BOOST_TEST(test_delimited("123 , 456 , 789 ", def
.start
, space
));
57 return boost::report_errors();