|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r72033 - in branches/release/boost/msm: . back front front/detail front/euml mpl_graph/detail
From: christophe.j.henry_at_[hidden]
Date: 2011-05-18 17:34:30
Author: chenry
Date: 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
New Revision: 72033
URL: http://svn.boost.org/trac/boost/changeset/72033
Log:
merged revisions 68194-72031
Added:
branches/release/boost/msm/back/any_event.hpp (contents, props changed)
- copied, changed from r68195, /trunk/boost/msm/back/any_event.hpp
branches/release/boost/msm/front/euml/phoenix_placeholders.hpp (props changed)
- copied unchanged from r71944, /trunk/boost/msm/front/euml/phoenix_placeholders.hpp
branches/release/boost/msm/msm_grammar.hpp (contents, props changed)
- copied, changed from r71734, /trunk/boost/msm/msm_grammar.hpp
Removed:
branches/release/boost/msm/mpl_graph/detail/as_mpl_map.hpp
Properties modified:
branches/release/boost/msm/ (props changed)
branches/release/boost/msm/back/ (props changed)
branches/release/boost/msm/back/args.hpp (props changed)
branches/release/boost/msm/back/bind_helpers.hpp (props changed)
branches/release/boost/msm/back/common_types.hpp (props changed)
branches/release/boost/msm/back/copy_policies.hpp (props changed)
branches/release/boost/msm/back/default_compile_policy.hpp (props changed)
branches/release/boost/msm/back/dispatch_table.hpp (props changed)
branches/release/boost/msm/back/favor_compile_time.hpp (contents, props changed)
branches/release/boost/msm/back/fold_to_list.hpp (contents, props changed)
branches/release/boost/msm/back/history_policies.hpp (props changed)
branches/release/boost/msm/back/metafunctions.hpp (contents, props changed)
branches/release/boost/msm/back/mpl_graph_fsm_check.hpp (props changed)
branches/release/boost/msm/back/no_fsm_check.hpp (props changed)
branches/release/boost/msm/back/queue_container_circular.hpp (props changed)
branches/release/boost/msm/back/queue_container_deque.hpp (props changed)
branches/release/boost/msm/back/state_machine.hpp (contents, props changed)
branches/release/boost/msm/back/tools.hpp (props changed)
branches/release/boost/msm/common.hpp (contents, props changed)
branches/release/boost/msm/front/ (props changed)
branches/release/boost/msm/front/common_states.hpp (props changed)
branches/release/boost/msm/front/completion_event.hpp (props changed)
branches/release/boost/msm/front/detail/ (props changed)
branches/release/boost/msm/front/detail/common_states.hpp (props changed)
branches/release/boost/msm/front/detail/row2_helper.hpp (props changed)
branches/release/boost/msm/front/euml/ (props changed)
branches/release/boost/msm/front/euml/algorithm.hpp (props changed)
branches/release/boost/msm/front/euml/common.hpp (contents, props changed)
branches/release/boost/msm/front/euml/container.hpp (props changed)
branches/release/boost/msm/front/euml/euml.hpp (contents, props changed)
branches/release/boost/msm/front/euml/euml_typeof.hpp (props changed)
branches/release/boost/msm/front/euml/guard_grammar.hpp (contents, props changed)
branches/release/boost/msm/front/euml/iteration.hpp (props changed)
branches/release/boost/msm/front/euml/operator.hpp (props changed)
branches/release/boost/msm/front/euml/querying.hpp (props changed)
branches/release/boost/msm/front/euml/state_grammar.hpp (contents, props changed)
branches/release/boost/msm/front/euml/stl.hpp (props changed)
branches/release/boost/msm/front/euml/stt_grammar.hpp (contents, props changed)
branches/release/boost/msm/front/euml/transformation.hpp (props changed)
branches/release/boost/msm/front/functor_row.hpp (contents, props changed)
branches/release/boost/msm/front/internal_row.hpp (props changed)
branches/release/boost/msm/front/row2.hpp (props changed)
branches/release/boost/msm/front/state_machine_def.hpp (props changed)
branches/release/boost/msm/front/states.hpp (props changed)
branches/release/boost/msm/proto_config.hpp (contents, props changed)
branches/release/boost/msm/row_tags.hpp (props changed)
Text files modified:
branches/release/boost/msm/back/any_event.hpp | 7
branches/release/boost/msm/back/favor_compile_time.hpp | 45 +--
branches/release/boost/msm/back/fold_to_list.hpp | 27 +
branches/release/boost/msm/back/metafunctions.hpp | 6
branches/release/boost/msm/back/state_machine.hpp | 109 +++++++-
branches/release/boost/msm/common.hpp | 2
branches/release/boost/msm/front/euml/common.hpp | 123 +++++----
branches/release/boost/msm/front/euml/euml.hpp | 3
branches/release/boost/msm/front/euml/guard_grammar.hpp | 2
branches/release/boost/msm/front/euml/state_grammar.hpp | 485 ++++++++++++++++++++++-----------------
branches/release/boost/msm/front/euml/stt_grammar.hpp | 42 +-
branches/release/boost/msm/front/functor_row.hpp | 1
branches/release/boost/msm/msm_grammar.hpp | 1
branches/release/boost/msm/proto_config.hpp | 18 -
14 files changed, 503 insertions(+), 368 deletions(-)
Copied: branches/release/boost/msm/back/any_event.hpp (from r68195, /trunk/boost/msm/back/any_event.hpp)
==============================================================================
--- /trunk/boost/msm/back/any_event.hpp (original)
+++ branches/release/boost/msm/back/any_event.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -25,14 +25,13 @@
class holder : public placeholder
{
public:
- holder(EventType const& evt, FsmType& fsm): event_(evt),fsm_(fsm){}
+ holder(EventType const& evt, FsmType& fsm){}
virtual ::boost::msm::back::HandledEnum process_event() const
{
- return fsm_.process_event(event_);
+ //default. Will not be called
+ return HANDLED_TRUE;
}
private:
- EventType const& event_;
- FsmType& fsm_;
};
class any_event
Modified: branches/release/boost/msm/back/favor_compile_time.hpp
==============================================================================
--- branches/release/boost/msm/back/favor_compile_time.hpp (original)
+++ branches/release/boost/msm/back/favor_compile_time.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -17,47 +17,33 @@
#include <boost/mpl/filter_view.hpp>
#include <boost/mpl/for_each.hpp>
#include <boost/mpl/bool.hpp>
-#include <boost/any.hpp>
#include <boost/msm/common.hpp>
#include <boost/msm/back/metafunctions.hpp>
#include <boost/msm/back/common_types.hpp>
#include <boost/msm/back/dispatch_table.hpp>
+#include <boost/msm/back/any_event.hpp>
namespace boost { namespace msm { namespace back
{
-template <class Fsm>
-struct process_any_event_helper
-{
- process_any_event_helper(msm::back::HandledEnum& res_,Fsm* self_,::boost::any any_event_):
- res(res_),self(self_),any_event(any_event_),finished(false){}
- template <class Event>
- void operator()(boost::msm::wrap<Event> const&)
- {
- if ( ! finished && ::boost::any_cast<Event>(&any_event)!=0)
- {
- finished = true;
- res = self->process_event(::boost::any_cast<Event>(any_event));
- }
- }
-private:
- msm::back::HandledEnum& res;
- Fsm* self;
- ::boost::any any_event;
- bool finished;
-};
#define BOOST_MSM_BACK_GENERATE_PROCESS_EVENT(fsmname) \
namespace boost { namespace msm { namespace back{ \
+ template<class EventType> \
+ class holder<EventType,fsmname> : public placeholder \
+ { \
+ public: \
+ holder(EventType const& evt, fsmname& fsm): event_(evt),fsm_(fsm){} \
+ virtual ::boost::msm::back::HandledEnum process_event() const \
+ {return fsm_.process_event(event_);} \
+ private: \
+ EventType const& event_; \
+ fsmname& fsm_; \
+ }; \
template<> \
- ::boost::msm::back::HandledEnum fsmname::process_any_event( ::boost::any const& any_event) \
+ ::boost::msm::back::HandledEnum fsmname::process_any_event( any_event const& evt)const \
{ \
- typedef ::boost::msm::back::recursive_get_transition_table<fsmname>::type stt; \
- typedef ::boost::msm::back::generate_event_set<stt>::type all_events; \
- ::boost::msm::back::HandledEnum res= ::boost::msm::back::HANDLED_FALSE; \
- ::boost::mpl::for_each<all_events, ::boost::msm::wrap< ::boost::mpl::placeholders::_1> > \
- (::boost::msm::back::process_any_event_helper<fsmname>(res,this,any_event)); \
- return res; \
+ return evt.process_event(); \
} \
}}}
@@ -106,7 +92,8 @@
template <class TransitionState>
static HandledEnum call_submachine(Fsm& fsm, int region, int state, Event const& evt)
{
- return (fsm.template get_state<TransitionState&>()).process_any_event( ::boost::any(evt));
+ return (fsm.template get_state<TransitionState&>()).process_any_event
+ ( any_event(evt,fsm.template get_state<TransitionState&>()) );
}
// A function object for use with mpl::for_each that stuffs
// transitions into cells.
Modified: branches/release/boost/msm/back/fold_to_list.hpp
==============================================================================
--- branches/release/boost/msm/back/fold_to_list.hpp (original)
+++ branches/release/boost/msm/back/fold_to_list.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -13,6 +13,7 @@
#include <boost/msm/proto_config.hpp>
#include <boost/proto/core.hpp>
#include <boost/proto/transform.hpp>
+#include <boost/msm/msm_grammar.hpp>
#include <boost/fusion/container/list/cons.hpp>
namespace boost { namespace msm { namespace back
@@ -20,7 +21,19 @@
struct state_copy_tag
{
};
- ::boost::proto::terminal<state_copy_tag>::type const states_={{}};
+
+template<class X = proto::is_proto_expr>
+struct define_states_creation
+{
+ BOOST_PROTO_BASIC_EXTENDS(
+ proto::terminal<state_copy_tag>::type
+ , define_states_creation
+ , boost::msm::msm_domain
+ )
+};
+
+define_states_creation<> const states_ = {{{}}};
+
struct FoldToList
: ::boost::proto::or_<
// Don't add the states_ terminal to the list
@@ -30,11 +43,19 @@
>
// Put all other terminals at the head of the
// list that we're building in the "state" parameter
+ // first states for the eUML states
, ::boost::proto::when<
- ::boost::proto::terminal< ::boost::proto::_>
+ ::boost::proto::terminal< state_tag >
+ , boost::fusion::cons< ::boost::proto::_, ::boost::proto::_state>(
+ ::boost::proto::_, ::boost::proto::_state
+ )
+ >
+ // then states from other front-ends
+ , ::boost::proto::when<
+ ::boost::proto::terminal< proto::_ >
, boost::fusion::cons< ::boost::proto::_value, ::boost::proto::_state>(
::boost::proto::_value, ::boost::proto::_state
- )
+ )
>
// For left-shift operations, first fold the right
// child to a list using the current state. Use
Modified: branches/release/boost/msm/back/metafunctions.hpp
==============================================================================
--- branches/release/boost/msm/back/metafunctions.hpp (original)
+++ branches/release/boost/msm/back/metafunctions.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -647,6 +647,12 @@
typedef typename StateType::initial_event type;
};
+template <class StateType>
+struct get_final_event
+{
+ typedef typename StateType::final_event type;
+};
+
template <class TransitionTable, class InitState>
struct build_one_orthogonal_region
{
Modified: branches/release/boost/msm/back/state_machine.hpp
==============================================================================
--- branches/release/boost/msm/back/state_machine.hpp (original)
+++ branches/release/boost/msm/back/state_machine.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -44,9 +44,6 @@
#include <boost/bind.hpp>
#include <boost/bind/apply.hpp>
#include <boost/function.hpp>
-#ifndef BOOST_NO_RTTI
-#include <boost/any.hpp>
-#endif
#include <boost/serialization/base_object.hpp>
@@ -63,12 +60,14 @@
#include <boost/msm/back/dispatch_table.hpp>
#include <boost/msm/back/no_fsm_check.hpp>
#include <boost/msm/back/queue_container_deque.hpp>
+#include <boost/msm/back/any_event.hpp>
BOOST_MPL_HAS_XXX_TRAIT_DEF(accept_sig)
BOOST_MPL_HAS_XXX_TRAIT_DEF(no_automatic_create)
BOOST_MPL_HAS_XXX_TRAIT_DEF(non_forwarding_flag)
BOOST_MPL_HAS_XXX_TRAIT_DEF(direct_entry)
BOOST_MPL_HAS_XXX_TRAIT_DEF(initial_event)
+BOOST_MPL_HAS_XXX_TRAIT_DEF(final_event)
BOOST_MPL_HAS_XXX_TRAIT_DEF(do_serialize)
BOOST_MPL_HAS_XXX_TRAIT_DEF(history_policy)
BOOST_MPL_HAS_XXX_TRAIT_DEF(fsm_check)
@@ -87,6 +86,7 @@
{
typedef int direct_entry;
typedef StateType active_state;
+ typedef Event contained_event;
direct_entry_event(Event const& evt):m_event(evt){}
Event const& m_event;
@@ -259,6 +259,7 @@
typedef HistoryPolicy history_policy;
struct InitEvent { };
+ struct ExitEvent { };
// flag handling
struct Flag_AND
{
@@ -278,6 +279,12 @@
::boost::mpl::identity<InitEvent>
>::type fsm_initial_event;
+ // if the front-end fsm provides an exit_event typedef, replace ExitEvent by this one
+ typedef typename ::boost::mpl::eval_if<
+ typename has_final_event<Derived>::type,
+ get_final_event<Derived>,
+ ::boost::mpl::identity<ExitEvent>
+ >::type fsm_final_event;
template <class ExitPoint>
struct exit_pt : public ExitPoint
@@ -1036,7 +1043,32 @@
// give a chance to handle an anonymous (eventless) transition
handle_eventless_transitions_helper<library_sm> eventless_helper(this,true);
eventless_helper.process_completion_event();
+ }
+
+ // start the state machine (calls entry of the initial state passing incomingEvent to on_entry's)
+ template <class Event>
+ void start(Event const& incomingEvent)
+ {
+ // call on_entry on this SM
+ (static_cast<Derived*>(this))->on_entry(incomingEvent,*this);
+ ::boost::mpl::for_each<initial_states, boost::msm::wrap<mpl::placeholders::_1> >
+ (call_init<Event>(incomingEvent,this));
+ // give a chance to handle an anonymous (eventless) transition
+ handle_eventless_transitions_helper<library_sm> eventless_helper(this,true);
+ eventless_helper.process_completion_event();
+ }
+ // stop the state machine (calls exit of the current state)
+ void stop()
+ {
+ do_exit(fsm_final_event(),*this);
+ }
+
+ // stop the state machine (calls exit of the current state passing finalEvent to on_exit's)
+ template <class Event>
+ void stop(Event const& finalEvent)
+ {
+ do_exit(finalEvent,*this);
}
// Main function used by clients of the derived FSM to make
@@ -1256,7 +1288,27 @@
{
return m_history;
}
- // get a state
+ // get a state (const version)
+ // as a pointer
+ template <class State>
+ typename ::boost::enable_if<typename ::boost::is_pointer<State>::type,State >::type
+ get_state(::boost::msm::back::dummy<0> = 0) const
+ {
+ return const_cast<State >
+ (&
+ (::boost::fusion::at_key<
+ typename ::boost::remove_const<typename ::boost::remove_pointer<State>::type>::type>(m_substate_list)));
+ }
+ // as a reference
+ template <class State>
+ typename ::boost::enable_if<typename ::boost::is_reference<State>::type,State >::type
+ get_state(::boost::msm::back::dummy<1> = 0) const
+ {
+ return const_cast<State >
+ ( ::boost::fusion::at_key<
+ typename ::boost::remove_const<typename ::boost::remove_reference<State>::type>::type>(m_substate_list) );
+ }
+ // get a state (non const version)
// as a pointer
template <class State>
typename ::boost::enable_if<typename ::boost::is_pointer<State>::type,State >::type
@@ -1272,7 +1324,6 @@
{
return ::boost::fusion::at_key<typename ::boost::remove_reference<State>::type>(m_substate_list);
}
-
// checks if a flag is active using the BinaryOp as folding function
template <class Flag,class BinaryOp>
bool is_flag_active() const
@@ -1684,7 +1735,7 @@
{
// end of processing
template<class Event>
- static void process(Event const& evt,library_sm*,HandledEnum&){}
+ static void process(Event const& ,library_sm*,HandledEnum&){}
};
public:
region_processing_helper(library_sm* self_,HandledEnum& result_)
@@ -1731,9 +1782,7 @@
template <class Event>
void no_action(Event const&){}
-#ifndef BOOST_NO_RTTI
- HandledEnum process_any_event( ::boost::any const& evt);
-#endif
+ HandledEnum process_any_event( any_event const& evt) const;
private:
// composite accept implementation. First calls accept on the composite, then accept on all its active states.
@@ -1927,7 +1976,7 @@
// the IBM compiler seems to have problems with nested classes
// the same seems to apply to the Apple version of gcc 4.0.1 (just in case we do for < 4.1)
// and also to MS VC < 8
-#if defined (__IBMCPP__) || (defined (__APPLE_CC__) && (__GNUC__ == 4 && __GNUC_MINOR__ < 1)) || (defined(_MSC_VER) && (_MSC_VER < 1400))
+#if defined (__IBMCPP__) || (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || (defined(_MSC_VER) && (_MSC_VER < 1400))
public:
#endif
template<class ContainingSM>
@@ -1936,7 +1985,7 @@
m_is_included=true;
::boost::fusion::for_each(m_substate_list,add_state<ContainingSM>(this,sm));
}
-#if defined (__IBMCPP__) || (defined (__APPLE_CC__) && (__GNUC__ == 4 && __GNUC_MINOR__ < 1)) || (defined(_MSC_VER) && (_MSC_VER < 1400))
+#if defined (__IBMCPP__) || (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || (defined(_MSC_VER) && (_MSC_VER < 1400))
private:
#endif
// A function object for use with mpl::for_each that stuffs
@@ -2139,7 +2188,7 @@
};
// start for states machines which are themselves embedded in other state machines (composites)
template <class Event>
- void start(Event const& incomingEvent)
+ void internal_start(Event const& incomingEvent)
{
region_start_helper< ::boost::mpl::int_<0> >::do_start(this,incomingEvent);
// give a chance to handle an anonymous (eventless) transition
@@ -2177,7 +2226,7 @@
operator()(EventType const& evt,FsmType& fsm, ::boost::msm::back::dummy<0> = 0)
{
(static_cast<Derived*>(self))->on_entry(evt,fsm);
- self->start(evt);
+ self->internal_start(evt);
}
// this variant is for the direct entry case (just one entry, not a sequence of entries)
@@ -2199,7 +2248,7 @@
BOOST_STATIC_ASSERT(find_region_id<typename EventType::active_state::wrapped_entry>::region_index <= nr_regions::value);
// just set the correct zone, the others will be default/history initialized
self->m_states[find_region_id<typename EventType::active_state::wrapped_entry>::region_index] = state_id;
- self->start(evt.m_event);
+ self->internal_start(evt.m_event);
}
// this variant is for the fork entry case (a sequence on entries)
@@ -2220,7 +2269,7 @@
::boost::msm::wrap< ::boost::mpl::placeholders::_1> >
(fork_helper<EventType>(self,evt));
// set the correct zones, the others (if any) will be default/history initialized
- self->start(evt.m_event);
+ self->internal_start(evt.m_event);
}
// this variant is for the pseudo state entry case
@@ -2235,7 +2284,7 @@
int state_id = get_state_id<stt,typename EventType::active_state::wrapped_entry>::value;
// given region starts with the entry pseudo state as active state
self->m_states[find_region_id<typename EventType::active_state::wrapped_entry>::region_index] = state_id;
- self->start(evt.m_event);
+ self->internal_start(evt.m_event);
// and we process the transition in the zone of the newly active state
// (entry pseudo states are, according to UML, a state connecting 1 transition outside to 1 inside
self->process_event(evt.m_event);
@@ -2338,7 +2387,7 @@
// called for completion events. Default address set in the dispatch_table at init
// prevents no-transition detection for completion events
template <class Event>
- static HandledEnum default_eventless_transition(library_sm& fsm, int, int , Event const& e)
+ static HandledEnum default_eventless_transition(library_sm& fsm, int, int , Event const&)
{
return HANDLED_FALSE;
}
@@ -2352,8 +2401,8 @@
}
// removes one event from the message queue and processes it
template <class StateType>
- typename ::boost::disable_if<typename is_no_message_queue<StateType>::type,void >::type
- process_message_queue(StateType*)
+ void process_message_queue(StateType*,
+ typename ::boost::disable_if<typename is_no_message_queue<StateType>::type,void >::type* = 0)
{
if (!m_events_queue.m_events_queue.empty())
{
@@ -2363,11 +2412,27 @@
}
}
template <class StateType>
- typename ::boost::enable_if<typename is_no_message_queue<StateType>::type,void >::type
- process_message_queue(StateType*)
+ void process_message_queue(StateType*,
+ typename ::boost::enable_if<typename is_no_message_queue<StateType>::type,void >::type* = 0)
{
// nothing to process
}
+ // helper function. In cases where the event is wrapped (target is a direct entry states)
+ // we want to send only the real event to on_entry, not the wrapper.
+ template <class EventType>
+ static
+ typename boost::enable_if<typename has_direct_entry<EventType>::type,typename EventType::contained_event const& >::type
+ remove_direct_entry_event_wrapper(EventType const& evt)
+ {
+ return evt.m_event;
+ }
+ template <class EventType>
+ static typename boost::disable_if<typename has_direct_entry<EventType>::type,EventType const& >::type
+ remove_direct_entry_event_wrapper(EventType const& evt)
+ {
+ // identity. No wrapper
+ return evt;
+ }
// calls the entry/exit or on_entry/on_exit depending on the state type
// (avoids calling virtually)
// variant for FSMs
@@ -2388,7 +2453,7 @@
execute_entry(StateType& astate,EventType const& evt,FsmType& fsm, ::boost::msm::back::dummy<1> = 0)
{
// simple call to on_entry
- astate.on_entry(evt,fsm);
+ astate.on_entry(remove_direct_entry_event_wrapper(evt),fsm);
}
// variant for exit pseudo states
template <class StateType,class EventType,class FsmType>
Modified: branches/release/boost/msm/common.hpp
==============================================================================
--- branches/release/boost/msm/common.hpp (original)
+++ branches/release/boost/msm/common.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -19,6 +19,8 @@
template <class T>
struct wrap{};
+// tag to use in grammars where states are seen (init_<<, states_<<...)
+struct state_tag{};
} } // boost::msm
#endif //BOOST_MSM_COMMON_H
Modified: branches/release/boost/msm/front/euml/common.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/common.hpp (original)
+++ branches/release/boost/msm/front/euml/common.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -60,6 +60,8 @@
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
#include <boost/preprocessor/cat.hpp>
+
+#include <boost/msm/msm_grammar.hpp>
#include <boost/msm/front/functor_row.hpp>
namespace proto = boost::proto;
@@ -179,7 +181,7 @@
struct euml_terminal;
struct sm_domain
- : proto::domain< proto::generator<euml_terminal>, terminal_grammar >
+ : proto::domain< proto::generator<euml_terminal>, terminal_grammar, boost::msm::msm_domain >
{};
struct state_grammar :
@@ -226,7 +228,7 @@
};
};
template <class STATE>
-struct euml_state: proto::extends<typename proto::terminal<state_tag>::type, STATE, state_domain>
+struct euml_state: proto::extends<typename proto::terminal< boost::msm::state_tag>::type, STATE, state_domain>
{
typedef state_tag euml_tag_type;
using proto::extends<typename proto::terminal<state_tag>::type, STATE, state_domain>::operator=;
@@ -303,9 +305,9 @@
typedef int activate_deferred_events;
Deferred_Events(){}
};
-No_Exception const no_exception;
-No_Msg_Queue const no_msg_queue;
-Deferred_Events const deferred_events;
+No_Exception const no_exception=No_Exception();
+No_Msg_Queue const no_msg_queue=No_Msg_Queue();
+Deferred_Events const deferred_events=Deferred_Events();
struct invalid_type{};
struct make_invalid_type
@@ -357,7 +359,7 @@
return true;
}
};
-NoAction const no_action;
+NoAction const no_action = NoAction();
struct fsm_artefact_tag {};
template <class Index=void>
@@ -408,7 +410,7 @@
typedef GetSource_<Arg1> type;
};
};
-GetSource_Helper const source_;
+GetSource_Helper const source_ = GetSource_Helper();
template <class Index=void>
struct GetTarget_ : euml_action<GetTarget_<Index> >
@@ -458,7 +460,7 @@
typedef GetTarget_<Arg1> type;
};
};
-GetTarget_Helper const target_;
+GetTarget_Helper const target_ = GetTarget_Helper();
template <class Index=void>
struct GetState_ : euml_action<GetState_<Index> >
@@ -510,7 +512,7 @@
typedef GetState_<Arg1> type;
};
};
-GetState_Helper const state_;
+GetState_Helper const state_ = GetState_Helper();
template <class Index=void>
struct GetEvent_ : euml_action<GetEvent_<Index> >
@@ -585,7 +587,7 @@
typedef GetEvent_<Arg1> type;
};
};
-GetEvent_Helper const event_;
+GetEvent_Helper const event_ = GetEvent_Helper();
template <class Index=void>
struct GetFsm_ : euml_action<GetFsm_<Index> >
@@ -660,7 +662,7 @@
typedef GetFsm_<Arg1> type;
};
};
-GetFsm_Helper const fsm_;
+GetFsm_Helper const fsm_ = GetFsm_Helper();
template <class StateName,class Param1>
struct SubState_ : euml_action<SubState_<StateName, Param1> >
@@ -732,7 +734,7 @@
typedef SubState_<Arg1,Arg2> type;
};
};
-SubState_Helper const substate_;
+SubState_Helper const substate_ = SubState_Helper();
template <class Target,class Index>
struct GetAttribute_ : euml_action<GetAttribute_<Target, Index> >
@@ -794,7 +796,7 @@
typedef GetAttribute_<Arg1,Arg2> type;
};
};
-GetAttribute_Helper const attribute_;
+GetAttribute_Helper const attribute_ = GetAttribute_Helper();
template <class Index>
struct Source_ : euml_action<Source_<Index> >
@@ -966,7 +968,7 @@
typedef ::boost::mpl::set<state_action_tag,action_tag> tag_type;
template <class EVT,class FSM,class SourceState,class TargetState>
- bool operator()(EVT const& evt,FSM&,SourceState& ,TargetState& )
+ bool operator()(EVT const&,FSM&,SourceState& ,TargetState& )
{
return true;
}
@@ -976,7 +978,7 @@
return true;
}
};
-True_ const true_;
+True_ const true_ = True_();
struct False_ : euml::euml_action<False_>
{
@@ -996,7 +998,7 @@
typedef ::boost::mpl::set<state_action_tag,action_tag> tag_type;
template <class EVT,class FSM,class SourceState,class TargetState>
- bool operator()(EVT const& evt,FSM&,SourceState& ,TargetState& )
+ bool operator()(EVT const&,FSM&,SourceState& ,TargetState& )
{
return false;
}
@@ -1006,7 +1008,7 @@
return false;
}
};
-False_ const false_;
+False_ const false_ = False_();
template <int Val>
struct Int_ : euml_action<Int_<Val> >
@@ -1328,7 +1330,7 @@
typedef Process_<Arg1,Arg2,Arg3,Arg4,Arg5> type;
};
};
-Process_Helper const process_;
+Process_Helper const process_ = Process_Helper();
template <class ToProcessEvt,class Value,class Param1, class Param2, class Param3>
struct Process2_ : euml_action<Process2_<ToProcessEvt,Value, Param1, Param2, Param3> >
@@ -1466,7 +1468,7 @@
typedef Process2_<Arg1,Arg2,Arg3,Arg4,Arg5> type;
};
};
-Process2_Helper const process2_;
+Process2_Helper const process2_ = Process2_Helper();
template <class Flag,class Param1=void, class Enable=void >
struct Get_Flag_ : euml_action<Get_Flag_<Flag,Param1,Enable> > {};
@@ -1546,7 +1548,7 @@
typedef Get_Flag_<Arg1,Arg2> type;
};
};
-Get_Flag_Helper const is_flag_;
+Get_Flag_Helper const is_flag_ = Get_Flag_Helper();
// deferring an event
struct DeferEvent_ : euml_action< DeferEvent_ >
@@ -1572,7 +1574,7 @@
typedef DeferEvent_ type;
};
};
-Defer_Helper const defer_;
+Defer_Helper const defer_ = Defer_Helper();
struct explicit_tag {};
struct Explicit_Helper : proto::extends< proto::terminal<explicit_tag>::type, Explicit_Helper, sm_domain>
@@ -1589,7 +1591,7 @@
typedef typename Arg1::template direct<Arg2> type;
};
};
-Explicit_Helper const explicit_;
+Explicit_Helper const explicit_ = Explicit_Helper();
struct entry_pt_tag {};
struct Entry_Pt_Helper : proto::extends< proto::terminal<entry_pt_tag>::type, Entry_Pt_Helper, sm_domain>
@@ -1606,7 +1608,7 @@
typedef typename Arg1::template entry_pt<Arg2> type;
};
};
-Entry_Pt_Helper const entry_pt_;
+Entry_Pt_Helper const entry_pt_ = Entry_Pt_Helper();
struct exit_pt_tag {};
struct Exit_Pt_Helper : proto::extends< proto::terminal<exit_pt_tag>::type, Exit_Pt_Helper, sm_domain>
@@ -1623,7 +1625,7 @@
typedef typename Arg1::template exit_pt<Arg2> type;
};
};
-Exit_Pt_Helper const exit_pt_;
+Exit_Pt_Helper const exit_pt_ = Exit_Pt_Helper();
#ifdef BOOST_MSVC
#define BOOST_MSM_EUML_FUNCTION(functor,function,function_name,result_trans,result_state) \
@@ -1794,7 +1796,7 @@
functor ## Helper , sm_domain> { functor ## Helper(){} \
template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5,class Arg6> \
struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5,Arg6> type;}; }; \
- functor ## Helper const function_name ;
+ functor ## Helper const function_name = functor ## Helper ();
#define BOOST_MSM_EUML_METHOD(functor,function,function_name,result_trans,result_state) \
template <class Param1=void , class Param2=void , class Param3=void , class Param4=void, \
@@ -1945,7 +1947,7 @@
functor ## Helper , sm_domain> { functor ## Helper(){} \
template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5,class Arg6> \
struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5,Arg6> type;}; }; \
- functor ## Helper const function_name ;
+ functor ## Helper const function_name = functor ## Helper ();
#else
@@ -2075,7 +2077,7 @@
functor ## Helper , sm_domain> { functor ## Helper(){} \
template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5> \
struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5> type;}; }; \
- functor ## Helper const function_name ;
+ functor ## Helper const function_name = functor ## Helper ();
#define BOOST_MSM_EUML_METHOD(functor,function,function_name,result_trans,result_state) \
template <class Param1=void , class Param2=void , class Param3=void , class Param4=void, \
@@ -2201,7 +2203,7 @@
functor ## Helper , sm_domain> { functor ## Helper(){} \
template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5> \
struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5> type;}; }; \
- functor ## Helper const function_name ;
+ functor ## Helper const function_name = functor ## Helper ();
#endif
@@ -2247,15 +2249,29 @@
instance_name ## _helper(){} \
typedef instance_name ## _impl action_name; \
}; \
- instance_name ## _helper instance_name; \
+ static instance_name ## _helper instance_name; \
struct instance_name ## _impl : instance_name ## _helper
+#define BOOST_MSM_EUML_DECLARE_ACTION(instance_name) \
+ struct instance_name ; \
+ struct instance_name ## _helper : msm::front::euml::euml_action<instance_name > \
+ { \
+ instance_name ## _helper(){} \
+ typedef instance_name action_name; \
+ }; \
+ struct instance_name : instance_name ## _helper
+
#define BOOST_MSM_EUML_EVENT(instance_name) \
struct instance_name ## _helper : msm::front::euml::euml_event<instance_name ## _helper>{ \
instance_name ## _helper(){} \
- instance_name ## _helper const& operator()(){return *this;} }; \
- instance_name ## _helper instance_name;
+ instance_name ## _helper const& operator()() const {return *this;} }; \
+ static instance_name ## _helper instance_name;
+
+#define BOOST_MSM_EUML_DECLARE_EVENT(instance_name) \
+ struct instance_name : msm::front::euml::euml_event<instance_name >{ \
+ instance_name(){} \
+ instance_name const& operator()() const {return *this;} };
#define MSM_EUML_CONCAT(param1,param2) param1
#define MSM_EUML_EVENT_INSTANCE_HELPER_EXECUTE1(z, n, unused) ARG ## n arg ## n
@@ -2280,7 +2296,7 @@
#define MSM_EUML_EVENT_INSTANCE_HELPER_ATTRIBUTE_MAP(z, n, unused) \
template <BOOST_PP_ENUM_PARAMS(n, class ARG),class T> \
void init(BOOST_PP_ENUM(n, MSM_EUML_EVENT_INSTANCE_HELPER_EXECUTE1, ~ ), \
- T,typename ::boost::enable_if< typename boost::mpl::eval_if< typename ::boost::fusion::traits::is_sequence<T>::type,size_helper<T,n>,::boost::mpl::false_>::type,void >::type* dummyval=0) \
+ T,typename ::boost::enable_if< typename boost::mpl::eval_if< typename ::boost::fusion::traits::is_sequence<T>::type,size_helper<T,n>,::boost::mpl::false_>::type,void >::type* =0) \
{ \
BOOST_PP_REPEAT_FROM_TO(0,n , \
MSM_EUML_EVENT_HELPER_GET_ATTRIBUTE, ~) \
@@ -2314,7 +2330,7 @@
BOOST_PP_REPEAT_FROM_TO(1,BOOST_PP_ADD(FUSION_MAX_MAP_SIZE ,1), \
MSM_EUML_EVENT_INSTANCE_HELPER_OPERATOR_IMPL, instance_name) \
}; \
- instance_name ## _helper const instance_name;
+ static instance_name ## _helper instance_name;
#define BOOST_MSM_EUML_EVENT_NAME(instance_name) instance_name ## _helper
@@ -2322,7 +2338,10 @@
#define BOOST_MSM_EUML_FLAG(instance_name) \
struct instance_name ## _helper : msm::front::euml::euml_flag<instance_name ## _helper>{}; \
- instance_name ## _helper instance_name;
+ static instance_name ## _helper instance_name;
+
+#define BOOST_MSM_EUML_DECLARE_FLAG(instance_name) \
+ struct instance_name : msm::front::euml::euml_flag<instance_name >{};
#define BOOST_MSM_EUML_STATE_NAME(instance_name) instance_name ## _helper
@@ -2374,33 +2393,33 @@
// following macros declare a state type and create an instance
#define BOOST_MSM_EUML_STATE(expr,instance_name) \
struct instance_name ## tag{}; \
- typedef BOOST_TYPEOF(build_state<instance_name ## tag> expr) instance_name ## _helper; \
- instance_name ## _helper const instance_name;
+ typedef BOOST_TYPEOF(build_state<instance_name ## tag> expr) instance_name ## _helper; \
+ static instance_name ## _helper instance_name;
-#define BOOST_MSM_EUML_INTERRUPT_STATE(expr,instance_name) \
+#define BOOST_MSM_EUML_INTERRUPT_STATE(expr,instance_name) \
struct instance_name ## tag{}; \
- typedef BOOST_TYPEOF(build_interrupt_state<instance_name ## tag> expr) instance_name ## _helper; \
- instance_name ## _helper const instance_name;
+ typedef BOOST_TYPEOF(build_interrupt_state<instance_name ## tag> expr) instance_name ## _helper; \
+ static instance_name ## _helper instance_name;
-#define BOOST_MSM_EUML_TERMINATE_STATE(expr,instance_name) \
+#define BOOST_MSM_EUML_TERMINATE_STATE(expr,instance_name) \
struct instance_name ## tag{}; \
- typedef BOOST_TYPEOF(build_terminate_state<instance_name ## tag> expr) instance_name ## _helper; \
- instance_name ## _helper const instance_name;
+ typedef BOOST_TYPEOF(build_terminate_state<instance_name ## tag> expr) instance_name ## _helper; \
+ static instance_name ## _helper instance_name;
-#define BOOST_MSM_EUML_EXPLICIT_ENTRY_STATE(region,expr,instance_name) \
- struct instance_name ## tag{}; \
+#define BOOST_MSM_EUML_EXPLICIT_ENTRY_STATE(region,expr,instance_name) \
+ struct instance_name ## tag{}; \
typedef BOOST_TYPEOF(build_explicit_entry_state<instance_name ## tag BOOST_MSM_EUML_ENTRY_STATE_HELPER(region) > expr) instance_name ## _helper; \
- instance_name ## _helper const instance_name;
+ static instance_name ## _helper instance_name;
#define BOOST_MSM_EUML_ENTRY_STATE(region,expr,instance_name) \
struct instance_name ## tag{}; \
typedef BOOST_TYPEOF(build_entry_state<instance_name ## tag BOOST_MSM_EUML_ENTRY_STATE_HELPER(region) > expr) instance_name ## _helper; \
- instance_name ## _helper const instance_name;
+ static instance_name ## _helper instance_name;
#define BOOST_MSM_EUML_EXIT_STATE(expr,instance_name) \
struct instance_name ## tag{}; \
- typedef BOOST_TYPEOF(build_exit_state<instance_name ## tag> expr) instance_name ## _helper; \
- instance_name ## _helper const instance_name;
+ typedef BOOST_TYPEOF(build_exit_state<instance_name ## tag> expr) instance_name ## _helper; \
+ static instance_name ## _helper instance_name;
#ifndef BOOST_MSVC
@@ -2408,12 +2427,12 @@
#define BOOST_MSM_EUML_TRANSITION_TABLE(expr,instance_name) \
typedef BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)) instance_name ## _def; \
struct instance_name ## _helper : public instance_name ## _def{instance_name ## _helper(){}}; \
- instance_name ## _helper const instance_name;
+ static instance_name ## _helper instance_name;
#define BOOST_MSM_EUML_INTERNAL_TRANSITION_TABLE(expr,instance_name) \
typedef BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_INTERNAL_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)) instance_name ## _def; \
struct instance_name ## _helper : public instance_name ## _def{instance_name ## _helper(){}}; \
- instance_name ## _helper const instance_name;
+ static instance_name ## _helper instance_name;
#else
@@ -2421,13 +2440,13 @@
struct instance_name ## _helper : \
public BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)) \
{instance_name ## _helper(){}} ; \
- instance_name ## _helper const instance_name;
+ static instance_name ## _helper instance_name;
#define BOOST_MSM_EUML_INTERNAL_TRANSITION_TABLE(expr,instance_name) \
struct instance_name ## _helper : \
public BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_INTERNAL_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)) \
{instance_name ## _helper(){}} ; \
- instance_name ## _helper const instance_name;
+ static instance_name ## _helper instance_name;
#endif
Modified: branches/release/boost/msm/front/euml/euml.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/euml.hpp (original)
+++ branches/release/boost/msm/front/euml/euml.hpp 2011-05-18 17:34:28 EDT (Wed, 18 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: branches/release/boost/msm/front/euml/guard_grammar.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/guard_grammar.hpp (original)
+++ branches/release/boost/msm/front/euml/guard_grammar.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -342,7 +342,7 @@
>,
proto::when<
proto::terminal<proto::_>,
- proto::_child
+ proto::_value
>
>
{};
Modified: branches/release/boost/msm/front/euml/state_grammar.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/state_grammar.hpp (original)
+++ branches/release/boost/msm/front/euml/state_grammar.hpp 2011-05-18 17:34:28 EDT (Wed, 18 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:
@@ -504,7 +553,7 @@
>,
proto::when<
proto::terminal<proto::_>,
- proto::_child
+ proto::_value
>
>
{};
@@ -520,7 +569,7 @@
typedef ::boost::fusion::pair<attr_name ## _,attr_type> attribute_type; \
attr_name ## _ (){} \
}; \
-attr_name ## _ const attr_name;
+attr_name ## _ const attr_name = attr_name ## _();
struct make_attributes_tag
{
@@ -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: branches/release/boost/msm/front/euml/stt_grammar.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/stt_grammar.hpp (original)
+++ branches/release/boost/msm/front/euml/stt_grammar.hpp 2011-05-18 17:34:28 EDT (Wed, 18 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)
>()
>
>
Modified: branches/release/boost/msm/front/functor_row.hpp
==============================================================================
--- branches/release/boost/msm/front/functor_row.hpp (original)
+++ branches/release/boost/msm/front/functor_row.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -256,7 +256,6 @@
// no action, no guard
typedef sm__i_row_tag row_type_tag;
};
- struct state_tag{};
struct event_tag{};
struct action_tag{};
struct state_action_tag{};
Deleted: branches/release/boost/msm/mpl_graph/detail/as_mpl_map.hpp
==============================================================================
--- branches/release/boost/msm/mpl_graph/detail/as_mpl_map.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
+++ (empty file)
@@ -1,100 +0,0 @@
-// Copyright 2008-2010 Gordon Woodhull
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// this is an experiment at implementing a metafunction that's
-// present in fusion but not in mpl
-// based on fusion/container/map/detail/as_map.hpp
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#ifndef BOOST_PP_IS_ITERATING
-#if !defined(AS_MPL_MAP_HPP)
-#define AS_MPL_MAP_HPP
-
-#define AS_MPL_MAP_SIZE 20
-
-#include <boost/preprocessor/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/inc.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/mpl/map.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/next.hpp>
-
-namespace boost { namespace mpl {
-
- namespace detail {
- template <int size>
- struct as_map;
-
- }
- template<typename Seq>
- struct as_map : detail::as_map<mpl::size<Seq>::value>::template
- apply<typename mpl::begin<Seq>::type> {};
-
- namespace detail
-{
- template <int size>
- struct as_map;
-
- template <>
- struct as_map<0>
- {
- template <typename Iterator>
- struct apply
- {
- typedef map<> type;
- };
-
- };
-
-#define BOOST_AS_MPL_MAP_NEXT_ITERATOR(z, n, data) \
- typedef typename mpl::next<BOOST_PP_CAT(I, n)>::type \
- BOOST_PP_CAT(I, BOOST_PP_INC(n));
-
-#define BOOST_AS_MPL_MAP_DEREF_ITERATOR(z, n, data) \
- typedef typename mpl::deref<BOOST_PP_CAT(I, n)>::type \
- BOOST_PP_CAT(T, n);
-
-#define BOOST_PP_FILENAME_1 <boost/msm/mpl_graph/detail/as_mpl_map.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, AS_MPL_MAP_SIZE)
-#include BOOST_PP_ITERATE()
-
-#undef BOOST_AS_MPL_MAP_NEXT_ITERATOR
-#undef BOOST_AS_MPL_MAP_DEREF_ITERATOR
-
-}}}
-
-#endif
-#else // defined(BOOST_PP_IS_ITERATING)
-///////////////////////////////////////////////////////////////////////////////
-//
-// Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#define N BOOST_PP_ITERATION()
-
- template <>
- struct as_map<N>
- {
- template <typename I0>
- struct apply
- {
- BOOST_PP_REPEAT(N, BOOST_AS_MPL_MAP_NEXT_ITERATOR, _)
- BOOST_PP_REPEAT(N, BOOST_AS_MPL_MAP_DEREF_ITERATOR, _)
- typedef map<BOOST_PP_ENUM_PARAMS(N, T)> type;
- };
-
- };
-
-#undef N
-#endif // defined(BOOST_PP_IS_ITERATING)
-
Copied: branches/release/boost/msm/msm_grammar.hpp (from r71734, /trunk/boost/msm/msm_grammar.hpp)
==============================================================================
--- /trunk/boost/msm/msm_grammar.hpp (original)
+++ branches/release/boost/msm/msm_grammar.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -11,6 +11,7 @@
#ifndef BOOST_MSM_GRAMMAR_H
#define BOOST_MSM_GRAMMAR_H
+#include <boost/msm/common.hpp>
namespace boost { namespace msm
Modified: branches/release/boost/msm/proto_config.hpp
==============================================================================
--- branches/release/boost/msm/proto_config.hpp (original)
+++ branches/release/boost/msm/proto_config.hpp 2011-05-18 17:34:28 EDT (Wed, 18 May 2011)
@@ -13,22 +13,6 @@
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#ifdef BOOST_MSVC
- #if BOOST_PROTO_MAX_ARITY <= 7
- #ifdef BOOST_MPL_LIMIT_METAFUNCTION_ARITY
- #undef BOOST_MPL_LIMIT_METAFUNCTION_ARITY
- #endif
- #define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 7
- #define BOOST_PROTO_MAX_ARITY 7
- #endif
-#else
- #if BOOST_PROTO_MAX_ARITY <= 6
- #ifdef BOOST_MPL_LIMIT_METAFUNCTION_ARITY
- #undef BOOST_MPL_LIMIT_METAFUNCTION_ARITY
- #endif
- #define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 6
- #define BOOST_PROTO_MAX_ARITY 6
- #endif
-#endif
+#include <boost/proto/proto_fwd.hpp>
#endif //BOOST_MSM_PROTO_CONFIG_H
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