Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-31 10:02:07

0001 /*=============================================================================
0002     Copyright (c) 2001-2003 Joel de Guzman
0003     Copyright (c) 2001-2003 Daniel Nuffer
0004     http://spirit.sourceforge.net/
0005 
0006   Distributed under the Boost Software License, Version 1.0. (See accompanying
0007   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 =============================================================================*/
0009 #ifndef BOOST_SPIRIT_CHSET_OPERATORS_HPP
0010 #define BOOST_SPIRIT_CHSET_OPERATORS_HPP
0011 
0012 ///////////////////////////////////////////////////////////////////////////////
0013 #include <boost/spirit/home/classic/namespace.hpp>
0014 #include <boost/spirit/home/classic/utility/chset.hpp>
0015 
0016 ///////////////////////////////////////////////////////////////////////////////
0017 namespace boost { namespace spirit {
0018 
0019 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
0020 
0021 ///////////////////////////////////////////////////////////////////////////////
0022 //
0023 //  chset free operators
0024 //
0025 //      Where a and b are both chsets, implements:
0026 //
0027 //          a | b, a & b, a - b, a ^ b
0028 //
0029 //      Where a is a chset, implements:
0030 //
0031 //          ~a
0032 //
0033 ///////////////////////////////////////////////////////////////////////////////
0034 template <typename CharT>
0035 chset<CharT>
0036 operator~(chset<CharT> const& a);
0037 
0038 //////////////////////////////////
0039 template <typename CharT>
0040 chset<CharT>
0041 operator|(chset<CharT> const& a, chset<CharT> const& b);
0042 
0043 //////////////////////////////////
0044 template <typename CharT>
0045 chset<CharT>
0046 operator&(chset<CharT> const& a, chset<CharT> const& b);
0047 
0048 //////////////////////////////////
0049 template <typename CharT>
0050 chset<CharT>
0051 operator-(chset<CharT> const& a, chset<CharT> const& b);
0052 
0053 //////////////////////////////////
0054 template <typename CharT>
0055 chset<CharT>
0056 operator^(chset<CharT> const& a, chset<CharT> const& b);
0057 
0058 ///////////////////////////////////////////////////////////////////////////////
0059 //
0060 //  range <--> chset free operators
0061 //
0062 //      Where a is a chset and b is a range, and vice-versa, implements:
0063 //
0064 //          a | b, a & b, a - b, a ^ b
0065 //
0066 ///////////////////////////////////////////////////////////////////////////////
0067 template <typename CharT>
0068 chset<CharT>
0069 operator|(chset<CharT> const& a, range<CharT> const& b);
0070 
0071 //////////////////////////////////
0072 template <typename CharT>
0073 chset<CharT>
0074 operator&(chset<CharT> const& a, range<CharT> const& b);
0075 
0076 //////////////////////////////////
0077 template <typename CharT>
0078 chset<CharT>
0079 operator-(chset<CharT> const& a, range<CharT> const& b);
0080 
0081 //////////////////////////////////
0082 template <typename CharT>
0083 chset<CharT>
0084 operator^(chset<CharT> const& a, range<CharT> const& b);
0085 
0086 //////////////////////////////////
0087 template <typename CharT>
0088 chset<CharT>
0089 operator|(range<CharT> const& a, chset<CharT> const& b);
0090 
0091 //////////////////////////////////
0092 template <typename CharT>
0093 chset<CharT>
0094 operator&(range<CharT> const& a, chset<CharT> const& b);
0095 
0096 //////////////////////////////////
0097 template <typename CharT>
0098 chset<CharT>
0099 operator-(range<CharT> const& a, chset<CharT> const& b);
0100 
0101 //////////////////////////////////
0102 template <typename CharT>
0103 chset<CharT>
0104 operator^(range<CharT> const& a, chset<CharT> const& b);
0105 
0106 ///////////////////////////////////////////////////////////////////////////////
0107 //
0108 //  chlit <--> chset free operators
0109 //
0110 //      Where a is a chset and b is a chlit, and vice-versa, implements:
0111 //
0112 //          a | b, a & b, a - b, a ^ b
0113 //
0114 ///////////////////////////////////////////////////////////////////////////////
0115 template <typename CharT>
0116 chset<CharT>
0117 operator|(chset<CharT> const& a, chlit<CharT> const& b);
0118 
0119 //////////////////////////////////
0120 template <typename CharT>
0121 chset<CharT>
0122 operator&(chset<CharT> const& a, chlit<CharT> const& b);
0123 
0124 //////////////////////////////////
0125 template <typename CharT>
0126 chset<CharT>
0127 operator-(chset<CharT> const& a, chlit<CharT> const& b);
0128 
0129 //////////////////////////////////
0130 template <typename CharT>
0131 chset<CharT>
0132 operator^(chset<CharT> const& a, chlit<CharT> const& b);
0133 
0134 //////////////////////////////////
0135 template <typename CharT>
0136 chset<CharT>
0137 operator|(chlit<CharT> const& a, chset<CharT> const& b);
0138 
0139 //////////////////////////////////
0140 template <typename CharT>
0141 chset<CharT>
0142 operator&(chlit<CharT> const& a, chset<CharT> const& b);
0143 
0144 //////////////////////////////////
0145 template <typename CharT>
0146 chset<CharT>
0147 operator-(chlit<CharT> const& a, chset<CharT> const& b);
0148 
0149 //////////////////////////////////
0150 template <typename CharT>
0151 chset<CharT>
0152 operator^(chlit<CharT> const& a, chset<CharT> const& b);
0153 
0154 ///////////////////////////////////////////////////////////////////////////////
0155 //
0156 //  negated_char_parser<range> <--> chset free operators
0157 //
0158 //      Where a is a chset and b is a range, and vice-versa, implements:
0159 //
0160 //          a | b, a & b, a - b, a ^ b
0161 //
0162 ///////////////////////////////////////////////////////////////////////////////
0163 template <typename CharT>
0164 chset<CharT>
0165 operator|(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b);
0166 
0167 //////////////////////////////////
0168 template <typename CharT>
0169 chset<CharT>
0170 operator&(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b);
0171 
0172 //////////////////////////////////
0173 template <typename CharT>
0174 chset<CharT>
0175 operator-(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b);
0176 
0177 //////////////////////////////////
0178 template <typename CharT>
0179 chset<CharT>
0180 operator^(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b);
0181 
0182 //////////////////////////////////
0183 template <typename CharT>
0184 chset<CharT>
0185 operator|(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b);
0186 
0187 //////////////////////////////////
0188 template <typename CharT>
0189 chset<CharT>
0190 operator&(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b);
0191 
0192 //////////////////////////////////
0193 template <typename CharT>
0194 chset<CharT>
0195 operator-(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b);
0196 
0197 //////////////////////////////////
0198 template <typename CharT>
0199 chset<CharT>
0200 operator^(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b);
0201 
0202 ///////////////////////////////////////////////////////////////////////////////
0203 //
0204 //  negated_char_parser<chlit> <--> chset free operators
0205 //
0206 //      Where a is a chset and b is a chlit, and vice-versa, implements:
0207 //
0208 //          a | b, a & b, a - b, a ^ b
0209 //
0210 ///////////////////////////////////////////////////////////////////////////////
0211 template <typename CharT>
0212 chset<CharT>
0213 operator|(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b);
0214 
0215 //////////////////////////////////
0216 template <typename CharT>
0217 chset<CharT>
0218 operator&(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b);
0219 
0220 //////////////////////////////////
0221 template <typename CharT>
0222 chset<CharT>
0223 operator-(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b);
0224 
0225 //////////////////////////////////
0226 template <typename CharT>
0227 chset<CharT>
0228 operator^(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b);
0229 
0230 //////////////////////////////////
0231 template <typename CharT>
0232 chset<CharT>
0233 operator|(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b);
0234 
0235 //////////////////////////////////
0236 template <typename CharT>
0237 chset<CharT>
0238 operator&(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b);
0239 
0240 //////////////////////////////////
0241 template <typename CharT>
0242 chset<CharT>
0243 operator-(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b);
0244 
0245 //////////////////////////////////
0246 template <typename CharT>
0247 chset<CharT>
0248 operator^(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b);
0249 
0250 ///////////////////////////////////////////////////////////////////////////////
0251 //
0252 //  literal primitives <--> chset free operators
0253 //
0254 //      Where a is a chset and b is a literal primitive,
0255 //      and vice-versa, implements:
0256 //
0257 //          a | b, a & b, a - b, a ^ b
0258 //
0259 ///////////////////////////////////////////////////////////////////////////////
0260 template <typename CharT>
0261 chset<CharT>
0262 operator|(chset<CharT> const& a, CharT b);
0263 
0264 //////////////////////////////////
0265 template <typename CharT>
0266 chset<CharT>
0267 operator&(chset<CharT> const& a, CharT b);
0268 
0269 //////////////////////////////////
0270 template <typename CharT>
0271 chset<CharT>
0272 operator-(chset<CharT> const& a, CharT b);
0273 
0274 //////////////////////////////////
0275 template <typename CharT>
0276 chset<CharT>
0277 operator^(chset<CharT> const& a, CharT b);
0278 
0279 //////////////////////////////////
0280 template <typename CharT>
0281 chset<CharT>
0282 operator|(CharT a, chset<CharT> const& b);
0283 
0284 //////////////////////////////////
0285 template <typename CharT>
0286 chset<CharT>
0287 operator&(CharT a, chset<CharT> const& b);
0288 
0289 //////////////////////////////////
0290 template <typename CharT>
0291 chset<CharT>
0292 operator-(CharT a, chset<CharT> const& b);
0293 
0294 //////////////////////////////////
0295 template <typename CharT>
0296 chset<CharT>
0297 operator^(CharT a, chset<CharT> const& b);
0298 
0299 ///////////////////////////////////////////////////////////////////////////////
0300 //
0301 //  anychar_parser <--> chset free operators
0302 //
0303 //      Where a is chset and b is a anychar_parser, and vice-versa, implements:
0304 //
0305 //          a | b, a & b, a - b, a ^ b
0306 //
0307 ///////////////////////////////////////////////////////////////////////////////
0308 template <typename CharT>
0309 chset<CharT>
0310 operator|(chset<CharT> const& a, anychar_parser b);
0311 
0312 //////////////////////////////////
0313 template <typename CharT>
0314 chset<CharT>
0315 operator&(chset<CharT> const& a, anychar_parser b);
0316 
0317 //////////////////////////////////
0318 template <typename CharT>
0319 chset<CharT>
0320 operator-(chset<CharT> const& a, anychar_parser b);
0321 
0322 //////////////////////////////////
0323 template <typename CharT>
0324 chset<CharT>
0325 operator^(chset<CharT> const& a, anychar_parser b);
0326 
0327 //////////////////////////////////
0328 template <typename CharT>
0329 chset<CharT>
0330 operator|(anychar_parser a, chset<CharT> const& b);
0331 
0332 //////////////////////////////////
0333 template <typename CharT>
0334 chset<CharT>
0335 operator&(anychar_parser a, chset<CharT> const& b);
0336 
0337 //////////////////////////////////
0338 template <typename CharT>
0339 chset<CharT>
0340 operator-(anychar_parser a, chset<CharT> const& b);
0341 
0342 //////////////////////////////////
0343 template <typename CharT>
0344 chset<CharT>
0345 operator^(anychar_parser a, chset<CharT> const& b);
0346 
0347 ///////////////////////////////////////////////////////////////////////////////
0348 //
0349 //  nothing_parser <--> chset free operators
0350 //
0351 //      Where a is chset and b is nothing_parser, and vice-versa, implements:
0352 //
0353 //          a | b, a & b, a - b, a ^ b
0354 //
0355 ///////////////////////////////////////////////////////////////////////////////
0356 template <typename CharT>
0357 chset<CharT>
0358 operator|(chset<CharT> const& a, nothing_parser b);
0359 
0360 //////////////////////////////////
0361 template <typename CharT>
0362 chset<CharT>
0363 operator&(chset<CharT> const& a, nothing_parser b);
0364 
0365 //////////////////////////////////
0366 template <typename CharT>
0367 chset<CharT>
0368 operator-(chset<CharT> const& a, nothing_parser b);
0369 
0370 //////////////////////////////////
0371 template <typename CharT>
0372 chset<CharT>
0373 operator^(chset<CharT> const& a, nothing_parser b);
0374 
0375 //////////////////////////////////
0376 template <typename CharT>
0377 chset<CharT>
0378 operator|(nothing_parser a, chset<CharT> const& b);
0379 
0380 //////////////////////////////////
0381 template <typename CharT>
0382 chset<CharT>
0383 operator&(nothing_parser a, chset<CharT> const& b);
0384 
0385 //////////////////////////////////
0386 template <typename CharT>
0387 chset<CharT>
0388 operator-(nothing_parser a, chset<CharT> const& b);
0389 
0390 //////////////////////////////////
0391 template <typename CharT>
0392 chset<CharT>
0393 operator^(nothing_parser a, chset<CharT> const& b);
0394 
0395 ///////////////////////////////////////////////////////////////////////////////
0396 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
0397 
0398 }} // namespace BOOST_SPIRIT_CLASSIC_NS
0399 
0400 #endif
0401 
0402 #include <boost/spirit/home/classic/utility/impl/chset_operators.ipp>