Ragel compiles finite state machines from regular languages into C, C++, Objective-C, D, Java, or Ruby code. It allows the programmer to embed actions at any point in a regular language, and to control non-determinism in the resulting machines. It understands concatenation, union, kleene star, subtraction, intersection, epsilon transitions, and various other common operators. It also supports the construction of scanners and the building of state machines using state charts. It can be used to create very fast recognizers and parsers that are also robust.
| Tags | Software Development Code Generators |
|---|---|
| Licenses | GPL |
| Implementation | C++ |
Recent releases


Changes: A bug in graphviz generation was fixed. A bug related to 64-bit systems and machines defined with hex numbers was fixed. The build system was moved to automake.


Changes: The backend programs were removed and merged into the frontend. New write commands were added. Bugs were fixed.


Changes: Duplicate include prevention was fixed and improved. A false assertion spurred during the creation of scanners with conditions was fixed. A crash on the failed lookup of a goto/call target was fixed.


Changes: A number of reported bugs were fixed. Include and import file searching was improved. The -I include path option was added.


Changes: Scanners now ensure that any leaving actions at the end of a pattern are executed. They are always executed before the pattern action. The -d option for turning off the removal of duplicate actions from actions lists was added.