void main (void) { int cs = 1; while (1) { /* Display current state on LED */ if (cs == 10) leddisplay ('0'); else leddisplay ('0' + cs); switch (cs) { case 1: cs = state1 (); break; case 2: cs = state2 (); break; case 3: cs = state3 (); break; case 4: cs = state4 (); break; case 5: cs = state5 (); break; #if 0 case 6: cs = state6 (); break; #endif case 7: cs = state7 (); break; case 8: cs = state8 (); break; #if 0 case 9: cs = state9 (); break; #endif case 10: cs = state10 (); break; default: cs = 1; break; } } }
// Processes an event which drives a change in state. void processEvent (char event) { int ProcessedCorrectly = 0; currentState = peek (); printf ("Processing event: %c for state: %c \n", event, currentState); switch(currentState) { case STATE0: ProcessedCorrectly = state0 (event); break; case STATE1: ProcessedCorrectly = state1 (event); break; case STATE2: ProcessedCorrectly = state2 (event); break; case STATE3: ProcessedCorrectly = state3 (event); break; case STATE4: ProcessedCorrectly = state4 (event); break; case STATE5: ProcessedCorrectly = state5 (event); break; case STATE6: ProcessedCorrectly = state6 (event); break; case STATE7: ProcessedCorrectly = state7 (event); break; case STATE8: ProcessedCorrectly = state8 (event); break; case STATE9: ProcessedCorrectly = state9 (event); break; case STATEA: ProcessedCorrectly = state10 (event); break; case STATEB: ProcessedCorrectly = state11 (event); break; default: printf ("Unknown state %d for event %c \n", currentState, event); ProcessedCorrectly = 1; } if(ProcessedCorrectly == 1) { printf ("The Grammar Failed The Syntax Machine\n"); exit (0); } }