Chris@16
|
1 /*=============================================================================
|
Chris@16
|
2 Copyright (c) 2001-2003 Joel de Guzman
|
Chris@16
|
3 Copyright (c) 2002-2003 Hartmut Kaiser
|
Chris@16
|
4 http://spirit.sourceforge.net/
|
Chris@16
|
5
|
Chris@16
|
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 =============================================================================*/
|
Chris@16
|
9 #if !defined(BOOST_SPIRIT_PARSER_NAMES_HPP)
|
Chris@16
|
10 #define BOOST_SPIRIT_PARSER_NAMES_HPP
|
Chris@16
|
11
|
Chris@16
|
12 #if defined(BOOST_SPIRIT_DEBUG)
|
Chris@16
|
13
|
Chris@16
|
14 //////////////////////////////////
|
Chris@16
|
15 #include <boost/spirit/home/classic/namespace.hpp>
|
Chris@16
|
16 #include <boost/spirit/home/classic/core.hpp>
|
Chris@16
|
17
|
Chris@16
|
18 namespace boost { namespace spirit {
|
Chris@16
|
19
|
Chris@16
|
20 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
|
Chris@16
|
21
|
Chris@16
|
22 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
23 //
|
Chris@16
|
24 // Declaration of helper functions, which return the name of a concrete
|
Chris@16
|
25 // parser instance. The functions are specialized on the parser types. The
|
Chris@16
|
26 // functions declared in this file are for the predefined parser types from
|
Chris@16
|
27 // the Spirit core library only, so additional functions might be provided as
|
Chris@16
|
28 // needed.
|
Chris@16
|
29 //
|
Chris@16
|
30 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
31
|
Chris@16
|
32 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
33 // from actions.hpp
|
Chris@16
|
34 template <typename ParserT, typename ActionT>
|
Chris@16
|
35 std::string
|
Chris@16
|
36 parser_name(action<ParserT, ActionT> const& p);
|
Chris@16
|
37
|
Chris@16
|
38 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
39 // from directives.hpp
|
Chris@16
|
40 template <typename ParserT>
|
Chris@16
|
41 std::string
|
Chris@16
|
42 parser_name(contiguous<ParserT> const& p);
|
Chris@16
|
43
|
Chris@16
|
44 template <typename ParserT>
|
Chris@16
|
45 std::string
|
Chris@16
|
46 parser_name(inhibit_case<ParserT> const& p);
|
Chris@16
|
47
|
Chris@16
|
48 template <typename A, typename B>
|
Chris@16
|
49 std::string
|
Chris@16
|
50 parser_name(longest_alternative<A, B> const& p);
|
Chris@16
|
51
|
Chris@16
|
52 template <typename A, typename B>
|
Chris@16
|
53 std::string
|
Chris@16
|
54 parser_name(shortest_alternative<A, B> const& p);
|
Chris@16
|
55
|
Chris@16
|
56 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
57 // from grammar.hpp
|
Chris@16
|
58 template <typename DerivedT, typename ContextT>
|
Chris@16
|
59 std::string
|
Chris@16
|
60 parser_name(grammar<DerivedT, ContextT> const& p);
|
Chris@16
|
61
|
Chris@16
|
62 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
63 // from numerics.hpp
|
Chris@16
|
64 template <typename T, int Radix, unsigned MinDigits, int MaxDigits>
|
Chris@16
|
65 std::string
|
Chris@16
|
66 parser_name(uint_parser<T, Radix, MinDigits, MaxDigits> const& p);
|
Chris@16
|
67
|
Chris@16
|
68 template <typename T, int Radix, unsigned MinDigits, int MaxDigits>
|
Chris@16
|
69 std::string
|
Chris@16
|
70 parser_name(int_parser<T, Radix, MinDigits, MaxDigits> const& p);
|
Chris@16
|
71
|
Chris@16
|
72 template <typename T, typename RealPoliciesT>
|
Chris@16
|
73 std::string
|
Chris@16
|
74 parser_name(real_parser<T, RealPoliciesT> const& p);
|
Chris@16
|
75
|
Chris@16
|
76 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
77 // from operators.hpp
|
Chris@16
|
78 template <typename A, typename B>
|
Chris@16
|
79 std::string
|
Chris@16
|
80 parser_name(sequence<A, B> const& p);
|
Chris@16
|
81
|
Chris@16
|
82 template <typename A, typename B>
|
Chris@16
|
83 std::string
|
Chris@16
|
84 parser_name(sequential_or<A, B> const& p);
|
Chris@16
|
85
|
Chris@16
|
86 template <typename A, typename B>
|
Chris@16
|
87 std::string
|
Chris@16
|
88 parser_name(alternative<A, B> const& p);
|
Chris@16
|
89
|
Chris@16
|
90 template <typename A, typename B>
|
Chris@16
|
91 std::string
|
Chris@16
|
92 parser_name(intersection<A, B> const& p);
|
Chris@16
|
93
|
Chris@16
|
94 template <typename A, typename B>
|
Chris@16
|
95 std::string
|
Chris@16
|
96 parser_name(difference<A, B> const& p);
|
Chris@16
|
97
|
Chris@16
|
98 template <typename A, typename B>
|
Chris@16
|
99 std::string
|
Chris@16
|
100 parser_name(exclusive_or<A, B> const& p);
|
Chris@16
|
101
|
Chris@16
|
102 template <typename S>
|
Chris@16
|
103 std::string
|
Chris@16
|
104 parser_name(optional<S> const& p);
|
Chris@16
|
105
|
Chris@16
|
106 template <typename S>
|
Chris@16
|
107 std::string
|
Chris@16
|
108 parser_name(kleene_star<S> const& p);
|
Chris@16
|
109
|
Chris@16
|
110 template <typename S>
|
Chris@16
|
111 std::string
|
Chris@16
|
112 parser_name(positive<S> const& p);
|
Chris@16
|
113
|
Chris@16
|
114 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
115 // from parser.hpp
|
Chris@16
|
116 template <typename DerivedT>
|
Chris@16
|
117 std::string
|
Chris@16
|
118 parser_name(parser<DerivedT> const& p);
|
Chris@16
|
119
|
Chris@16
|
120 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
121 // from primitives.hpp
|
Chris@16
|
122 template <typename DerivedT>
|
Chris@16
|
123 std::string
|
Chris@16
|
124 parser_name(char_parser<DerivedT> const &p);
|
Chris@16
|
125
|
Chris@16
|
126 template <typename CharT>
|
Chris@16
|
127 std::string
|
Chris@16
|
128 parser_name(chlit<CharT> const &p);
|
Chris@16
|
129
|
Chris@16
|
130 template <typename CharT>
|
Chris@16
|
131 std::string
|
Chris@16
|
132 parser_name(range<CharT> const &p);
|
Chris@16
|
133
|
Chris@16
|
134 template <typename IteratorT>
|
Chris@16
|
135 std::string
|
Chris@16
|
136 parser_name(chseq<IteratorT> const &p);
|
Chris@16
|
137
|
Chris@16
|
138 template <typename IteratorT>
|
Chris@16
|
139 std::string
|
Chris@16
|
140 parser_name(strlit<IteratorT> const &p);
|
Chris@16
|
141
|
Chris@16
|
142 std::string
|
Chris@16
|
143 parser_name(nothing_parser const &p);
|
Chris@16
|
144
|
Chris@16
|
145 std::string
|
Chris@16
|
146 parser_name(epsilon_parser const &p);
|
Chris@16
|
147
|
Chris@16
|
148 std::string
|
Chris@16
|
149 parser_name(anychar_parser const &p);
|
Chris@16
|
150
|
Chris@16
|
151 std::string
|
Chris@16
|
152 parser_name(alnum_parser const &p);
|
Chris@16
|
153
|
Chris@16
|
154 std::string
|
Chris@16
|
155 parser_name(alpha_parser const &p);
|
Chris@16
|
156
|
Chris@16
|
157 std::string
|
Chris@16
|
158 parser_name(cntrl_parser const &p);
|
Chris@16
|
159
|
Chris@16
|
160 std::string
|
Chris@16
|
161 parser_name(digit_parser const &p);
|
Chris@16
|
162
|
Chris@16
|
163 std::string
|
Chris@16
|
164 parser_name(graph_parser const &p);
|
Chris@16
|
165
|
Chris@16
|
166 std::string
|
Chris@16
|
167 parser_name(lower_parser const &p);
|
Chris@16
|
168
|
Chris@16
|
169 std::string
|
Chris@16
|
170 parser_name(print_parser const &p);
|
Chris@16
|
171
|
Chris@16
|
172 std::string
|
Chris@16
|
173 parser_name(punct_parser const &p);
|
Chris@16
|
174
|
Chris@16
|
175 std::string
|
Chris@16
|
176 parser_name(blank_parser const &p);
|
Chris@16
|
177
|
Chris@16
|
178 std::string
|
Chris@16
|
179 parser_name(space_parser const &p);
|
Chris@16
|
180
|
Chris@16
|
181 std::string
|
Chris@16
|
182 parser_name(upper_parser const &p);
|
Chris@16
|
183
|
Chris@16
|
184 std::string
|
Chris@16
|
185 parser_name(xdigit_parser const &p);
|
Chris@16
|
186
|
Chris@16
|
187 std::string
|
Chris@16
|
188 parser_name(eol_parser const &p);
|
Chris@16
|
189
|
Chris@16
|
190 std::string
|
Chris@16
|
191 parser_name(end_parser const &p);
|
Chris@16
|
192
|
Chris@16
|
193 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
194 // from rule.hpp
|
Chris@16
|
195 template<typename T0, typename T1, typename T2>
|
Chris@16
|
196 std::string
|
Chris@16
|
197 parser_name(rule<T0, T1, T2> const& p);
|
Chris@16
|
198
|
Chris@16
|
199 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
200 // from subrule.hpp
|
Chris@16
|
201 template <typename FirstT, typename RestT>
|
Chris@16
|
202 std::string
|
Chris@16
|
203 parser_name(subrule_list<FirstT, RestT> const &p);
|
Chris@16
|
204
|
Chris@16
|
205 template <int ID, typename DefT, typename ContextT>
|
Chris@16
|
206 std::string
|
Chris@16
|
207 parser_name(subrule_parser<ID, DefT, ContextT> const &p);
|
Chris@16
|
208
|
Chris@16
|
209 template <int ID, typename ContextT>
|
Chris@16
|
210 std::string
|
Chris@16
|
211 parser_name(subrule<ID, ContextT> const &p);
|
Chris@16
|
212
|
Chris@16
|
213 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
214 // from chset.hpp
|
Chris@16
|
215
|
Chris@16
|
216 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
217 //
|
Chris@16
|
218 // Decide, if a node is to be traced or not
|
Chris@16
|
219 //
|
Chris@16
|
220 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
221 template<
|
Chris@16
|
222 typename DerivedT, typename EmbedT,
|
Chris@16
|
223 typename T0, typename T1, typename T2
|
Chris@16
|
224 >
|
Chris@16
|
225 bool
|
Chris@16
|
226 trace_parser(impl::rule_base<DerivedT, EmbedT, T0, T1, T2>
|
Chris@16
|
227 const& p);
|
Chris@16
|
228
|
Chris@16
|
229 template <typename DerivedT, typename ContextT>
|
Chris@16
|
230 bool
|
Chris@16
|
231 trace_parser(grammar<DerivedT, ContextT> const& p);
|
Chris@16
|
232
|
Chris@16
|
233 template <int ID, typename ContextT>
|
Chris@16
|
234 bool
|
Chris@16
|
235 trace_parser(subrule<ID, ContextT> const& p);
|
Chris@16
|
236
|
Chris@16
|
237 template <typename ParserT, typename ActorTupleT>
|
Chris@16
|
238 struct init_closure_parser;
|
Chris@16
|
239
|
Chris@16
|
240 template <typename ParserT, typename ActorTupleT>
|
Chris@16
|
241 bool
|
Chris@16
|
242 trace_parser(init_closure_parser<ParserT, ActorTupleT> const& p);
|
Chris@16
|
243
|
Chris@16
|
244 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
245 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
|
Chris@16
|
246
|
Chris@16
|
247 }} // namespace BOOST_SPIRIT_CLASSIC_NS
|
Chris@16
|
248
|
Chris@16
|
249 //////////////////////////////////
|
Chris@16
|
250 #include <boost/spirit/home/classic/debug/impl/parser_names.ipp>
|
Chris@16
|
251
|
Chris@16
|
252 #endif // defined(BOOST_SPIRIT_DEBUG)
|
Chris@16
|
253
|
Chris@16
|
254 #endif // !defined(BOOST_SPIRIT_PARSER_NAMES_HPP)
|