Mercurial > hg > vamp-build-and-test
comparison 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 |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 /*============================================================================= | |
2 Boost.Wave: A Standard compliant C++ preprocessor library | |
3 | |
4 Global application configuration | |
5 | |
6 http://www.boost.org/ | |
7 | |
8 Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost | |
9 Software License, Version 1.0. (See accompanying file | |
10 LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
11 =============================================================================*/ | |
12 | |
13 #if !defined(BOOST_SPIRIT_PATTERN_PARSER_HPP) | |
14 #define BOOST_SPIRIT_PATTERN_PARSER_HPP | |
15 | |
16 #include <boost/spirit/include/classic_primitives.hpp> | |
17 #include <boost/wave/wave_config.hpp> | |
18 | |
19 // this must occur after all of the includes and before any code appears | |
20 #ifdef BOOST_HAS_ABI_HEADERS | |
21 #include BOOST_ABI_PREFIX | |
22 #endif | |
23 | |
24 /////////////////////////////////////////////////////////////////////////////// | |
25 namespace boost { | |
26 namespace wave { | |
27 namespace util { | |
28 | |
29 /////////////////////////////////////////////////////////////////////////// | |
30 // | |
31 // pattern_and class | |
32 // | |
33 /////////////////////////////////////////////////////////////////////////// | |
34 template <typename CharT = char> | |
35 struct pattern_and | |
36 : public boost::spirit::classic::char_parser<pattern_and<CharT> > | |
37 { | |
38 pattern_and(CharT pattern_, unsigned long pattern_mask_ = 0UL) | |
39 : pattern(pattern_), | |
40 pattern_mask((0UL != pattern_mask_) ? | |
41 pattern_mask_ : (unsigned long)pattern_) | |
42 {} | |
43 | |
44 template <typename T> | |
45 bool test(T pattern_) const | |
46 { return ((unsigned long)pattern_ & pattern_mask) == (unsigned long)pattern; } | |
47 | |
48 CharT pattern; | |
49 unsigned long pattern_mask; | |
50 }; | |
51 | |
52 template <typename CharT> | |
53 inline pattern_and<CharT> | |
54 pattern_p(CharT pattern, unsigned long pattern_mask = 0UL) | |
55 { return pattern_and<CharT>(pattern, pattern_mask); } | |
56 | |
57 /////////////////////////////////////////////////////////////////////////////// | |
58 } // namespace util | |
59 } // namespace wave | |
60 } // namespace boost | |
61 | |
62 // the suffix header occurs after all of the code | |
63 #ifdef BOOST_HAS_ABI_HEADERS | |
64 #include BOOST_ABI_SUFFIX | |
65 #endif | |
66 | |
67 #endif // defined(BOOST_SPIRIT_PATTERN_PARSER_HPP) |