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)