]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/qi/parse_attr.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / spirit / test / qi / parse_attr.cpp
1 // Copyright (c) 2001-2011 Hartmut Kaiser
2 //
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)
5
6 #include <boost/config/warning_disable.hpp>
7 #include <boost/detail/lightweight_test.hpp>
8
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>
12
13 #include "test_attr.hpp"
14
15 #if SPIRIT_ARGUMENTS_LIMIT < 10
16 # error SPIRIT_ARGUMENTS_LIMIT must be at least 10 to run the test
17 #endif
18
19 using namespace spirit_test;
20
21 ///////////////////////////////////////////////////////////////////////////////
22 int main()
23 {
24 using namespace boost::spirit;
25
26 {
27 using namespace boost::spirit::ascii;
28
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'));
53 }
54
55 {
56 using namespace boost::spirit::ascii;
57
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'));
84 }
85
86 {
87 using namespace boost::spirit::ascii;
88 using boost::spirit::qi::skip_flag;
89
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
94 , '1', '2'));
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'));
124 }
125
126 {
127 using namespace boost::spirit::ascii;
128 using boost::spirit::qi::skip_flag;
129
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
134 , '1', '2'));
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'));
164 }
165
166 return boost::report_errors();
167 }
168