Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71881 - in trunk/boost/msm: . back front front/detail front/euml
From: christophe.j.henry_at_[hidden]
Date: 2011-05-11 17:59:41


Author: chenry
Date: 2011-05-11 17:59:40 EDT (Wed, 11 May 2011)
New Revision: 71881
URL: http://svn.boost.org/trac/boost/changeset/71881

Log:
reintegrated phoenix support branch
Added:
   trunk/boost/msm/front/euml/phoenix_placeholders.hpp (props changed)
      - copied unchanged from r71852, /branches/msm/msm_phoenix/boost/msm/front/euml/phoenix_placeholders.hpp
Properties modified:
   trunk/boost/msm/ (props changed)
   trunk/boost/msm/back/ (props changed)
   trunk/boost/msm/back/any_event.hpp (props changed)
   trunk/boost/msm/back/args.hpp (props changed)
   trunk/boost/msm/back/bind_helpers.hpp (props changed)
   trunk/boost/msm/back/common_types.hpp (props changed)
   trunk/boost/msm/back/copy_policies.hpp (props changed)
   trunk/boost/msm/back/default_compile_policy.hpp (props changed)
   trunk/boost/msm/back/dispatch_table.hpp (props changed)
   trunk/boost/msm/back/favor_compile_time.hpp (props changed)
   trunk/boost/msm/back/fold_to_list.hpp (props changed)
   trunk/boost/msm/back/history_policies.hpp (props changed)
   trunk/boost/msm/back/metafunctions.hpp (props changed)
   trunk/boost/msm/back/mpl_graph_fsm_check.hpp (props changed)
   trunk/boost/msm/back/no_fsm_check.hpp (props changed)
   trunk/boost/msm/back/queue_container_circular.hpp (props changed)
   trunk/boost/msm/back/queue_container_deque.hpp (props changed)
   trunk/boost/msm/back/state_machine.hpp (props changed)
   trunk/boost/msm/back/tools.hpp (props changed)
   trunk/boost/msm/common.hpp (props changed)
   trunk/boost/msm/front/ (props changed)
   trunk/boost/msm/front/common_states.hpp (props changed)
   trunk/boost/msm/front/completion_event.hpp (props changed)
   trunk/boost/msm/front/detail/ (props changed)
   trunk/boost/msm/front/detail/common_states.hpp (props changed)
   trunk/boost/msm/front/detail/row2_helper.hpp (props changed)
   trunk/boost/msm/front/euml/ (props changed)
   trunk/boost/msm/front/euml/algorithm.hpp (props changed)
   trunk/boost/msm/front/euml/common.hpp (props changed)
   trunk/boost/msm/front/euml/container.hpp (props changed)
   trunk/boost/msm/front/euml/euml.hpp (contents, props changed)
   trunk/boost/msm/front/euml/euml_typeof.hpp (props changed)
   trunk/boost/msm/front/euml/guard_grammar.hpp (props changed)
   trunk/boost/msm/front/euml/iteration.hpp (props changed)
   trunk/boost/msm/front/euml/operator.hpp (props changed)
   trunk/boost/msm/front/euml/querying.hpp (props changed)
   trunk/boost/msm/front/euml/state_grammar.hpp (contents, props changed)
   trunk/boost/msm/front/euml/stl.hpp (props changed)
   trunk/boost/msm/front/euml/stt_grammar.hpp (contents, props changed)
   trunk/boost/msm/front/euml/transformation.hpp (props changed)
   trunk/boost/msm/front/functor_row.hpp (props changed)
   trunk/boost/msm/front/internal_row.hpp (props changed)
   trunk/boost/msm/front/row2.hpp (props changed)
   trunk/boost/msm/front/state_machine_def.hpp (props changed)
   trunk/boost/msm/front/states.hpp (props changed)
   trunk/boost/msm/msm_grammar.hpp (props changed)
   trunk/boost/msm/proto_config.hpp (props changed)
   trunk/boost/msm/row_tags.hpp (props changed)
Text files modified:
   trunk/boost/msm/front/euml/euml.hpp | 3
   trunk/boost/msm/front/euml/state_grammar.hpp | 481 ++++++++++++++++++++++-----------------
   trunk/boost/msm/front/euml/stt_grammar.hpp | 42 +-
   3 files changed, 289 insertions(+), 237 deletions(-)

Modified: trunk/boost/msm/front/euml/euml.hpp
==============================================================================
--- trunk/boost/msm/front/euml/euml.hpp (original)
+++ trunk/boost/msm/front/euml/euml.hpp 2011-05-11 17:59:40 EDT (Wed, 11 May 2011)
@@ -16,5 +16,8 @@
 #include <boost/msm/front/euml/guard_grammar.hpp>
 #include <boost/msm/front/euml/state_grammar.hpp>
 #include <boost/msm/front/euml/stt_grammar.hpp>
+#ifdef BOOST_MSM_EUML_PHOENIX_SUPPORT
+#include <boost/msm/front/euml/phoenix_placeholders.hpp>
+#endif
 
 #endif //BOOST_MSM_FRONT_EUML_EUML_H

Modified: trunk/boost/msm/front/euml/state_grammar.hpp
==============================================================================
--- trunk/boost/msm/front/euml/state_grammar.hpp (original)
+++ trunk/boost/msm/front/euml/state_grammar.hpp 2011-05-11 17:59:40 EDT (Wed, 11 May 2011)
@@ -11,6 +11,10 @@
 #ifndef BOOST_MSM_FRONT_EUML_STATE_GRAMMAR_H
 #define BOOST_MSM_FRONT_EUML_STATE_GRAMMAR_H
 
+#ifdef BOOST_MSM_EUML_PHOENIX_SUPPORT
+#include <boost/phoenix/core/meta_grammar.hpp>
+#endif
+
 #include <boost/msm/front/euml/common.hpp>
 #include <boost/fusion/container/vector.hpp>
 #include <boost/fusion/include/pair.hpp>
@@ -210,6 +214,51 @@
>
 {};
 
+#ifdef BOOST_MSM_EUML_PHOENIX_SUPPORT
+struct CustomPhoenixGrammar
+ : proto::switch_<CustomPhoenixGrammar>
+{
+ template <typename Tag, typename Dummy = void>
+ struct case_
+ : proto::and_<
+ proto::not_<BuildGuards> ,
+ proto::not_<BuildActionSequence>,
+ boost::phoenix::meta_grammar::case_<Tag>
+ >
+ {};
+};
+#endif
+
+struct GuardGrammar
+ : proto::or_<
+#ifdef BOOST_MSM_EUML_PHOENIX_SUPPORT
+ proto::when<
+ CustomPhoenixGrammar ,
+ proto::_
+ >,
+#endif
+ proto::when<
+ BuildGuards ,
+ BuildGuards
+ >
+ >
+ {};
+
+struct ActionGrammar
+ : proto::or_<
+#ifdef BOOST_MSM_EUML_PHOENIX_SUPPORT
+ proto::when<
+ CustomPhoenixGrammar ,
+ proto::_
+ >,
+#endif
+ proto::when<
+ BuildActionSequence ,
+ BuildActionSequence
+ >
+ >
+ {};
+
 struct BuildActionsCases
 {
     // The primary template matches nothing:
@@ -673,12 +722,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 +736,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 +749,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 +762,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 +775,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 +797,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 +817,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 +923,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 +941,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 +964,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 +989,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 +1004,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 +1022,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 +1059,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 +1101,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 +1150,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 +1165,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 +1180,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 +1194,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 +1210,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 +1233,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 +1256,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 +1265,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 +1287,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 +1305,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 +1323,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 +1340,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 +1360,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 +1384,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 +1408,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 +1417,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 +1443,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 +1457,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 +1471,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 +1484,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 +1498,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 +1521,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 +1542,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 +1572,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 +1586,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 +1600,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 +1613,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 +1627,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 +1650,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 +1671,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 +1701,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 +1715,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 +1729,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 +1742,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 +1756,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 +1779,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 +1800,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: trunk/boost/msm/front/euml/stt_grammar.hpp
==============================================================================
--- trunk/boost/msm/front/euml/stt_grammar.hpp (original)
+++ trunk/boost/msm/front/euml/stt_grammar.hpp 2011-05-11 17:59:40 EDT (Wed, 11 May 2011)
@@ -104,12 +104,15 @@
     typedef TempRow<typename Right::Source,typename Right::Evt,typename Left::Target
                    ,typename Right::Action,typename Right::Guard> type;
 };
+
 struct BuildEventPlusGuard
- : proto::when<
- proto::subscript<proto::terminal<event_tag>,BuildGuards >,
- TempRow<none,proto::_left,none,none,BuildGuards(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
    : proto::or_<
@@ -126,8 +129,8 @@
 
 struct BuildSourcePlusGuard
     : proto::when<
- proto::subscript<BuildSourceState,BuildGuards >,
- TempRow<BuildSourceState(proto::_left),none,none,none,BuildGuards(proto::_right)>()
+ proto::subscript<BuildSourceState,GuardGrammar >,
+ TempRow<BuildSourceState(proto::_left),none,none,none,GuardGrammar(proto::_right)>(proto::_right)
>
 {};
 
@@ -139,19 +142,17 @@
                 TempRow<none,proto::_,none>() >
         // event / action
        , proto::when<
- proto::divides<proto::terminal<event_tag>,BuildActionSequence >,
- TempRow<none,proto::_left,none,
- BuildActionSequence(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>,BuildGuards >,
- TempRow<none,proto::_left,none,none,BuildGuards(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,
- BuildActionSequence >,
+ proto::divides<BuildEventPlusGuard, ActionGrammar>,
                 fusion_event_action_guard<BuildEventPlusGuard(proto::_left),
- TempRow<none,none,none,BuildActionSequence(proto::_right)>()
+ TempRow<none,none,none,ActionGrammar(proto::_right)>(proto::_right)
>()
>
>
@@ -164,19 +165,18 @@
                 TempRow<BuildSourceState(proto::_),none,none>() >
         // == source / action
        , proto::when<
- proto::divides<BuildSourceState,BuildActionSequence >,
- TempRow<BuildSourceState(proto::_left),none,none,
- BuildActionSequence(proto::_right) >() >
+ proto::divides<BuildSourceState,ActionGrammar >,
+ TempRow<BuildSourceState(proto::_left),none,none,ActionGrammar(proto::_right) >(proto::_right) >
         // == source [ guard ]
        , proto::when<
- proto::subscript<BuildSourceState,BuildGuards >,
- TempRow<BuildSourceState(proto::_left),none,none,none,BuildGuards(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,
- BuildActionSequence >,
+ ActionGrammar >,
                 fusion_source_action_guard<BuildSourcePlusGuard(proto::_left),
- TempRow<none,none,none,BuildActionSequence(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