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 12This section is the "behind the scenes" counter part of the __phoenix_modules__ 13section. A listing of all the predefined expressions and rules: 14 15[table 16 [[Expression] [Rule] []] 17 [[`expression::value<T>`] [`` 18rule::value 19 : expression::value<proto::_> 20``]] 21 [[`expression::reference<T>`] [`` 22rule::custom_terminal 23``]] 24 [[`expression::argument<N>`] [``rule::argument``]] 25 [[`expression::null`] [``rule::custom_terminal``]] 26 [[`expression::function<F, A0, ..., AN>`] [`` 27rule::function 28 : expression::function<vararg<meta_grammar> > 29``]] 30 [[`expression::negate<A0>`] [`` 31rule::negate 32 : expression::negate<meta_grammar> 33``]] 34 [[`expression::unary_plus<A0>`] [`` 35rule::negate 36 : expression::unary_plus<meta_grammar> 37``]] 38 [[`expression::pre_inc<A0>`] [`` 39rule::negate 40 : expression::pre_inc<meta_grammar> 41``]] 42 [[`expression::pre_dec<A0>`] [`` 43rule::negate 44 : expression::pre_dec<meta_grammar> 45``]] 46 [[`expression::post_inc<A0>`] [`` 47rule::negate 48 : expression::post_inc<meta_grammar> 49``]] 50 [[`expression::post_dec<A0>`] [`` 51rule::negate 52 : expression::post_dec<meta_grammar> 53``]] 54 [[`expression::plus_assign<Lhs, Rhs>`] [ 55`` 56rule::plus_assign 57 : expression::plus_assign<meta_grammar, meta_grammar> 58``]] 59 [[`expression::minus_assign<Lhs, Rhs>`] [`` 60rule::minus_assign 61 : expression::minus_assign<meta_grammar, meta_grammar> 62``]] 63 [[`expression::multiplies_assign<Lhs, Rhs>`] [`` 64rule::multiplies_assign 65 : expression::multiplies_assign<meta_grammar, meta_grammar> 66``]] 67 [[`expression::divides_assign<Lhs, Rhs>`] [`` 68rule::divides_assign 69 : expression::divides_assign<meta_grammar, meta_grammar> 70``]] 71 [[`expression::modules_assign<Lhs, Rhs>`] [`` 72rule::modules_assign 73 : expression::modules_assign<meta_grammar, meta_grammar> 74``]] 75 [[`expression::plus<Lhs, Rhs>`] [`` 76rule::plus 77 : expression::plus<meta_grammar, meta_grammar> 78``]] 79 [[`expression::minus<Lhs, Rhs>`] [`` 80rule::minus 81 : expression::minus<meta_grammar, meta_grammar> 82``]] 83 [[`expression::multiplies<Lhs, Rhs>`] [ 84`` 85rule::multiplies 86 : expression::multiplies<meta_grammar, meta_grammar> 87``]] 88 [[`expression::divides<Lhs, Rhs>`] [`` 89rule::divides 90 : expression::divides<meta_grammar, meta_grammar> 91``]] 92 [[`expression::modulus<Lhs, Rhs>`] [`` 93rule::modulus 94 : expression::modulus<meta_grammar, meta_grammar> 95``]] 96 [[`expression::complement<A0>`] [`` 97rule::complement 98 : expression::complement<A0> 99``]] 100 [[`expression::bitwise_and_assign<Lhs, Rhs>`] [`` 101rule::bitwise_and_assign 102 : expression::bitwise_and_assign<meta_grammar, meta_grammar> 103``]] 104 [[`expression::bitwise_or_assign<Lhs, Rhs>`] [`` 105rule::bitwise_or_assign 106 : expression::bitwise_or_assign<meta_grammar, meta_grammar> 107``] ] 108 [[`expression::bitwise_xor_assign<Lhs, Rhs>`] [`` 109rule::bitwise_xor_assign 110 : expression::bitwise_xor_assign<meta_grammar, meta_grammar> 111``]] 112 [[`expression::shift_left_assign<Lhs, Rhs>`] [`` 113rule::shift_left_assign 114 : expression::shift_left_assign<meta_grammar, meta_grammar> 115``] ] 116 [[`expression::shift_right_assign<Lhs, Rhs>`] [`` 117rule::shift_right_assign 118 : expression::shift_right_assign<meta_grammar, meta_grammar> 119``]] 120 [[`expression::bitwise_and<Lhs, Rhs>`] [`` 121rule::bitwise_and 122 : expression::bitwise_and<meta_grammar, meta_grammar> 123``]] 124 [[`expression::bitwise_or<Lhs, Rhs>`] [`` 125rule::bitwise_or 126 : expression::bitwise_or<meta_grammar, meta_grammar> 127``]] 128 [[`expression::bitwise_xor<Lhs, Rhs>`] [`` 129rule::bitwise_xor 130 : expression::bitwise_xor<meta_grammar, meta_grammar> 131``]] 132 [[`expression::shift_left<Lhs, Rhs>`] [`` 133rule::shift_left 134 : expression::shift_left<meta_grammar, meta_grammar> 135``]] 136 [[`expression::shift_right<Lhs, Rhs>`] [`` 137rule::shift_right 138 : expression::shift_right<meta_grammar, meta_grammar> 139``]] 140 [[`expression::equal_to<Lhs, Rhs>`] [`` 141rule::equal_to 142 : expression::equal_to<meta_grammar, meta_grammar> 143``]] 144 [[`expression::not_equal_to<Lhs, Rhs>`] [`` 145rule::not_equal_to 146 : expression::not_equal_to<meta_grammar, meta_grammar> 147``]] 148 [[`expression::less_equal_to<Lhs, Rhs>`] [`` 149rule::less_equal_to 150 : expression::less_equal_to<meta_grammar, meta_grammar> 151``]] 152 [[`expression::greater_equal<Lhs, Rhs>`] [`` 153rule::greater_equal 154 : expression::greater_equal<meta_grammar, meta_grammar> 155``]] 156 [[`expression::less<Lhs, Rhs>`] [`` 157rule::less 158 : expression::less<meta_grammar, meta_grammar> 159``]] 160 [[`expression::greater<Lhs, Rhs>`] [`` 161rule::greater 162 : expression::greater<meta_grammar, meta_grammar> 163``]] 164 [[`expression::if_else_operator<Cond, Then, Else>`] [`` 165rule::if_else 166 : expression::if_else<meta_grammar, meta_grammar, meta_grammar> 167``]] 168 [[`expression::logical_not<A0>`] [`` 169rule::logical_not 170 : expression::logical_not<meta_grammar> 171``]] 172 [[`expression::logical_and<Lhs, Rhs>`] [`` 173rule::logical_and 174 : expression::logical_and<meta_grammar, meta_grammar> 175``]] 176 [[`expression::logical_or<Lhs, Rhs>`] [`` 177rule::logical_or 178 : expression::logical_or<meta_grammar, meta_grammar> 179``]] 180 [[`expression::mem_fun_ptr<Object, MemPtr, A0, ..., AN>`] [`` 181rule::mem_fun_ptr 182 : expression::mem_fun_ptr<meta_grammar, meta_grammar, vararg<meta_grammar> > 183``]] 184 [[`expression::address_of<A0>`] [`` 185rule::address_of 186 : expression::address_of<meta_grammar> 187``]] 188 [[`expression::dereference<A0>`] [`` 189rule::dereference 190 : expression::dereference<meta_grammar> 191``]] 192 [[`expression::assign<Lhs, Rhs>`] [`` 193rule::assign 194 : expression::assign<meta_grammar, meta_grammar> 195``]] 196 [[`expression::subscript<Lhs, Rhs>`] [`` 197rule::subscript 198 : expression::subscript<meta_grammar, meta_grammar> 199``]] 200 [[`expression::sequence<A0, A1>`] [`` 201rule::sequence 202 : expression::sequence<meta_grammar, meta_grammar> 203``]] 204 [[`expression::if_<Cond, Then>`] [`` 205rule::if_ 206 : expression::if_<meta_grammar, meta_grammar> 207``]] 208 [[`expression::if_else_statement<Cond, Then, Else>`] [`` 209rule::if_else_statement 210 : expression::if_else_statement<meta_grammar, meta_grammar, meta_grammar> 211``]] 212 [[`expression::switch_case<Label, Statement>`] [`` 213rule::switch_case 214 : expression::switch_case< terminal<mpl::int_<N> >, meta_grammar> 215``]] 216 [[`expression::switch_default_case<Statement>`] [`` 217rule::switch_default_case 218 : expression::switch_default_case<meta_grammar> 219``]] 220 [[`expression::switch_<Cond, Cases>`] [`` 221rule::switch_ 222 : expression::switch_< 223 meta_grammar 224 , switch_grammar 225 > 226``]] 227 [[`expression::while_<Cond, Do>`] [`` 228rule::while_ 229 : expression::while_< 230 meta_grammar 231 , meta_grammar 232 > 233``]] 234 [[`expression::do_while<Cond, Do>`] [`` 235rule::do_while 236 : expression::do_while< 237 meta_grammar 238 , meta_grammar 239 > 240``]] 241 [[`expression::for_<Init, Cond, Step, Do>`] [`` 242rule::for_ 243 : expression::for_< 244 meta_grammar 245 , meta_grammar 246 , meta_grammar 247 , meta_grammar 248 > 249``]] 250 [[`expression::catch_<Exception, Statement>`] [`` 251rule::catch_ 252 : expression::catch_< 253 catch_exception<proto::_> 254 , meta_grammar 255 > 256``]] 257 [[`expression::catch_all<Statement>`] [`` 258rule::catch_all 259 : expression::catch_<meta_grammar> 260``]] 261 [ 262 [`expression::try_catch<Try, Catch0, ..., CatchN>`] 263 [`` 264rule::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>`] [`` 282rule::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>`] [`` 304rule::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`` 338rule::let 339 : expression::let<terminal<proto::_>, meta_grammar> 340``]] 341 [[`expression::lambda<OuterEnv, Locals, Statement>`] [ 342`` 343rule::lambda 344 : expression::lambda<terminal<proto::_>, terminal<proto::_>, meta_grammar> 345``]] 346 [[`expression::lambda_actor<Locals, Statement>`] [ 347`` 348rule::lambda_actor 349 : expression::lambda_actor<terminal<proto::_>, meta_grammar> 350``]] 351] 352 353[endsect] 354