Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71771 - branches/msm/msm_phoenix/boost/msm/front/euml
From: christophe.j.henry_at_[hidden]
Date: 2011-05-06 17:30:46


Author: chenry
Date: 2011-05-06 17:30:46 EDT (Fri, 06 May 2011)
New Revision: 71771
URL: http://svn.boost.org/trac/boost/changeset/71771

Log:
improved phoenix support: entry/exit actions, mixing grammars
Text files modified:
   branches/msm/msm_phoenix/boost/msm/front/euml/state_grammar.hpp | 471 +++++++++++++++++++++------------------
   branches/msm/msm_phoenix/boost/msm/front/euml/stt_grammar.hpp | 36 +-
   2 files changed, 274 insertions(+), 233 deletions(-)

Modified: branches/msm/msm_phoenix/boost/msm/front/euml/state_grammar.hpp
==============================================================================
--- branches/msm/msm_phoenix/boost/msm/front/euml/state_grammar.hpp (original)
+++ branches/msm/msm_phoenix/boost/msm/front/euml/state_grammar.hpp 2011-05-06 17:30:46 EDT (Fri, 06 May 2011)
@@ -210,6 +210,45 @@
>
 {};
 
+struct my_custom_phoenix_grammar
+ : proto::switch_<my_custom_phoenix_grammar>
+{
+ template <typename Tag, typename Dummy = void>
+ struct case_
+ : proto::and_<
+ proto::not_<BuildGuards> ,
+ proto::not_<BuildActionSequence>,
+ boost::phoenix::meta_grammar::case_<Tag>
+ >
+ {};
+};
+
+struct GuardGrammar
+ : proto::or_<
+ proto::when<
+ my_custom_phoenix_grammar ,
+ proto::_
+ >,
+ proto::when<
+ BuildGuards ,
+ BuildGuards
+ >
+ >
+ {};
+
+struct ActionGrammar
+ : proto::or_<
+ proto::when<
+ my_custom_phoenix_grammar ,
+ proto::_
+ >,
+ proto::when<
+ BuildActionSequence ,
+ BuildActionSequence
+ >
+ >
+ {};
+
 struct BuildActionsCases
 {
     // The primary template matches nothing:
@@ -673,12 +712,12 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -687,8 +726,8 @@
>
 build_state(Expr1 const& ,Expr2 const& , Attr const&, Configure const&, BASE )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
@@ -700,12 +739,12 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -713,8 +752,8 @@
>
 build_state(Expr1 const& ,Expr2 const& ,Attr const&, Configure const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
@@ -726,19 +765,19 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type
>
 build_state(Expr1 const& ,Expr2 const& ,Attr const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return func_state<StateNameTag,entry_action,exit_action,attributes_type>();
 }
@@ -748,18 +787,18 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type
>
 build_state(Expr1 const& ,Expr2 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     return func_state<StateNameTag,entry_action,exit_action>();
 }
 
@@ -768,14 +807,14 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 NoAction
>
 build_state(Expr1 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
     return func_state<StateNameTag,entry_action,NoAction>();
 }
 template<class StateNameTag>
@@ -874,13 +913,13 @@
 STT,
 typename boost::result_of<BuildInit(Init)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type
>
 build_sm(STT ,Init , Expr1 const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
     typedef typename boost::result_of<BuildInit(Init)>::type init_type;
     return func_state_machine<StateNameTag,STT,init_type,entry_action>();
 }
@@ -892,19 +931,19 @@
 STT,
 typename boost::result_of<BuildInit(Init)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type
>
 build_sm(STT ,Init , Expr1 const& ,Expr2 const& )
 {
     typedef typename boost::result_of<BuildInit(Init)>::type init_type;
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     return func_state_machine<StateNameTag,STT,init_type,entry_action,exit_action>();
 }
 
@@ -915,20 +954,20 @@
 STT,
 typename boost::result_of<BuildInit(Init)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type
>
 build_sm(STT ,Init , Expr1 const& ,Expr2 const& ,Attr const&)
 {
     typedef typename boost::result_of<BuildInit(Init)>::type init_type;
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return func_state_machine<StateNameTag,STT,init_type,entry_action,exit_action,attributes_type>();
 }
@@ -940,12 +979,12 @@
 STT,
 typename boost::result_of<BuildInit(Init)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -955,8 +994,8 @@
 build_sm(STT ,Init , Expr1 const& ,Expr2 const& , Attr const&, Configure const& )
 {
     typedef typename boost::result_of<BuildInit(Init)>::type init_type;
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
@@ -973,28 +1012,28 @@
 STT,
 typename boost::result_of<BuildInit(Init)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
 typename boost::result_of<BuildDeferred(Configure)>::type,
 typename boost::result_of<BuildConfigure(Configure)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr3,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr3)>,
+ typename proto::matches<Expr3,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr3)>,
     make_invalid_type>::type
>
 build_sm(STT ,Init , Expr1 const& ,Expr2 const& ,Attr const&, Configure const&, Expr3 const& )
 {
     typedef typename boost::result_of<BuildInit(Init)>::type init_type;
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
- typedef typename boost::result_of<BuildActionSequence(Expr3)>::type no_transition_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr3)>::type no_transition_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
@@ -1010,36 +1049,36 @@
 STT,
 typename boost::result_of<BuildInit(Init)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
 typename boost::result_of<BuildDeferred(Configure)>::type,
 typename boost::result_of<BuildConfigure(Configure)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr3,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr3)>,
+ typename proto::matches<Expr3,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr3)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr4,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr4)>,
+ typename proto::matches<Expr4,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr4)>,
     make_invalid_type>::type
>
 build_sm(STT ,Init , Expr1 const& ,Expr2 const& , Attr const&, Configure const&, Expr3 const&, Expr4 const& )
 {
     typedef typename boost::result_of<BuildInit(Init)>::type init_type;
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildConfigure(Configure)>::type config_type;
- typedef typename boost::result_of<BuildActionSequence(Expr3)>::type no_transition_action;
- typedef typename boost::result_of<BuildActionSequence(Expr4)>::type on_exception_action;
+ typedef typename boost::result_of<ActionGrammar(Expr3)>::type no_transition_action;
+ typedef typename boost::result_of<ActionGrammar(Expr4)>::type on_exception_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return func_state_machine<StateNameTag,STT,init_type,entry_action,exit_action,attributes_type,flags_type,deferred_type,
                               config_type,no_transition_action,on_exception_action>();
@@ -1052,37 +1091,37 @@
 STT,
 typename boost::result_of<BuildInit(Init)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
 typename boost::result_of<BuildDeferred(Configure)>::type,
 typename boost::result_of<BuildConfigure(Configure)>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr3,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr3)>,
+ typename proto::matches<Expr3,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr3)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr4,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr4)>,
+ typename proto::matches<Expr4,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr4)>,
     make_invalid_type>::type,
 BASE
>
 build_sm(STT ,Init , Expr1 const& ,Expr2 const& ,Attr const& , Configure const&, Expr3 const&, Expr4 const& , BASE )
 {
     typedef typename boost::result_of<BuildInit(Init)>::type init_type;
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildConfigure(Configure)>::type config_type;
- typedef typename boost::result_of<BuildActionSequence(Expr3)>::type no_transition_action;
- typedef typename boost::result_of<BuildActionSequence(Expr4)>::type on_exception_action;
+ typedef typename boost::result_of<ActionGrammar(Expr3)>::type no_transition_action;
+ typedef typename boost::result_of<ActionGrammar(Expr4)>::type on_exception_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return func_state_machine<StateNameTag,STT,init_type,entry_action,exit_action,attributes_type,flags_type,deferred_type,
                               config_type,no_transition_action,on_exception_action,BASE>();
@@ -1101,12 +1140,12 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename ::boost::mpl::push_back< typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1116,8 +1155,8 @@
>
 build_terminate_state(Expr1 const& ,Expr2 const& , Attr const&, Configure const&, BASE )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename ::boost::mpl::push_back<
         typename boost::result_of<BuildFlags(Configure)>::type,
         ::boost::msm::TerminateFlag >::type flags_type;
@@ -1131,12 +1170,12 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename ::boost::mpl::push_back< typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1145,8 +1184,8 @@
>
 build_terminate_state(Expr1 const& ,Expr2 const& ,Attr const&, Configure const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename ::boost::mpl::push_back<
         typename boost::result_of<BuildFlags(Configure)>::type,
         ::boost::msm::TerminateFlag >::type flags_type;
@@ -1161,20 +1200,20 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 ::boost::mpl::vector<boost::msm::TerminateFlag>
>
 build_terminate_state(Expr1 const& ,Expr2 const& ,Attr const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return func_state<StateNameTag,entry_action,exit_action,attributes_type, ::boost::mpl::vector< ::boost::msm::TerminateFlag> >();
 }
@@ -1184,20 +1223,20 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 ::boost::fusion::vector<>,
 ::boost::mpl::vector<boost::msm::TerminateFlag>
>
 build_terminate_state(Expr1 const& ,Expr2 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     return func_state<StateNameTag,entry_action,exit_action,
                       ::boost::fusion::vector<>, ::boost::mpl::vector< ::boost::msm::TerminateFlag> >();
 }
@@ -1207,8 +1246,8 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 NoAction,
 ::boost::fusion::vector<>,
@@ -1216,7 +1255,7 @@
>
 build_terminate_state(Expr1 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
     return func_state<StateNameTag,entry_action,NoAction,::boost::fusion::vector<>,::boost::mpl::vector<boost::msm::TerminateFlag> >();
 }
 template<class StateNameTag>
@@ -1238,12 +1277,12 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename ::boost::mpl::push_back<
@@ -1256,8 +1295,8 @@
>
 build_interrupt_state(EndInterruptEvent const&,Expr1 const& ,Expr2 const& , Attr const&, Configure const&, BASE )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     typedef typename ::boost::mpl::push_back<
                 typename ::boost::mpl::push_back<
@@ -1274,12 +1313,12 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename ::boost::mpl::push_back<
@@ -1291,8 +1330,8 @@
>
 build_interrupt_state(EndInterruptEvent const&,Expr1 const& ,Expr2 const& ,Attr const&, Configure const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
 
     typedef typename ::boost::mpl::push_back<
@@ -1311,20 +1350,20 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 ::boost::mpl::vector<boost::msm::InterruptedFlag, boost::msm::EndInterruptFlag<EndInterruptEvent> >
>
 build_interrupt_state(EndInterruptEvent const&,Expr1 const& ,Expr2 const& ,Attr const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return func_state<StateNameTag,entry_action,exit_action,attributes_type,
                      ::boost::mpl::vector< boost::msm::InterruptedFlag, boost::msm::EndInterruptFlag<EndInterruptEvent> > >();
@@ -1335,20 +1374,20 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 ::boost::fusion::vector<>,
 ::boost::mpl::vector<boost::msm::InterruptedFlag, boost::msm::EndInterruptFlag<EndInterruptEvent> >
>
 build_interrupt_state(EndInterruptEvent const&,Expr1 const& ,Expr2 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     return func_state<StateNameTag,entry_action,exit_action,
                       ::boost::fusion::vector<>,
                       ::boost::mpl::vector< boost::msm::InterruptedFlag, boost::msm::EndInterruptFlag<EndInterruptEvent> > >();
@@ -1359,8 +1398,8 @@
 func_state<
 StateNameTag,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 NoAction,
 ::boost::fusion::vector<>,
@@ -1368,7 +1407,7 @@
>
 build_interrupt_state(EndInterruptEvent const&, Expr1 const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
     return func_state<StateNameTag,entry_action,NoAction, ::boost::fusion::vector<>,
                      ::boost::mpl::vector<boost::msm::InterruptedFlag, boost::msm::EndInterruptFlag<EndInterruptEvent> > >();
 }
@@ -1394,12 +1433,12 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1408,8 +1447,8 @@
>
 build_entry_state(Expr1 const& ,Expr2 const& , Attr const&, Configure const&, BASE )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
@@ -1422,12 +1461,12 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1435,8 +1474,8 @@
>
 build_entry_state(Expr1 const& ,Expr2 const& ,Attr const&, Configure const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
@@ -1449,19 +1488,19 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type
>
 build_entry_state(Expr1 const& ,Expr2 const& ,Attr const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return entry_func_state<StateNameTag,ZoneIndex,entry_action,exit_action,attributes_type>();
 }
@@ -1472,18 +1511,18 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type
>
 build_entry_state(Expr1 const& ,Expr2 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     return entry_func_state<StateNameTag,ZoneIndex,entry_action,exit_action>();
 }
 
@@ -1493,14 +1532,14 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 NoAction
>
 build_entry_state(Expr1 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
     return entry_func_state<StateNameTag,ZoneIndex,entry_action,NoAction>();
 }
 
@@ -1523,12 +1562,12 @@
 StateNameTag,
 Event,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1537,8 +1576,8 @@
>
 build_exit_state(Event const&,Expr1 const& ,Expr2 const& , Attr const&, Configure const&, BASE )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
@@ -1551,12 +1590,12 @@
 StateNameTag,
 Event,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1564,8 +1603,8 @@
>
 build_exit_state(Event const&,Expr1 const& ,Expr2 const& ,Attr const&, Configure const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
@@ -1578,19 +1617,19 @@
 StateNameTag,
 Event,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type
>
 build_exit_state(Event const&,Expr1 const& ,Expr2 const& ,Attr const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return exit_func_state<StateNameTag,Event,entry_action,exit_action,attributes_type>();
 }
@@ -1601,18 +1640,18 @@
 StateNameTag,
 Event,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type
>
 build_exit_state(Event const&,Expr1 const& ,Expr2 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     return exit_func_state<StateNameTag,Event,entry_action,exit_action>();
 }
 
@@ -1622,14 +1661,14 @@
 StateNameTag,
 Event,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 NoAction
>
 build_exit_state(Event const&, Expr1 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
     return exit_func_state<StateNameTag,Event,entry_action,NoAction>();
 }
 
@@ -1652,12 +1691,12 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1666,8 +1705,8 @@
>
 build_explicit_entry_state(Expr1 const& ,Expr2 const& , Attr const&, Configure const&, BASE )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
@@ -1680,12 +1719,12 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type,
 typename boost::result_of<BuildFlags(Configure)>::type,
@@ -1693,8 +1732,8 @@
>
 build_explicit_entry_state(Expr1 const& ,Expr2 const& ,Attr const&, Configure const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildFlags(Configure)>::type flags_type;
     typedef typename boost::result_of<BuildDeferred(Configure)>::type deferred_type;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
@@ -1707,19 +1746,19 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type,
 typename boost::result_of<BuildAttributes(Attr)>::type
>
 build_explicit_entry_state(Expr1 const& ,Expr2 const& ,Attr const&)
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     typedef typename boost::result_of<BuildAttributes(Attr)>::type attributes_type;
     return explicit_entry_func_state<StateNameTag,ZoneIndex,entry_action,exit_action,attributes_type>();
 }
@@ -1730,18 +1769,18 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr2,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr2)>,
+ typename proto::matches<Expr2,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr2)>,
     make_invalid_type>::type
>
 build_explicit_entry_state(Expr1 const& ,Expr2 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
- typedef typename boost::result_of<BuildActionSequence(Expr2)>::type exit_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr2)>::type exit_action;
     return explicit_entry_func_state<StateNameTag,ZoneIndex,entry_action,exit_action>();
 }
 
@@ -1751,14 +1790,14 @@
 StateNameTag,
 ZoneIndex,
 typename ::boost::mpl::eval_if<
- typename proto::matches<Expr1,BuildActionSequence>::type,
- boost::result_of<BuildActionSequence(Expr1)>,
+ typename proto::matches<Expr1,ActionGrammar>::type,
+ boost::result_of<ActionGrammar(Expr1)>,
     make_invalid_type>::type,
 NoAction
>
 build_explicit_entry_state(Expr1 const& )
 {
- typedef typename boost::result_of<BuildActionSequence(Expr1)>::type entry_action;
+ typedef typename boost::result_of<ActionGrammar(Expr1)>::type entry_action;
     return explicit_entry_func_state<StateNameTag,ZoneIndex,entry_action,NoAction>();
 }
 

Modified: branches/msm/msm_phoenix/boost/msm/front/euml/stt_grammar.hpp
==============================================================================
--- branches/msm/msm_phoenix/boost/msm/front/euml/stt_grammar.hpp (original)
+++ branches/msm/msm_phoenix/boost/msm/front/euml/stt_grammar.hpp 2011-05-06 17:30:46 EDT (Fri, 06 May 2011)
@@ -109,10 +109,12 @@
 };
 
 struct BuildEventPlusGuard
- : proto::when<
- proto::subscript<proto::terminal<event_tag>, boost::phoenix::meta_grammar >,
- TempRow<none,proto::_left,none,none, proto::_right>(proto::_right)
+ : proto::or_<
+ proto::when<
+ proto::subscript<proto::terminal<event_tag>, GuardGrammar >,
+ TempRow<none,proto::_left,none,none, GuardGrammar(proto::_right)>(proto::_right)
>
+ >
  {};
 
 struct BuildSourceState
@@ -130,8 +132,8 @@
 
 struct BuildSourcePlusGuard
     : proto::when<
- proto::subscript<BuildSourceState,boost::phoenix::meta_grammar >,
- TempRow<BuildSourceState(proto::_left),none,none,none,proto::_right>(proto::_right)
+ proto::subscript<BuildSourceState,GuardGrammar >,
+ TempRow<BuildSourceState(proto::_left),none,none,none,GuardGrammar(proto::_right)>(proto::_right)
>
 {};
 
@@ -143,17 +145,17 @@
                 TempRow<none,proto::_,none>() >
         // event / action
        , proto::when<
- proto::divides<proto::terminal<event_tag>,boost::phoenix::meta_grammar >,
- TempRow<none,proto::_left,none,proto::_right >(proto::_right) >
+ proto::divides<proto::terminal<event_tag>,ActionGrammar >,
+ TempRow<none,proto::_left,none,ActionGrammar(proto::_right) >(proto::_right) >
         // event [ guard ]
        , proto::when<
- proto::subscript<proto::terminal<event_tag>,boost::phoenix::meta_grammar >,
- TempRow<none,proto::_left,none,none,proto::_right>(proto::_right) >
+ proto::subscript<proto::terminal<event_tag>,GuardGrammar >,
+ TempRow<none,proto::_left,none,none,GuardGrammar(proto::_right)>(proto::_right) >
         // event [ guard ] / action
        , proto::when<
- proto::divides<BuildEventPlusGuard, boost::phoenix::meta_grammar>,
+ proto::divides<BuildEventPlusGuard, ActionGrammar>,
                 fusion_event_action_guard<BuildEventPlusGuard(proto::_left),
- TempRow<none,none,none,proto::_right>(proto::_right)
+ TempRow<none,none,none,ActionGrammar(proto::_right)>(proto::_right)
>()
>
>
@@ -166,18 +168,18 @@
                 TempRow<BuildSourceState(proto::_),none,none>() >
         // == source / action
        , proto::when<
- proto::divides<BuildSourceState,boost::phoenix::meta_grammar >,
- TempRow<BuildSourceState(proto::_left),none,none,proto::_right >(proto::_right) >
+ proto::divides<BuildSourceState,ActionGrammar >,
+ TempRow<BuildSourceState(proto::_left),none,none,ActionGrammar(proto::_right) >(proto::_right) >
         // == source [ guard ]
        , proto::when<
- proto::subscript<BuildSourceState,boost::phoenix::meta_grammar >,
- TempRow<BuildSourceState(proto::_left),none,none,none,proto::_right>(proto::_right) >
+ proto::subscript<BuildSourceState,GuardGrammar >,
+ TempRow<BuildSourceState(proto::_left),none,none,none,GuardGrammar(proto::_right)>(proto::_right) >
         // == source [ guard ] / action
        , proto::when<
                 proto::divides<BuildSourcePlusGuard,
- boost::phoenix::meta_grammar >,
+ ActionGrammar >,
                 fusion_source_action_guard<BuildSourcePlusGuard(proto::_left),
- TempRow<none,none,none,proto::_right>(proto::_right)
+ TempRow<none,none,none,ActionGrammar(proto::_right)>(proto::_right)
>()
>
>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk