1 /*=============================================================================
2     Copyright (c) 2006 Tobias Schwinger
3     http://spirit.sourceforge.net/
4 
5   Distributed under the Boost Software License, Version 1.0. (See accompanying
6   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 =============================================================================*/
8 #if !defined(BOOST_SPIRIT_CLOSURE_FWD_HPP)
9 #define BOOST_SPIRIT_CLOSURE_FWD_HPP
10 
11 #include <boost/spirit/home/classic/namespace.hpp>
12 #include <boost/spirit/home/classic/phoenix/tuples.hpp>
13 
14 #if !defined(BOOST_SPIRIT_CLOSURE_LIMIT)
15 #   define BOOST_SPIRIT_CLOSURE_LIMIT PHOENIX_LIMIT
16 #endif
17 
18 namespace boost { namespace spirit {
19 
20 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
21 
22     template<typename ClosureT>
23     class closure_context;
24 
25     template <typename ClosureT>
26     class init_closure_context;
27 
28     template <typename ParserT, typename ActorTupleT>
29     struct init_closure_parser;
30 
31     template <
32             typename DerivedT
33         ,   typename T0 = ::phoenix::nil_t
34         ,   typename T1 = ::phoenix::nil_t
35         ,   typename T2 = ::phoenix::nil_t
36 
37     #if BOOST_SPIRIT_CLOSURE_LIMIT > 3
38         ,   typename T3 = ::phoenix::nil_t
39         ,   typename T4 = ::phoenix::nil_t
40         ,   typename T5 = ::phoenix::nil_t
41 
42     #if BOOST_SPIRIT_CLOSURE_LIMIT > 6
43         ,   typename T6 = ::phoenix::nil_t
44         ,   typename T7 = ::phoenix::nil_t
45         ,   typename T8 = ::phoenix::nil_t
46 
47     #if BOOST_SPIRIT_CLOSURE_LIMIT > 9
48         ,   typename T9 = ::phoenix::nil_t
49         ,   typename T10 = ::phoenix::nil_t
50         ,   typename T11 = ::phoenix::nil_t
51 
52     #if BOOST_SPIRIT_CLOSURE_LIMIT > 12
53         ,   typename T12 = ::phoenix::nil_t
54         ,   typename T13 = ::phoenix::nil_t
55         ,   typename T14 = ::phoenix::nil_t
56 
57     #endif
58     #endif
59     #endif
60     #endif
61     >
62     struct closure;
63 
64 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
65 
66 }} // namespace BOOST_SPIRIT_CLASSIC_NS
67 
68 #endif
69 
70