]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/classic/test/confix_tests.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / spirit / classic / test / confix_tests.cpp
1 /*=============================================================================
2 Copyright (c) 2003 2003 Vaclav Vesely
3 http://spirit.sourceforge.net/
4
5 Use, modification and distribution is subject to the Boost Software
6 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 http://www.boost.org/LICENSE_1_0.txt)
8 =============================================================================*/
9 #include <boost/spirit/include/classic_core.hpp>
10 #include <boost/spirit/include/classic_confix.hpp>
11 #include <boost/detail/lightweight_test.hpp>
12
13 using namespace boost;
14 using namespace BOOST_SPIRIT_CLASSIC_NS;
15
16 typedef
17 scanner<char const*, scanner_policies<skipper_iteration_policy<> > >
18 scanner_t;
19
20 typedef
21 rule<scanner_t>
22 rule_t;
23
24 void comment_nest_p_test()
25 {
26 rule_t r = comment_nest_p('{', '}');
27
28 {
29 parse_info<> info = parse("{a{b}c{d}e}", r, space_p);
30 BOOST_TEST(info.full);
31 }
32
33 {
34 parse_info<> info = parse("{a{b}c{d}e}x", r, space_p);
35 BOOST_TEST(info.hit);
36 BOOST_TEST(info.length == 11);
37 }
38
39 {
40 char const* str = "x{a{b}c{d}e}";
41 parse_info<> info = parse(str, r, space_p);
42 BOOST_TEST(!info.hit);
43 BOOST_TEST(info.stop == str);
44 }
45
46 {
47 char const* str = "{a{b}c{d}e";
48 parse_info<> info = parse(str, r, space_p);
49 BOOST_TEST(!info.hit);
50 BOOST_TEST(info.stop == (str + 10));
51 }
52 }
53
54 int
55 main()
56 {
57 comment_nest_p_test();
58 return boost::report_errors();
59 }
60