121 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // placeholders.hpp
 | |
| //
 | |
| //  Copyright 2008 Eric Niebler. 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)
 | |
| 
 | |
| #ifndef BOOST_XPRESSIVE_DETAIL_STATIC_PLACEHOLDERS_HPP_EAN_10_04_2005
 | |
| #define BOOST_XPRESSIVE_DETAIL_STATIC_PLACEHOLDERS_HPP_EAN_10_04_2005
 | |
| 
 | |
| // MS compatible compilers support #pragma once
 | |
| #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | |
| # pragma once
 | |
| # pragma warning(push)
 | |
| # pragma warning(disable:4510) // default constructor could not be generated
 | |
| # pragma warning(disable:4610) // can never be instantiated - user defined constructor required
 | |
| #endif
 | |
| 
 | |
| #include <string>
 | |
| #include <boost/shared_ptr.hpp>
 | |
| #include <boost/xpressive/detail/core/quant_style.hpp>
 | |
| #include <boost/xpressive/detail/core/regex_impl.hpp>
 | |
| 
 | |
| namespace boost { namespace xpressive { namespace detail
 | |
| {
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // mark_placeholder
 | |
| //
 | |
| struct mark_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_variable_width, unknown_width::value, true)
 | |
| 
 | |
|     int mark_number_;
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // posix_charset_placeholder
 | |
| //
 | |
| struct posix_charset_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_fixed_width, 1, true)
 | |
| 
 | |
|     char const *name_;
 | |
|     bool not_;
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // assert_word_placeholder
 | |
| //
 | |
| template<typename Cond>
 | |
| struct assert_word_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_none, 0, true)
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // range_placeholder
 | |
| //
 | |
| template<typename Char>
 | |
| struct range_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_fixed_width, 1, true)
 | |
| 
 | |
|     Char ch_min_;
 | |
|     Char ch_max_;
 | |
|     bool not_;
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // assert_bol_placeholder
 | |
| //
 | |
| struct assert_bol_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_none, 0, true)
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // assert_eol_placeholder
 | |
| //
 | |
| struct assert_eol_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_none, 0, true)
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // logical_newline_placeholder
 | |
| //
 | |
| struct logical_newline_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_variable_width, unknown_width::value, true)
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // self_placeholder
 | |
| //
 | |
| struct self_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_variable_width, unknown_width::value, false)
 | |
| };
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // attribute_placeholder
 | |
| //
 | |
| template<typename Nbr>
 | |
| struct attribute_placeholder
 | |
| {
 | |
|     BOOST_XPR_QUANT_STYLE(quant_variable_width, unknown_width::value, false)
 | |
| 
 | |
|     typedef Nbr nbr_type;
 | |
|     static Nbr nbr() { return Nbr(); }
 | |
| };
 | |
| 
 | |
| }}} // namespace boost::xpressive::detail
 | |
| 
 | |
| #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | |
| # pragma warning(pop)
 | |
| #endif
 | |
| 
 | |
| #endif
 | 
