]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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_ITERATOR_TYPEOF_HPP) | |
9 | #define BOOST_SPIRIT_ITERATOR_TYPEOF_HPP | |
10 | ||
11 | #include <boost/typeof/typeof.hpp> | |
12 | #include <boost/typeof/std/string.hpp> | |
13 | ||
14 | #include <boost/spirit/home/classic/namespace.hpp> | |
15 | #include <boost/spirit/home/classic/iterator/multi_pass_fwd.hpp> | |
16 | #include <boost/spirit/home/classic/iterator/file_iterator_fwd.hpp> | |
17 | #include <boost/spirit/home/classic/iterator/position_iterator_fwd.hpp> | |
18 | ||
19 | #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() | |
20 | ||
21 | namespace boost { namespace spirit { | |
22 | ||
23 | BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN | |
24 | ||
25 | // external (from core) | |
26 | struct nil_t; | |
27 | ||
28 | // fixed_size_queue.hpp | |
29 | template<typename T, std::size_t N> class fixed_size_queue; | |
30 | template<typename QueueT, typename T, typename PointerT> | |
31 | class fsq_iterator; | |
32 | ||
33 | BOOST_SPIRIT_CLASSIC_NAMESPACE_END | |
34 | ||
35 | }} // namespace BOOST_SPIRIT_CLASSIC_NS | |
36 | ||
37 | #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() | |
38 | ||
39 | #if !defined(BOOST_SPIRIT_NIL_T_TYPEOF_REGISTERED) | |
40 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::nil_t) | |
41 | # define BOOST_SPIRIT_NIL_T_TYPEOF_REGISTERED | |
42 | #endif | |
43 | ||
44 | ||
45 | // multi_pass.hpp (has forward header) | |
46 | ||
47 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::multi_pass,5) | |
48 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::ref_counted) | |
49 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::first_owner) | |
50 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::buf_id_check) | |
51 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::no_check) | |
52 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::std_deque) | |
53 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::fixed_size_queue,(BOOST_TYPEOF_INTEGRAL(std::size_t))) | |
54 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::input_iterator) | |
55 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::lex_input) | |
56 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::multi_pass_policies::functor_input) | |
57 | ||
58 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::multi_pass,3) | |
59 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::multi_pass,1) | |
60 | ||
61 | ||
62 | // file_iterator.hpp | |
63 | ||
64 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::file_iterator,2) | |
65 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::fileiter_impl::std_file_iterator,1) | |
66 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::fileiter_impl::mmap_file_iterator,1) | |
67 | ||
68 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::fileiter_impl::std_file_iterator<char>) | |
69 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::fileiter_impl::std_file_iterator<wchar_t>) | |
70 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::fileiter_impl::mmap_file_iterator<char>) | |
71 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::fileiter_impl::mmap_file_iterator<wchar_t>) | |
72 | ||
73 | ||
74 | // fixed_size_queue.hpp | |
75 | ||
76 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::fixed_size_queue,(typename)(BOOST_TYPEOF_INTEGRAL(std::size_t))) | |
77 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::fsq_iterator,3) | |
78 | ||
79 | ||
80 | // position_iterator.hpp | |
81 | ||
82 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::position_iterator,3) | |
83 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::position_iterator2,2) | |
84 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::position_policy,1) | |
85 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::file_position_base,1) | |
86 | BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::file_position_without_column_base,1) | |
87 | ||
88 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::file_position) | |
89 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::file_position_base<std::basic_string<wchar_t> >) | |
90 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::file_position_without_column) | |
91 | BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::file_position_without_column_base<std::basic_string<wchar_t> >) | |
92 | ||
93 | #endif | |
94 |