comparison DEPENDENCIES/generic/include/boost/xpressive/xpressive_fwd.hpp @ 16:2665513ce2d3

Add boost headers
author Chris Cannam
date Tue, 05 Aug 2014 11:11:38 +0100
parents
children c530137014c0
comparison
equal deleted inserted replaced
15:663ca0da4350 16:2665513ce2d3
1 ///////////////////////////////////////////////////////////////////////////////
2 /// \file xpressive_fwd.hpp
3 /// Forward declarations for all of xpressive's public data types.
4 //
5 // Copyright 2008 Eric Niebler. Distributed under the Boost
6 // Software License, Version 1.0. (See accompanying file
7 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8
9 #ifndef BOOST_XPRESSIVE_XPRESSIVE_FWD_HPP_EAN_10_04_2005
10 #define BOOST_XPRESSIVE_XPRESSIVE_FWD_HPP_EAN_10_04_2005
11
12 // MS compatible compilers support #pragma once
13 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
14 # pragma once
15 #endif
16
17 #include <string>
18 #include <boost/config.hpp>
19 #include <boost/version.hpp>
20 #include <boost/iterator/iterator_traits.hpp>
21
22 #if BOOST_VERSION >= 103500
23 # define BOOST_PROTO_FUSION_V2
24 #endif
25
26 #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
27 # error Sorry, xpressive requires a compiler that supports partial template specialization.
28 #endif
29
30 #if defined(BOOST_NO_STD_LOCALE) & !defined(BOOST_XPRESSIVE_USE_C_TRAITS)
31 # define BOOST_XPRESSIVE_USE_C_TRAITS
32 #endif
33
34 #if defined(BOOST_NO_CWCHAR) || defined(BOOST_NO_CWCTYPE) || defined(BOOST_NO_STD_WSTRING)
35 # ifndef BOOST_XPRESSIVE_NO_WREGEX
36 # define BOOST_XPRESSIVE_NO_WREGEX
37 # endif
38 #endif
39
40 // Stack protection under MS Windows
41 // Config logic taken from boost/regex/config.hpp
42 #ifndef BOOST_XPRESSIVE_HAS_MS_STACK_GUARD
43 # if (defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \
44 && !defined(__GNUC__) \
45 && !(defined(__BORLANDC__) && (__BORLANDC__ >= 0x600)) \
46 && !(defined(__MWERKS__) && (__MWERKS__ <= 0x3003))
47 # define BOOST_XPRESSIVE_HAS_MS_STACK_GUARD 1
48 # else
49 # define BOOST_XPRESSIVE_HAS_MS_STACK_GUARD 0
50 # endif
51 #endif
52
53 #include <boost/proto/proto_fwd.hpp>
54
55 namespace boost { namespace xpressive
56 {
57
58 template<typename Char>
59 struct cpp_regex_traits;
60
61 template<typename Char>
62 struct c_regex_traits;
63
64 template<typename Elem>
65 struct null_regex_traits;
66
67 namespace detail
68 {
69 template<typename Char>
70 struct default_regex_traits
71 {
72 #ifdef BOOST_XPRESSIVE_USE_C_TRAITS
73 typedef c_regex_traits<Char> type;
74 #else
75 typedef cpp_regex_traits<Char> type;
76 #endif
77 };
78
79 struct mark_placeholder;
80 typedef proto::expr<proto::tag::terminal, proto::term<mark_placeholder>, 0> basic_mark_tag;
81
82 struct regex_domain;
83
84 } // namespace detail
85
86 struct mark_tag;
87
88 typedef void const *regex_id_type;
89
90 struct regex_error;
91
92 struct regex_traits_version_1_tag;
93
94 struct regex_traits_version_2_tag;
95
96 // DEPRECATED
97 /// INTERNAL ONLY
98 ///
99 struct regex_traits_version_1_case_fold_tag;
100
101 template<typename Trait>
102 struct has_fold_case;
103
104 template<typename BidiIter>
105 struct basic_regex;
106
107 template<typename BidiIter>
108 struct match_results;
109
110 template<typename BidiIter>
111 struct regex_iterator;
112
113 template<typename BidiIter>
114 struct regex_token_iterator;
115
116 template<typename BidiIter>
117 struct regex_id_filter_predicate;
118
119 template<typename BidiIter>
120 struct sub_match;
121
122 template<typename RegexTraits>
123 struct compiler_traits;
124
125 template<typename Char, typename Impl = typename detail::default_regex_traits<Char>::type>
126 struct regex_traits;
127
128 template
129 <
130 typename BidiIter
131 , typename RegexTraits = regex_traits<typename iterator_value<BidiIter>::type>
132 , typename CompilerTraits = compiler_traits<RegexTraits>
133 >
134 struct regex_compiler;
135
136 template<typename T>
137 struct value;
138
139 template<typename T>
140 struct reference;
141
142 template<typename T>
143 struct local;
144
145 template<typename T, int I = 0, typename Dummy = proto::is_proto_expr>
146 struct placeholder;
147
148 namespace op
149 {
150 struct at;
151 struct push;
152 struct push_back;
153 struct push_front;
154 struct pop;
155 struct pop_back;
156 struct pop_front;
157 struct front;
158 struct back;
159 struct top;
160 struct first;
161 struct second;
162 struct matched;
163 struct length;
164 struct str;
165 struct insert;
166 struct make_pair;
167 template<typename T>
168 struct as;
169 template<typename T>
170 struct static_cast_;
171 template<typename T>
172 struct dynamic_cast_;
173 template<typename T>
174 struct const_cast_;
175 template<typename T>
176 struct construct;
177 template<typename Except>
178 struct throw_;
179 struct unwrap_reference;
180 }
181
182 ///////////////////////////////////////////////////////////////////////////////
183 // Common typedefs
184 //
185 typedef basic_regex<std::string::const_iterator> sregex;
186 typedef basic_regex<char const *> cregex;
187
188 #ifndef BOOST_XPRESSIVE_NO_WREGEX
189 typedef basic_regex<std::wstring::const_iterator> wsregex;
190 typedef basic_regex<wchar_t const *> wcregex;
191 #endif
192
193 typedef sub_match<std::string::const_iterator> ssub_match;
194 typedef sub_match<char const *> csub_match;
195
196 #ifndef BOOST_XPRESSIVE_NO_WREGEX
197 typedef sub_match<std::wstring::const_iterator> wssub_match;
198 typedef sub_match<wchar_t const *> wcsub_match;
199 #endif
200
201 typedef regex_compiler<std::string::const_iterator> sregex_compiler;
202 typedef regex_compiler<char const *> cregex_compiler;
203
204 #ifndef BOOST_XPRESSIVE_NO_WREGEX
205 typedef regex_compiler<std::wstring::const_iterator> wsregex_compiler;
206 typedef regex_compiler<wchar_t const *> wcregex_compiler;
207 #endif
208
209 typedef regex_iterator<std::string::const_iterator> sregex_iterator;
210 typedef regex_iterator<char const *> cregex_iterator;
211
212 #ifndef BOOST_XPRESSIVE_NO_WREGEX
213 typedef regex_iterator<std::wstring::const_iterator> wsregex_iterator;
214 typedef regex_iterator<wchar_t const *> wcregex_iterator;
215 #endif
216
217 typedef regex_token_iterator<std::string::const_iterator> sregex_token_iterator;
218 typedef regex_token_iterator<char const *> cregex_token_iterator;
219
220 #ifndef BOOST_XPRESSIVE_NO_WREGEX
221 typedef regex_token_iterator<std::wstring::const_iterator> wsregex_token_iterator;
222 typedef regex_token_iterator<wchar_t const *> wcregex_token_iterator;
223 #endif
224
225 typedef match_results<std::string::const_iterator> smatch;
226 typedef match_results<char const *> cmatch;
227
228 #ifndef BOOST_XPRESSIVE_NO_WREGEX
229 typedef match_results<std::wstring::const_iterator> wsmatch;
230 typedef match_results<wchar_t const *> wcmatch;
231 #endif
232
233 typedef regex_id_filter_predicate<std::string::const_iterator> sregex_id_filter_predicate;
234 typedef regex_id_filter_predicate<char const *> cregex_id_filter_predicate;
235
236 #ifndef BOOST_XPRESSIVE_NO_WREGEX
237 typedef regex_id_filter_predicate<std::wstring::const_iterator> wsregex_id_filter_predicate;
238 typedef regex_id_filter_predicate<wchar_t const *> wcregex_id_filter_predicate;
239 #endif
240
241 }} // namespace boost::xpressive
242
243 #endif