Ragel is a finite-state machine compiler and a parser generator targeting C, C++ and ASM. It can recognize byte sequences and execute code at arbitrary points in the...
ragel is a finitestate machine compiler and a parser generator targeting c, c++ and asm. it can recognize byte sequences and execute code at arbitrary points in the process.
potential uses
writing robust protocol implementations.parsing data formats.lexical analysis of programming languages.validating user input.
features
construct finite state machines using:regular language operatorsstate chart operatorsa scanner operatorsome mix of the aboveembed actions into machines in arbitrary places.control nondeterminism using guarded operators.minimize state machines using hopcroft’s algorithm.visualize output with graphviz.use byte, double byte or wordsized alphabets.generate c, c++ or asm (gnu, x86_64, system v abi) code with no dependencies.choose from table or control flow driven state machines.
compilers state-machine