Ragel

Ragel
Developer(s)Adrian Thurston
Stable release
7.0.4  / 15 February 2021 (15 February 2021)
Preview release
7.0.4 / February 16, 2021 (2021-02-16)
Repository
Written inC++
Operating systemUnix-like, Windows
TypeState machine compiler
License"Ragel 6 remains under GPL v2 [generated code] covered by the MIT (or GPL v2)".
Ragel 7: MIT License
Websitewww.colm.net/open-source/ragel/

Ragel (IPA: /ˈɹeɪd͡ʒəl/) 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.