1 /*=============================================================================
2 Copyright (c) 2005-2010 Joel de Guzman
3 Copyright (c) 2010 Eric Niebler
4 Copyright (c) 2010 Thomas Heller
5 Copyright (c) 2014 John Fletcher
7 Distributed under the Boost Software License, Version 1.0. (See accompanying
8 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 ==============================================================================*/
10 #ifndef BOOST_PHOENIX_CORE_ASSIGN_HPP
11 #define BOOST_PHOENIX_CORE_ASSIGN_HPP
13 #define BOOST_PHOENIX_ACTOR_ASSIGN_CHILD(N) \
17 proto::_child_c<N>(proto::_state) \
21 #define BOOST_PHOENIX_ACTOR_START_ASSIGN_CHILD(Z, N, D) \
23 BOOST_PHOENIX_ACTOR_ASSIGN_CHILD(N) \
25 #define BOOST_PHOENIX_ACTOR_END_ASSIGN(Z, N, D) \
28 #define BOOST_PHOENIX_ACTOR_ASSIGN_CALL(N) \
30 proto::nary_expr<proto::_ , \
31 BOOST_PP_ENUM_PARAMS(N, proto::_ BOOST_PP_INTERCEPT) \
35 , BOOST_PHOENIX_ACTOR_START_ASSIGN_CHILD \
40 , BOOST_PHOENIX_ACTOR_END_ASSIGN \
45 #define BOOST_PHOENIX_ACTOR_START_ASSIGN_CALL(Z, N, D) \
47 BOOST_PHOENIX_ACTOR_ASSIGN_CALL(N) \
50 #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
51 #include <boost/phoenix/core/detail/cpp03/preprocessed/assign.hpp>
53 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
54 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/assign_" BOOST_PHOENIX_LIMIT_STR ".hpp")
56 /*==============================================================================
57 Copyright (c) 2005-2010 Joel de Guzman
58 Copyright (c) 2010-2011 Thomas Heller
60 Distributed under the Boost Software License, Version 1.0. (See accompanying
61 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
62 ==============================================================================*/
64 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
65 #pragma wave option(preserve: 1)
69 : BOOST_PP_ENUM_SHIFTED(
71 , BOOST_PHOENIX_ACTOR_START_ASSIGN_CALL
75 proto::terminal<proto::_>
76 , do_assign(proto::_, proto::_state)
79 BOOST_PP_DEC(BOOST_PHOENIX_LIMIT)
80 , BOOST_PHOENIX_ACTOR_END_ASSIGN
85 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
86 #pragma wave option(output: null)
90 #undef BOOST_PHOENIX_ACTOR_ASSIGN_CALL
91 #undef BOOST_PHOENIX_ACTOR_START_ASSIGN_CALL
92 #undef BOOST_PHOENIX_ACTOR_END_ASSIGN_CALL
93 #undef BOOST_PHOENIX_ACTOR_ASSIGN_CHILD
94 #undef BOOST_PHOENIX_ACTOR_START_ASSIGN_CHILD
95 #undef BOOST_PHOENIX_ACTOR_END_ASSIGN_CHILD