66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								/*=============================================================================
							 | 
						||
| 
								 | 
							
								    Copyright (c) 2005-2010 Joel de Guzman
							 | 
						||
| 
								 | 
							
								    Copyright (c) 2010 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_PHOENIX_CORE_DOMAIN_HPP
							 | 
						||
| 
								 | 
							
								#define BOOST_PHOENIX_CORE_DOMAIN_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/phoenix/core/limits.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/proto/matches.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/proto/transform/call.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/proto/transform/when.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/proto/domain.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost { namespace phoenix
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    template <typename Expr>
							 | 
						||
| 
								 | 
							
								    struct actor;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    struct meta_grammar;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    struct phoenix_generator
							 | 
						||
| 
								 | 
							
								        : proto::switch_<phoenix_generator>
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        BOOST_PROTO_USE_BASIC_EXPR()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        template<typename Tag>
							 | 
						||
| 
								 | 
							
								        struct case_
							 | 
						||
| 
								 | 
							
								            : proto::otherwise<proto::call<proto::pod_generator<actor>(proto::_)> >
							 | 
						||
| 
								 | 
							
								        {};
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    struct phoenix_default_domain
							 | 
						||
| 
								 | 
							
								        : proto::domain<
							 | 
						||
| 
								 | 
							
								           proto::basic_default_generator
							 | 
						||
| 
								 | 
							
								         , proto::_
							 | 
						||
| 
								 | 
							
								         , proto::basic_default_domain
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        template <typename T>
							 | 
						||
| 
								 | 
							
								        struct as_child
							 | 
						||
| 
								 | 
							
								        //: proto_base_domain::as_expr<T> // proto lambda example.
							 | 
						||
| 
								 | 
							
								          : as_expr<T>
							 | 
						||
| 
								 | 
							
								        {};
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    struct phoenix_domain
							 | 
						||
| 
								 | 
							
								        : proto::domain<
							 | 
						||
| 
								 | 
							
								            phoenix_generator
							 | 
						||
| 
								 | 
							
								          , meta_grammar
							 | 
						||
| 
								 | 
							
								          , proto::basic_default_domain
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        template <typename T>
							 | 
						||
| 
								 | 
							
								        struct as_child
							 | 
						||
| 
								 | 
							
								        //: proto_base_domain::as_expr<T> // proto lambda example.
							 | 
						||
| 
								 | 
							
								          : as_expr<T>
							 | 
						||
| 
								 | 
							
								        {};
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |