1 /*=============================================================================
2 Copyright (c) 2011 Thomas Heller
3 Copyright (c) 2001-2011 Hartmut Kaiser
4 Copyright (c) 2011 Thomas Heller
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 ==============================================================================*/
9 #if !defined(BOOST_SPIRIT_ARGUMENT_MARCH_22_2011_0939PM)
10 #define BOOST_SPIRIT_ARGUMENT_MARCH_22_2011_0939PM
12 #include <boost/spirit/include/phoenix_core.hpp>
14 namespace boost { namespace spirit
19 template <typename Dummy>
20 struct attribute_context;
26 : phoenix::expression::terminal<spirit::argument<N> >
28 typedef typename phoenix::expression::terminal<
34 type const e = {{{}}};
39 template <typename Dummy>
40 struct attribute_context
41 : phoenix::expression::terminal<spirit::attribute_context<Dummy> >
43 typedef typename phoenix::expression::terminal<
44 spirit::attribute_context<Dummy>
49 type const e = {{{}}};
56 namespace boost { namespace phoenix
60 template <typename Dummy>
61 struct is_nullary<custom_terminal<spirit::attribute_context<Dummy> > >
66 struct is_nullary<custom_terminal<spirit::argument<N> > >
71 template <typename Dummy>
72 struct is_custom_terminal<spirit::attribute_context<Dummy> >
77 struct is_custom_terminal<spirit::argument<N> >
81 template <typename Dummy>
82 struct custom_terminal<spirit::attribute_context<Dummy> >
85 proto::make<spirit::attribute_context<Dummy>()>
87 functional::env(proto::_state)
94 struct custom_terminal<spirit::argument<N> >
97 proto::make<spirit::argument<N>()>
99 functional::env(proto::_state)