Libero
Generates Perl code to track and change states
Each state contains (eg htmlpp.l)
=> Details for a series of events
=> Functions to call when receiving that event in that state
=> A new state to move to after the event
You fill code for the functions, and indicate next event
Your code is basically event based
The generated code does the rest