/*============================================================================= Wave: A Standard compliant C++ preprocessor Global application configuration Copyright (c) 2001-2004 Hartmut Kaiser http://spirit.sourceforge.net/ Use, modification and distribution is subject to 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) See Copyright.txt for full acknowledgements. =============================================================================*/ #if !defined(BOOST_SPIRIT_PATTERN_PARSER_HPP) #define BOOST_SPIRIT_PATTERN_PARSER_HPP #include <boost/spirit/core/primitives/primitives.hpp> /////////////////////////////////////////////////////////////////////////////// namespace wave { namespace util { /////////////////////////////////////////////////////////////////////////// // // pattern_and class // /////////////////////////////////////////////////////////////////////////// template <typename CharT = char> struct pattern_and : public boost::spirit::char_parser<pattern_and<CharT> > { pattern_and(CharT pattern_, unsigned long pattern_mask_ = 0UL) : pattern(pattern_), pattern_mask((0UL != pattern_mask_) ? pattern_mask_ : pattern_) {} template <typename T> bool test(T pattern_) const { return (pattern_ & pattern_mask) == 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 #endif // defined(BOOST_SPIRIT_PATTERN_PARSER_HPP)
By viewing downloads associated with this article you agree to the Terms of use and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
Math Primers for Programmers