| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | /*=============================================================================    Boost.Wave: A Standard compliant C++ preprocessor library    Global application configuration    http://www.boost.org/    Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost    Software License, Version 1.0. (See accompanying file    LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)=============================================================================*/#if !defined(BOOST_SPIRIT_PATTERN_PARSER_HPP)#define BOOST_SPIRIT_PATTERN_PARSER_HPP#include <boost/spirit/include/classic_primitives.hpp>#include <boost/wave/wave_config.hpp>// this must occur after all of the includes and before any code appears#ifdef BOOST_HAS_ABI_HEADERS#include BOOST_ABI_PREFIX#endif///////////////////////////////////////////////////////////////////////////////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#ifdef BOOST_HAS_ABI_HEADERS#include BOOST_ABI_SUFFIX#endif#endif // defined(BOOST_SPIRIT_PATTERN_PARSER_HPP)
 |