Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / phoenix / doc / inside / rules.qbk
1 [/==============================================================================
2     Copyright (C) 2001-2010 Joel de Guzman
3     Copyright (C) 2001-2005 Dan Marsden
4     Copyright (C) 2001-2010 Thomas Heller
5
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
10 [section:rules Predefined Expressions and Rules]
11
12 This section is the "behind the scenes" counter part of the __phoenix_modules__
13 section. A listing of all the predefined expressions and rules:
14
15 [table
16  [[Expression] [Rule] []]
17  [[`expression::value<T>`]     [``
18 rule::value
19     : expression::value<proto::_>
20 ``]]
21  [[`expression::reference<T>`] [``
22 rule::custom_terminal
23 ``]]
24  [[`expression::argument<N>`]  [``rule::argument``]]
25  [[`expression::null`]         [``rule::custom_terminal``]]
26  [[`expression::function<F, A0, ..., AN>`] [``
27 rule::function
28     : expression::function<vararg<meta_grammar> >
29 ``]]
30  [[`expression::negate<A0>`]     [``
31 rule::negate
32     : expression::negate<meta_grammar>
33 ``]]
34  [[`expression::unary_plus<A0>`] [``
35 rule::negate
36     : expression::unary_plus<meta_grammar>
37 ``]]
38  [[`expression::pre_inc<A0>`]    [``
39 rule::negate
40     : expression::pre_inc<meta_grammar>
41 ``]]
42  [[`expression::pre_dec<A0>`]    [``
43 rule::negate
44     : expression::pre_dec<meta_grammar>
45 ``]]
46  [[`expression::post_inc<A0>`]   [``
47 rule::negate
48     : expression::post_inc<meta_grammar>
49 ``]]
50  [[`expression::post_dec<A0>`]   [``
51 rule::negate
52     : expression::post_dec<meta_grammar>
53 ``]]
54  [[`expression::plus_assign<Lhs, Rhs>`] [
55 ``
56 rule::plus_assign
57     : expression::plus_assign<meta_grammar, meta_grammar>
58 ``]]
59  [[`expression::minus_assign<Lhs, Rhs>`] [``
60 rule::minus_assign
61     : expression::minus_assign<meta_grammar, meta_grammar>
62 ``]]
63  [[`expression::multiplies_assign<Lhs, Rhs>`] [``
64 rule::multiplies_assign
65     : expression::multiplies_assign<meta_grammar, meta_grammar>
66 ``]]
67  [[`expression::divides_assign<Lhs, Rhs>`] [``
68 rule::divides_assign
69     : expression::divides_assign<meta_grammar, meta_grammar>
70 ``]]
71  [[`expression::modules_assign<Lhs, Rhs>`] [``
72 rule::modules_assign
73     : expression::modules_assign<meta_grammar, meta_grammar>
74 ``]]
75  [[`expression::plus<Lhs, Rhs>`] [``
76 rule::plus
77     : expression::plus<meta_grammar, meta_grammar>
78 ``]]
79  [[`expression::minus<Lhs, Rhs>`] [``
80 rule::minus
81     : expression::minus<meta_grammar, meta_grammar>
82 ``]]
83  [[`expression::multiplies<Lhs, Rhs>`] [
84 ``
85 rule::multiplies
86     : expression::multiplies<meta_grammar, meta_grammar>
87 ``]]
88  [[`expression::divides<Lhs, Rhs>`] [``
89 rule::divides
90     : expression::divides<meta_grammar, meta_grammar>
91 ``]]
92  [[`expression::modulus<Lhs, Rhs>`] [``
93 rule::modulus
94     : expression::modulus<meta_grammar, meta_grammar>
95 ``]]
96  [[`expression::complement<A0>`] [``
97 rule::complement
98     : expression::complement<A0>
99 ``]]
100  [[`expression::bitwise_and_assign<Lhs, Rhs>`] [``
101 rule::bitwise_and_assign
102     : expression::bitwise_and_assign<meta_grammar, meta_grammar>
103 ``]]
104  [[`expression::bitwise_or_assign<Lhs, Rhs>`]  [``
105 rule::bitwise_or_assign
106     : expression::bitwise_or_assign<meta_grammar, meta_grammar>
107 ``] ]
108  [[`expression::bitwise_xor_assign<Lhs, Rhs>`] [``
109 rule::bitwise_xor_assign
110     : expression::bitwise_xor_assign<meta_grammar, meta_grammar>
111 ``]]
112  [[`expression::shift_left_assign<Lhs, Rhs>`]  [``
113 rule::shift_left_assign
114     : expression::shift_left_assign<meta_grammar, meta_grammar>
115 ``] ]
116  [[`expression::shift_right_assign<Lhs, Rhs>`] [``
117 rule::shift_right_assign
118     : expression::shift_right_assign<meta_grammar, meta_grammar>
119 ``]]
120  [[`expression::bitwise_and<Lhs, Rhs>`]        [``
121 rule::bitwise_and
122     : expression::bitwise_and<meta_grammar, meta_grammar>
123 ``]]
124  [[`expression::bitwise_or<Lhs, Rhs>`]         [``
125 rule::bitwise_or
126     : expression::bitwise_or<meta_grammar, meta_grammar>
127 ``]]
128  [[`expression::bitwise_xor<Lhs, Rhs>`]        [``
129 rule::bitwise_xor
130     : expression::bitwise_xor<meta_grammar, meta_grammar>
131 ``]]
132  [[`expression::shift_left<Lhs, Rhs>`]         [``
133 rule::shift_left
134     : expression::shift_left<meta_grammar, meta_grammar>
135 ``]]
136  [[`expression::shift_right<Lhs, Rhs>`]        [``
137 rule::shift_right
138     : expression::shift_right<meta_grammar, meta_grammar>
139 ``]]
140  [[`expression::equal_to<Lhs, Rhs>`]           [``
141 rule::equal_to
142     : expression::equal_to<meta_grammar, meta_grammar>
143 ``]]
144  [[`expression::not_equal_to<Lhs, Rhs>`]       [``
145 rule::not_equal_to
146     : expression::not_equal_to<meta_grammar, meta_grammar>
147 ``]]
148  [[`expression::less_equal_to<Lhs, Rhs>`]      [``
149 rule::less_equal_to
150     : expression::less_equal_to<meta_grammar, meta_grammar>
151 ``]]
152  [[`expression::greater_equal<Lhs, Rhs>`]      [``
153 rule::greater_equal
154     : expression::greater_equal<meta_grammar, meta_grammar>
155 ``]]
156  [[`expression::less<Lhs, Rhs>`]               [``
157 rule::less
158     : expression::less<meta_grammar, meta_grammar>
159 ``]]
160  [[`expression::greater<Lhs, Rhs>`]            [``
161 rule::greater
162     : expression::greater<meta_grammar, meta_grammar>
163 ``]]
164  [[`expression::if_else_operator<Cond, Then, Else>`] [``
165 rule::if_else
166     : expression::if_else<meta_grammar, meta_grammar, meta_grammar>
167 ``]]
168  [[`expression::logical_not<A0>`] [``
169 rule::logical_not
170     : expression::logical_not<meta_grammar>
171 ``]]
172  [[`expression::logical_and<Lhs, Rhs>`] [``
173 rule::logical_and
174     : expression::logical_and<meta_grammar, meta_grammar>
175 ``]]
176  [[`expression::logical_or<Lhs, Rhs>`] [``
177 rule::logical_or
178     : expression::logical_or<meta_grammar, meta_grammar>
179 ``]]
180  [[`expression::mem_fun_ptr<Object, MemPtr, A0, ..., AN>`] [``
181 rule::mem_fun_ptr
182     : expression::mem_fun_ptr<meta_grammar, meta_grammar, vararg<meta_grammar> >
183 ``]]
184  [[`expression::address_of<A0>`] [``
185 rule::address_of
186     : expression::address_of<meta_grammar>
187 ``]]
188  [[`expression::dereference<A0>`] [``
189 rule::dereference
190     : expression::dereference<meta_grammar>
191 ``]]
192  [[`expression::assign<Lhs, Rhs>`] [``
193 rule::assign
194     : expression::assign<meta_grammar, meta_grammar>
195 ``]]
196  [[`expression::subscript<Lhs, Rhs>`] [``
197 rule::subscript 
198     : expression::subscript<meta_grammar, meta_grammar>
199 ``]]
200  [[`expression::sequence<A0, A1>`] [``
201 rule::sequence
202     : expression::sequence<meta_grammar, meta_grammar>
203 ``]]
204  [[`expression::if_<Cond, Then>`] [``
205 rule::if_
206     : expression::if_<meta_grammar, meta_grammar>
207 ``]]
208  [[`expression::if_else_statement<Cond, Then, Else>`] [``
209 rule::if_else_statement
210     : expression::if_else_statement<meta_grammar, meta_grammar, meta_grammar>
211 ``]]
212  [[`expression::switch_case<Label, Statement>`] [``
213 rule::switch_case
214     : expression::switch_case< terminal<mpl::int_<N> >, meta_grammar>
215 ``]]
216  [[`expression::switch_default_case<Statement>`] [``
217 rule::switch_default_case
218     : expression::switch_default_case<meta_grammar>
219 ``]]
220  [[`expression::switch_<Cond, Cases>`] [``
221 rule::switch_
222     : expression::switch_<
223         meta_grammar
224       , switch_grammar
225     >
226 ``]]
227  [[`expression::while_<Cond, Do>`] [``
228 rule::while_
229     : expression::while_<
230         meta_grammar
231       , meta_grammar
232     >
233 ``]]
234  [[`expression::do_while<Cond, Do>`] [``
235 rule::do_while
236     : expression::do_while<
237         meta_grammar
238       , meta_grammar
239     >
240 ``]]
241  [[`expression::for_<Init, Cond, Step, Do>`] [``
242 rule::for_
243     : expression::for_<
244         meta_grammar
245       , meta_grammar
246       , meta_grammar
247       , meta_grammar
248     >
249 ``]]
250  [[`expression::catch_<Exception, Statement>`] [``
251 rule::catch_
252     : expression::catch_<
253         catch_exception<proto::_>
254       , meta_grammar
255     >
256 ``]]
257  [[`expression::catch_all<Statement>`] [``
258 rule::catch_all
259     : expression::catch_<meta_grammar>
260 ``]]
261  [
262   [`expression::try_catch<Try, Catch0, ..., CatchN>`]
263   [``
264 rule::try_catch
265     : proto::or_<
266         expression::try_catch<
267             meta_grammar
268           , vararg<rule::catch_>
269         >
270       , expression::try_catch<
271             meta_grammar
272           , vararg<rule::catch_>
273           , rule::catch_all
274         >
275       , expression::try_catch<
276             meta_grammar
277           , catch_all
278         >
279     >
280 ``]]
281  [[`expression::throw_<A0>`] [``
282 rule::throw_
283     : expression::throw_<meta_grammar>
284 ``]]
285  [[`expression::construct<Target, A0, ..., AN>`] [``
286  rule::construct
287     : expression::construct<
288         terminal<detail::target<proto::_> >
289       , A0
290         ...
291       , AN
292     >
293  ``]]
294  [[`expression::new_<Target, A0, ..., AN>`] [``
295  rule::new_
296     : expression::new_<
297         terminal<detail::target<proto::_> >
298       , A0
299         ...
300       , AN
301     >
302  ``]]
303  [[`expression::delete_<A0>`] [``
304 rule::delete_
305       : expression::delete_<meta_grammar>
306 ``]]
307  [[`expression::static_cast_<Target, A>`] [``
308  rule::static_cast_
309     : expression::static_cast_<
310         terminal<detail::target<proto::_> >
311       , A
312     >
313  ``]]
314  [[`expression::dynamic_cast_<Target, A>`] [``
315  rule::dynamic_cast_
316     : expression::dynamic_cast_<
317         terminal<detail::target<proto::_> >
318       , A
319     >
320  ``]]
321  [[`expression::reinterpret_cast_<Target, A>`] [``
322  rule::reinterpret_cast_
323     : expression::reinterpret_cast_<
324         terminal<detail::target<proto::_> >
325       , A
326     >
327  ``]]
328  [[`expression::const_cast_<Target, A>`] [``
329  rule::const_cast_
330     : expression::const_cast_<
331         terminal<detail::target<proto::_> >
332       , A
333     >
334  ``]]
335  [[`expression::local_variable<Key>`] [``rule::custom_terminal``]]
336  [[`expression::let<Locals, Statement>`] [
337 ``
338 rule::let
339     : expression::let<terminal<proto::_>, meta_grammar>
340 ``]]
341  [[`expression::lambda<OuterEnv, Locals, Statement>`] [
342 ``
343 rule::lambda
344     : expression::lambda<terminal<proto::_>, terminal<proto::_>, meta_grammar>
345 ``]]
346  [[`expression::lambda_actor<Locals, Statement>`] [
347 ``
348 rule::lambda_actor
349     : expression::lambda_actor<terminal<proto::_>, meta_grammar>
350 ``]]
351 ]
352
353 [endsect]