Ragel
Sign in to saveRagel (IPA: ) is a finite-state machine compiler and a parser generator. Initially Ragel supported output for C, C++ and Assembly source code, later expanded to support several other languages including Objective-C, D, Go, Ruby, and Java. Additional language support is also in development. It supports the generation of table or control flow driven state machines from regular expressions and/or state charts and can also build lexical analysers via the longest-match method. Ragel specifically targets text parsing and input validation.
Source code
NOTE: This repository has been archived. Ragel is now part of colm-suite: Ragel depends on the Colm Programming Language. For now, the two packages move in close lockstep. If building master of ragel, generally, the master branch of colm is required. For releases, the specific version of colm needed is in EXPECTED COLM VER in configure.ac. Ragel is built with autotools. If building from revision control you need to run autogen.sh. Then you can configure and make. full.Dockerfile installs all dependencies, including testing dependencies, builds master, and does full testing.
Excerpt from the source-code README · 1,224 chars · not written by Vinony
~3 min read
Encyclopedic overview
5 sectionsContents
- Overview
- Syntax
- See also
- References
- External links
Ragel (IPA: ) is a finite-state machine compiler and a parser generator. Initially Ragel supported output for C, C++ and Assembly source code, later expanded to support several other languages including Objective-C, D, Go, Ruby, and Java. Additional language support is also in development. It supports the generation of table or control flow driven state machines from regular expressions and/or state charts and can also build lexical analysers via the longest-match method. Ragel specifically targets text parsing and input validation.
== Overview == Ragel supports the generation of table or control flow driven state machines from regular expressions and/or state charts and can also build lexical analysers via the longest-match method. A unique feature of Ragel is that user actions can be associated with arbitrary state machine transitions using operators that are integrated into the regular expressions. Ragel also supports visualization of the generated machine via graphviz.
Excerpted from Wikipedia’s “Ragel” article, available under the CC BY-SA 4.0 licence.