current state = start state while (more input) { current input = next input switch (current state) { case X: switch (current input) { case A: ..... case B: ..... case C: ..... } case Y: switch (current input) { case A: ..... case B: ..... case C: ..... } case Z: switch (current input) { case A: ..... case B: ..... case C: ..... } } }