Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/wave/util/pattern_parser.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DEPENDENCIES/generic/include/boost/wave/util/pattern_parser.hpp Tue Aug 05 11:11:38 2014 +0100 @@ -0,0 +1,67 @@ +/*============================================================================= + 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)