12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // this must occur after all of the includes and before any code appears
- ///////////////////////////////////////////////////////////////////////////////
- namespace boost {
- namespace wave {
- namespace util {
- ///////////////////////////////////////////////////////////////////////////
- //
- // pattern_and class
- //
- ///////////////////////////////////////////////////////////////////////////
- template <typename CharT = char>
- struct pattern_and
- : public boost::spirit::classic::char_parser<pattern_and<CharT> >
- {
- pattern_and(CharT pattern_, unsigned long pattern_mask_ = 0UL)
- : pattern(pattern_),
- pattern_mask((0UL != pattern_mask_) ?
- pattern_mask_ : (unsigned long)pattern_)
- {}
- template <typename T>
- bool test(T pattern_) const
- { return ((unsigned long)pattern_ & pattern_mask) == (unsigned long)pattern; }
- CharT pattern;
- unsigned long pattern_mask;
- };
- template <typename CharT>
- inline pattern_and<CharT>
- pattern_p(CharT pattern, unsigned long pattern_mask = 0UL)
- { return pattern_and<CharT>(pattern, pattern_mask); }
- ///////////////////////////////////////////////////////////////////////////////
- } // namespace util
- } // namespace wave
- } // namespace boost
- // the suffix header occurs after all of the code
|