compiles finite state machines into c/c++ code
Ragel compiles finite state machines from regular languages into C, C++,
Objective-C, or D code. Ragel allows the programmer to embed actions at any
point in a regular language. Non-determinism can be controlled through the
use of embedded priorities and guarded regular language operators. Ragel
also supports the construction of scanners and the building of state
machines using state-charts. Ragel can be used to create robust recognizers
and parsers which run very fast. It can work with integer-sized alphabets
and can compile large state machines. The generated code has no dependencies.