File indexing completed on 2024-11-15 09:34:09
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef BOOST_XPRESSIVE_XPRESSIVE_FWD_HPP_EAN_10_04_2005
0010 #define BOOST_XPRESSIVE_XPRESSIVE_FWD_HPP_EAN_10_04_2005
0011
0012
0013 #if defined(_MSC_VER)
0014 # pragma once
0015 #endif
0016
0017 #include <string>
0018 #include <boost/config.hpp>
0019 #include <boost/version.hpp>
0020 #include <boost/iterator/iterator_traits.hpp>
0021
0022 #if BOOST_VERSION >= 103500
0023 # define BOOST_PROTO_FUSION_V2
0024 #endif
0025
0026
0027 #if defined(BOOST_NO_STD_LOCALE) & !defined(BOOST_XPRESSIVE_USE_C_TRAITS)
0028 # define BOOST_XPRESSIVE_USE_C_TRAITS
0029 #endif
0030
0031 #if defined(BOOST_NO_CWCHAR) || defined(BOOST_NO_CWCTYPE) || defined(BOOST_NO_STD_WSTRING)
0032 # ifndef BOOST_XPRESSIVE_NO_WREGEX
0033 # define BOOST_XPRESSIVE_NO_WREGEX
0034 # endif
0035 #endif
0036
0037
0038
0039 #ifndef BOOST_XPRESSIVE_HAS_MS_STACK_GUARD
0040 # if (defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \
0041 && !(defined(__GNUC__) || defined(__BORLANDC__) && defined(__clang__)) \
0042 && !(defined(BOOST_BORLANDC) && (BOOST_BORLANDC >= 0x600)) \
0043 && !(defined(__MWERKS__) && (__MWERKS__ <= 0x3003))
0044 # define BOOST_XPRESSIVE_HAS_MS_STACK_GUARD 1
0045 # else
0046 # define BOOST_XPRESSIVE_HAS_MS_STACK_GUARD 0
0047 # endif
0048 #endif
0049
0050 #include <boost/proto/proto_fwd.hpp>
0051
0052 namespace boost { namespace xpressive
0053 {
0054
0055 template<typename Char>
0056 struct cpp_regex_traits;
0057
0058 template<typename Char>
0059 struct c_regex_traits;
0060
0061 template<typename Elem>
0062 struct null_regex_traits;
0063
0064 namespace detail
0065 {
0066 template<typename Char>
0067 struct default_regex_traits
0068 {
0069 #ifdef BOOST_XPRESSIVE_USE_C_TRAITS
0070 typedef c_regex_traits<Char> type;
0071 #else
0072 typedef cpp_regex_traits<Char> type;
0073 #endif
0074 };
0075
0076 struct mark_placeholder;
0077 typedef proto::expr<proto::tag::terminal, proto::term<mark_placeholder>, 0> basic_mark_tag;
0078
0079 struct regex_domain;
0080
0081 }
0082
0083 struct mark_tag;
0084
0085 typedef void const *regex_id_type;
0086
0087 struct regex_error;
0088
0089 struct regex_traits_version_1_tag;
0090
0091 struct regex_traits_version_2_tag;
0092
0093
0094
0095
0096 struct regex_traits_version_1_case_fold_tag;
0097
0098 template<typename Trait>
0099 struct has_fold_case;
0100
0101 template<typename BidiIter>
0102 struct basic_regex;
0103
0104 template<typename BidiIter>
0105 struct match_results;
0106
0107 template<typename BidiIter>
0108 struct regex_iterator;
0109
0110 template<typename BidiIter>
0111 struct regex_token_iterator;
0112
0113 template<typename BidiIter>
0114 struct regex_id_filter_predicate;
0115
0116 template<typename BidiIter>
0117 struct sub_match;
0118
0119 template<typename RegexTraits>
0120 struct compiler_traits;
0121
0122 template<typename Char, typename Impl = typename detail::default_regex_traits<Char>::type>
0123 struct regex_traits;
0124
0125 template
0126 <
0127 typename BidiIter
0128 , typename RegexTraits = regex_traits<typename iterator_value<BidiIter>::type>
0129 , typename CompilerTraits = compiler_traits<RegexTraits>
0130 >
0131 struct regex_compiler;
0132
0133 template<typename T>
0134 struct value;
0135
0136 template<typename T>
0137 struct reference;
0138
0139 template<typename T>
0140 struct local;
0141
0142 template<typename T, int I = 0, typename Dummy = proto::is_proto_expr>
0143 struct placeholder;
0144
0145 namespace op
0146 {
0147 struct at;
0148 struct push;
0149 struct push_back;
0150 struct push_front;
0151 struct pop;
0152 struct pop_back;
0153 struct pop_front;
0154 struct front;
0155 struct back;
0156 struct top;
0157 struct first;
0158 struct second;
0159 struct matched;
0160 struct length;
0161 struct str;
0162 struct insert;
0163 struct make_pair;
0164 template<typename T>
0165 struct as;
0166 template<typename T>
0167 struct static_cast_;
0168 template<typename T>
0169 struct dynamic_cast_;
0170 template<typename T>
0171 struct const_cast_;
0172 template<typename T>
0173 struct construct;
0174 template<typename Except>
0175 struct throw_;
0176 struct unwrap_reference;
0177 }
0178
0179
0180
0181
0182 typedef basic_regex<std::string::const_iterator> sregex;
0183 typedef basic_regex<char const *> cregex;
0184
0185 #ifndef BOOST_XPRESSIVE_NO_WREGEX
0186 typedef basic_regex<std::wstring::const_iterator> wsregex;
0187 typedef basic_regex<wchar_t const *> wcregex;
0188 #endif
0189
0190 typedef sub_match<std::string::const_iterator> ssub_match;
0191 typedef sub_match<char const *> csub_match;
0192
0193 #ifndef BOOST_XPRESSIVE_NO_WREGEX
0194 typedef sub_match<std::wstring::const_iterator> wssub_match;
0195 typedef sub_match<wchar_t const *> wcsub_match;
0196 #endif
0197
0198 typedef regex_compiler<std::string::const_iterator> sregex_compiler;
0199 typedef regex_compiler<char const *> cregex_compiler;
0200
0201 #ifndef BOOST_XPRESSIVE_NO_WREGEX
0202 typedef regex_compiler<std::wstring::const_iterator> wsregex_compiler;
0203 typedef regex_compiler<wchar_t const *> wcregex_compiler;
0204 #endif
0205
0206 typedef regex_iterator<std::string::const_iterator> sregex_iterator;
0207 typedef regex_iterator<char const *> cregex_iterator;
0208
0209 #ifndef BOOST_XPRESSIVE_NO_WREGEX
0210 typedef regex_iterator<std::wstring::const_iterator> wsregex_iterator;
0211 typedef regex_iterator<wchar_t const *> wcregex_iterator;
0212 #endif
0213
0214 typedef regex_token_iterator<std::string::const_iterator> sregex_token_iterator;
0215 typedef regex_token_iterator<char const *> cregex_token_iterator;
0216
0217 #ifndef BOOST_XPRESSIVE_NO_WREGEX
0218 typedef regex_token_iterator<std::wstring::const_iterator> wsregex_token_iterator;
0219 typedef regex_token_iterator<wchar_t const *> wcregex_token_iterator;
0220 #endif
0221
0222 typedef match_results<std::string::const_iterator> smatch;
0223 typedef match_results<char const *> cmatch;
0224
0225 #ifndef BOOST_XPRESSIVE_NO_WREGEX
0226 typedef match_results<std::wstring::const_iterator> wsmatch;
0227 typedef match_results<wchar_t const *> wcmatch;
0228 #endif
0229
0230 typedef regex_id_filter_predicate<std::string::const_iterator> sregex_id_filter_predicate;
0231 typedef regex_id_filter_predicate<char const *> cregex_id_filter_predicate;
0232
0233 #ifndef BOOST_XPRESSIVE_NO_WREGEX
0234 typedef regex_id_filter_predicate<std::wstring::const_iterator> wsregex_id_filter_predicate;
0235 typedef regex_id_filter_predicate<wchar_t const *> wcregex_id_filter_predicate;
0236 #endif
0237
0238 }}
0239
0240 #endif