Ragel compiles executable finite state machines from regular languages. It targets C, C++ and
ASM. Ragel state machines can not only recognize byte sequences as regular expression machines
do, but can also execute code at arbitrary points in the recognition of a regular language.
Code embedding is done using inline operators that do not disrupt the regular language syntax.