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 |