Three different approaches:
SO question with interesting answers C state machine design.
An article that might contain good stuff State machine shortcuts
A (not really) related pattern that can be used for parsing is the Chain of responsibility pattern.
Ragel – Generate state machines specialized at parsing
PADS – Also for parsing protocols