home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / FSM_DEMO.C < prev    next >
Text File  |  1997-07-05  |  867b  |  40 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*
  4. **  code snippet demonstrating a finite state machine (FSM)
  5. */
  6.  
  7. typedef enum {s0,s1,s2,s3,s4,...,sn,sexit} state;
  8.  
  9. state nextstate;
  10. int done = 0;
  11.  
  12. nextstate = s0;  /* set up to start with the first state */
  13. while(!done)
  14.    switch(nextstate)
  15.       {
  16.          case s0:
  17.             nextstate = do_state_0();
  18.             break;
  19.          case s1:
  20.             nextstate = do_state_1();
  21.             break;
  22.          case s2:
  23.             nextstate = do_state_2();
  24.             break;
  25.          case s3:
  26.              .
  27.              .
  28.              .
  29.              .
  30.          case sn:
  31.             nextstate = do_state_n();
  32.             break;
  33.          case sexit:
  34.             done = TRUE;
  35.             break;
  36.          default:
  37.             /*  some sort of unknown state */
  38.             break;
  39.       }
  40.