Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- struct StateImpl
- {
- StateImpl(char const* n): name(n)
- { printf("StateImpl(char const* %s) \n", name); }
- char const* name;
- };
- struct Event
- {
- Event(char const* e): name(e)
- { printf("Event(char const* %s) \n", name); }
- char const* name;
- };
- struct State;
- struct StateNode
- {
- StateNode(Event e, State const& s, StateNode const* n):
- event(e), destination(s), next(n)
- {
- printf(" StateNode(Event %s, State const& %s, StateNode const* %s) \n",e.name, 0, 0 );
- }
- Event event;
- State const& destination;
- StateNode const* next;
- };
- struct State
- {
- State(char const* name):
- me(0), impl(name)
- { printf("StateNode const* = %s \n", me); }
- StateNode const* me;
- StateImpl impl;
- };
- struct Transition
- {
- Transition(State& origin, Event e, State const& destination):
- node(e, destination, origin.me)
- { printf("Transition Impliments StateNode. See Above ^^ \n"); }
- StateNode node;
- };
- int main ( void )
- {
- printf("Make some States: \n");
- State state1("S1"), state2("S2");
- printf("\n");
- printf("Make some Events: \n");
- Event KEY_UP("w");
- Event KEY_DOWN("s");
- printf("\n");
- printf("Make some Transitions: \n");
- Transition t0(state1, KEY_UP, state2);
- Transition t1(state2, KEY_DOWN, state1);
- printf("\n");
- return(0);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement