]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/qi/parse_attr.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/qi_char.hpp>
10 #include <boost/spirit/include/qi_operator.hpp>
11 #include <boost/spirit/include/qi_parse_attr.hpp>
13 #include "test_attr.hpp"
15 #if SPIRIT_ARGUMENTS_LIMIT < 10
16 # error SPIRIT_ARGUMENTS_LIMIT must be at least 10 to run the test
19 using namespace spirit_test
;
21 ///////////////////////////////////////////////////////////////////////////////
24 using namespace boost::spirit
;
27 using namespace boost::spirit::ascii
;
29 BOOST_TEST(test("1", char_
, '1'));
30 BOOST_TEST(test("12", char_
>> char_
, '1', '2'));
31 BOOST_TEST(test("123", char_
>> char_
>> char_
, '1', '2', '3'));
32 BOOST_TEST(test("1234"
33 , char_
>> char_
>> char_
>> char_
34 , '1', '2', '3', '4'));
35 BOOST_TEST(test("12345"
36 , char_
>> char_
>> char_
>> char_
>> char_
37 , '1', '2', '3', '4', '5'));
38 BOOST_TEST(test("123456"
39 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
40 , '1', '2', '3', '4', '5', '6'));
41 BOOST_TEST(test("1234567"
42 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
43 , '1', '2', '3', '4', '5', '6', '7'));
44 BOOST_TEST(test("12345678"
45 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
46 , '1', '2', '3', '4', '5', '6', '7', '8'));
47 BOOST_TEST(test("123456789"
48 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
49 , '1', '2', '3', '4', '5', '6', '7', '8', '9'));
50 BOOST_TEST(test("1234567890"
51 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
52 , '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
56 using namespace boost::spirit::ascii
;
58 BOOST_TEST(test_skipped(" 1 ", char_
, space
, '1'));
59 BOOST_TEST(test_skipped(" 1 2 "
60 , char_
>> char_
, space
, '1', '2'));
61 BOOST_TEST(test_skipped(" 1 2 3 "
62 , char_
>> char_
>> char_
, space
, '1', '2', '3'));
63 BOOST_TEST(test_skipped(" 1 2 3 4 "
64 , char_
>> char_
>> char_
>> char_
65 , space
, '1', '2', '3', '4'));
66 BOOST_TEST(test_skipped(" 1 2 3 4 5 "
67 , char_
>> char_
>> char_
>> char_
>> char_
68 , space
, '1', '2', '3', '4', '5'));
69 BOOST_TEST(test_skipped(" 1 2 3 4 5 6 "
70 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
71 , space
, '1', '2', '3', '4', '5', '6'));
72 BOOST_TEST(test_skipped(" 1 2 3 4 5 6 7 "
73 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
74 , space
, '1', '2', '3', '4', '5', '6', '7'));
75 BOOST_TEST(test_skipped(" 1 2 3 4 5 6 7 8 "
76 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
77 , space
, '1', '2', '3', '4', '5', '6', '7', '8'));
78 BOOST_TEST(test_skipped(" 1 2 3 4 5 6 7 8 9 "
79 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
80 , space
, '1', '2', '3', '4', '5', '6', '7', '8', '9'));
81 BOOST_TEST(test_skipped(" 1 2 3 4 5 6 7 8 9 0 "
82 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
83 , space
, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
87 using namespace boost::spirit::ascii
;
88 using boost::spirit::qi::skip_flag
;
90 BOOST_TEST(test_postskipped(" 1 ", char_
, space
91 , skip_flag::postskip
, '1'));
92 BOOST_TEST(test_postskipped(" 1 2 "
93 , char_
>> char_
, space
, skip_flag::postskip
95 BOOST_TEST(test_postskipped(" 1 2 3 "
96 , char_
>> char_
>> char_
, space
97 , skip_flag::postskip
, '1', '2', '3'));
98 BOOST_TEST(test_postskipped(" 1 2 3 4 "
99 , char_
>> char_
>> char_
>> char_
100 , space
, skip_flag::postskip
, '1', '2', '3', '4'));
101 BOOST_TEST(test_postskipped(" 1 2 3 4 5 "
102 , char_
>> char_
>> char_
>> char_
>> char_
103 , space
, skip_flag::postskip
, '1', '2', '3', '4', '5'));
104 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 "
105 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
106 , space
, skip_flag::postskip
107 , '1', '2', '3', '4', '5', '6'));
108 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7 "
109 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
110 , space
, skip_flag::postskip
111 , '1', '2', '3', '4', '5', '6', '7'));
112 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7 8 "
113 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
114 , space
, skip_flag::postskip
115 , '1', '2', '3', '4', '5', '6', '7', '8'));
116 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7 8 9 "
117 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
118 , space
, skip_flag::postskip
119 , '1', '2', '3', '4', '5', '6', '7', '8', '9'));
120 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7 8 9 0 "
121 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
122 , space
, skip_flag::postskip
123 , '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
127 using namespace boost::spirit::ascii
;
128 using boost::spirit::qi::skip_flag
;
130 BOOST_TEST(test_postskipped(" 1", char_
, space
131 , skip_flag::dont_postskip
, '1'));
132 BOOST_TEST(test_postskipped(" 1 2"
133 , char_
>> char_
, space
, skip_flag::dont_postskip
135 BOOST_TEST(test_postskipped(" 1 2 3"
136 , char_
>> char_
>> char_
, space
137 , skip_flag::dont_postskip
, '1', '2', '3'));
138 BOOST_TEST(test_postskipped(" 1 2 3 4"
139 , char_
>> char_
>> char_
>> char_
140 , space
, skip_flag::dont_postskip
, '1', '2', '3', '4'));
141 BOOST_TEST(test_postskipped(" 1 2 3 4 5"
142 , char_
>> char_
>> char_
>> char_
>> char_
143 , space
, skip_flag::dont_postskip
, '1', '2', '3', '4', '5'));
144 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6"
145 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
146 , space
, skip_flag::dont_postskip
147 , '1', '2', '3', '4', '5', '6'));
148 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7"
149 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
150 , space
, skip_flag::dont_postskip
151 , '1', '2', '3', '4', '5', '6', '7'));
152 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7 8"
153 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
154 , space
, skip_flag::dont_postskip
155 , '1', '2', '3', '4', '5', '6', '7', '8'));
156 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7 8 9"
157 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
158 , space
, skip_flag::dont_postskip
159 , '1', '2', '3', '4', '5', '6', '7', '8', '9'));
160 BOOST_TEST(test_postskipped(" 1 2 3 4 5 6 7 8 9 0"
161 , char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
>> char_
162 , space
, skip_flag::dont_postskip
163 , '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
166 return boost::report_errors();