Ragel

Ragel
Developer(s)Adrian Thurston[1]
Stable release
7.0.4[2] Edit this on Wikidata / 15 February 2021; 3 years ago (15 February 2021)
Preview release
7.0.4 / February 16, 2021; 3 years ago (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)".[3]
Ragel 7: MIT License
Websitewww.colm.net/open-source/ragel/

Ragel is a finite-state machine compiler and a parser generator. Initially Ragel supported output for C, C++ and Assembly source code,[4] later expanded to support several other languages including Objective-C, D, Go, Ruby, and Java.[5] Additional language support is also in development.[6] It supports the generation of table or control flow driven state machines from regular expressions[7] and/or state charts and can also build lexical analysers via the longest-match method. Ragel specifically targets text parsing and input validation.[8]

  1. ^ Dr. Adrian D. Thurston at complang.org Last changed: Jul 14, 2013
  2. ^ "Release 7.0.4". 15 February 2021. Retrieved 3 March 2021.
  3. ^ "Ragel State Machine Compiler". www.colm.net. Retrieved 2019-11-19.
  4. ^ Adrian D. Thurston. "Parsing Computer Languages with an Automaton Compiled from a Single Regular Expression. Archived 2012-09-07 at the Wayback Machine" In: 11th International Conference on Implementation and Application of Automata (CIAA 2006), Lecture Notes in Computer Science, volume 4094, p. 285-286, Taipei, Taiwan, August 2006.
  5. ^ "Ragel User Guide" (PDF). March 2017.
  6. ^ "Additional Target Languages Return to Ragel 7". 18 May 2018.
  7. ^ Liqun Chen, Chris J. Mitchell, Andrew Martin (2009) Trusted Computing: Second International Conference, Trust 2009 Oxford, UK, April 6–8, 2009, Proceedings. p. 111
  8. ^ Omar Badreddin (2010) "Umple: a model-oriented programming language." Software Engineering, 2010 ACM/IEEE 32nd International Conference on. Vol. 2. IEEE, 2010.