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.
License: GNU General Public License (GPL)
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.
More...