]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/spirit/home/classic/dynamic/typeof.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / spirit / home / classic / dynamic / typeof.hpp
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_DYNAMIC_TYPEOF_HPP)
9 #define BOOST_SPIRIT_DYNAMIC_TYPEOF_HPP
10
11 #include <boost/typeof/typeof.hpp>
12
13 #include <boost/spirit/home/classic/namespace.hpp>
14 #include <boost/spirit/home/classic/core/typeof.hpp>
15
16 #include <boost/spirit/home/classic/dynamic/stored_rule_fwd.hpp>
17
18 namespace boost { namespace spirit {
19
20 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
21
22 // if.hpp
23 template <class ParsableT, typename CondT> struct if_parser;
24 template <class ParsableTrueT, class ParsableFalseT, typename CondT>
25 struct if_else_parser;
26
27 // for.hpp
28 namespace impl {
29 template<typename InitF, typename CondT, typename StepF, class ParsableT>
30 struct for_parser;
31 }
32
33 // while.hpp
34 template<typename ParsableT, typename CondT, bool is_do_parser>
35 struct while_parser;
36
37 // lazy.hpp
38 template<typename ActorT> struct lazy_parser;
39
40 // rule_alias.hpp
41 template <typename ParserT> class rule_alias;
42
43 // switch.hpp
44 template <typename CaseT, typename CondT> struct switch_parser;
45 template <int N, class ParserT, bool IsDefault> struct case_parser;
46
47 // select.hpp
48 template <typename TupleT, typename BehaviourT, typename T>
49 struct select_parser;
50
51 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
52
53 }} // namespace BOOST_SPIRIT_CLASSIC_NS
54
55
56 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
57
58 // if.hpp
59 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::if_parser,2)
60 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::if_else_parser,3)
61
62 // for.hpp
63 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::impl::for_parser,4)
64
65 // while.hpp
66 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::while_parser,(class)(class)(bool))
67
68 // lazy.hpp
69 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::lazy_parser,1)
70
71 // stored_rule.hpp (has forward header)
72 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::stored_rule,(typename)(typename)(typename)(bool))
73 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::stored_rule,3)
74 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::stored_rule,2)
75 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::stored_rule,1)
76 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::stored_rule<>)
77
78 // rule_alias.hpp
79 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::rule_alias,1)
80
81 // switch.hpp
82 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::switch_parser,2)
83 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::case_parser,(int)(class)(bool))
84
85 // select.hpp
86 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::select_parser,3)
87
88 #endif
89