91 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*=============================================================================
 | |
|     Copyright (c) 1998-2003 Joel de Guzman
 | |
|     Copyright (c) 2001 Daniel Nuffer
 | |
|     Copyright (c) 2002 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)
 | |
| =============================================================================*/
 | |
| #if !defined(BOOST_SPIRIT_ALTERNATIVE_IPP)
 | |
| #define BOOST_SPIRIT_ALTERNATIVE_IPP
 | |
| 
 | |
| namespace boost { namespace spirit {
 | |
| 
 | |
| BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     //
 | |
|     //  alternative class implementation
 | |
|     //
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     template <typename A, typename B>
 | |
|     inline alternative<A, B>
 | |
|     operator|(parser<A> const& a, parser<B> const& b)
 | |
|     {
 | |
|         return alternative<A, B>(a.derived(), b.derived());
 | |
|     }
 | |
|     
 | |
|     template <typename A>
 | |
|     inline alternative<A, chlit<char> >
 | |
|     operator|(parser<A> const& a, char b)
 | |
|     {
 | |
|         return alternative<A, chlit<char> >(a.derived(), b);
 | |
|     }
 | |
|     
 | |
|     template <typename B>
 | |
|     inline alternative<chlit<char>, B>
 | |
|     operator|(char a, parser<B> const& b)
 | |
|     {
 | |
|         return alternative<chlit<char>, B>(a, b.derived());
 | |
|     }
 | |
|     
 | |
|     template <typename A>
 | |
|     inline alternative<A, strlit<char const*> >
 | |
|     operator|(parser<A> const& a, char const* b)
 | |
|     {
 | |
|         return alternative<A, strlit<char const*> >(a.derived(), b);
 | |
|     }
 | |
|     
 | |
|     template <typename B>
 | |
|     inline alternative<strlit<char const*>, B>
 | |
|     operator|(char const* a, parser<B> const& b)
 | |
|     {
 | |
|         return alternative<strlit<char const*>, B>(a, b.derived());
 | |
|     }
 | |
|     
 | |
|     template <typename A>
 | |
|     inline alternative<A, chlit<wchar_t> >
 | |
|     operator|(parser<A> const& a, wchar_t b)
 | |
|     {
 | |
|         return alternative<A, chlit<wchar_t> >(a.derived(), b);
 | |
|     }
 | |
|     
 | |
|     template <typename B>
 | |
|     inline alternative<chlit<wchar_t>, B>
 | |
|     operator|(wchar_t a, parser<B> const& b)
 | |
|     {
 | |
|         return alternative<chlit<wchar_t>, B>(a, b.derived());
 | |
|     }
 | |
|     
 | |
|     template <typename A>
 | |
|     inline alternative<A, strlit<wchar_t const*> >
 | |
|     operator|(parser<A> const& a, wchar_t const* b)
 | |
|     {
 | |
|         return alternative<A, strlit<wchar_t const*> >(a.derived(), b);
 | |
|     }
 | |
|     
 | |
|     template <typename B>
 | |
|     inline alternative<strlit<wchar_t const*>, B>
 | |
|     operator|(wchar_t const* a, parser<B> const& b)
 | |
|     {
 | |
|         return alternative<strlit<wchar_t const*>, B>(a, b.derived());
 | |
|     }
 | |
| 
 | |
| BOOST_SPIRIT_CLASSIC_NAMESPACE_END
 | |
| 
 | |
| }} // namespace boost::spirit
 | |
| 
 | |
| #endif
 | 
