From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/fsm.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/fsm.c (limited to 'reference/C/CONTRIB/SNIP/fsm.c') diff --git a/reference/C/CONTRIB/SNIP/fsm.c b/reference/C/CONTRIB/SNIP/fsm.c new file mode 100755 index 0000000..58c4220 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/fsm.c @@ -0,0 +1,37 @@ +/* +** code snippet demonstrating a finite state machine (FSM) +*/ + +typedef enum {s0,s1,s2,s3,s4,...,sn,sexit} state; + +state nextstate; +int done = 0; + +nextstate = s0; /* set up to start with the first state */ +while(!done) + switch(nextstate) + { + case s0: + nextstate = do_state_0(); + break; + case s1: + nextstate = do_state_1(); + break; + case s2: + nextstate = do_state_2(); + break; + case s3: + . + . + . + . + case sn: + nextstate = do_state_n(); + break; + case sexit: + done = TRUE; + break; + default: + /* some sort of unknown state */ + break; + } -- cgit v1.2.3-54-g00ecf