rules.qbk 9.6 KB

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