Ragel | |
---|---|
Tip de | compilatorul mașinii de stări |
Dezvoltator | Adrian Thurston [1] |
Scris in | C++ [2] |
Sistem de operare | Unix , Windows |
ultima versiune | 6.10 (24.03.2017) |
Licență | Licență publică generală GNU |
Site-ul web | complang.org/ragel/ |
Fișiere media la Wikimedia Commons |
Ragel este un compilator de mașini de stări care produce cod sursă în C , C++ , C# , Objective-C , D , Java , OCaml , Go și Ruby [3] .
Codul sursă al mașinii de stări al lui Ragel este un limbaj de expresie regulată extins [4] și/sau o diagramă de stare a mașinii de stări . Ragel este potrivit pentru construirea de analizoare lexicale și pentru specificarea protocoalelor de transfer de date [5] .
Ragel vă permite să injectați acțiuni definite de utilizator în orice moment al execuției unui automat. Pentru a rezolva non-determinismul, este prevăzut un sistem de prioritate pentru operatorii de limbaj obișnuit.
Ragel acceptă vizualizarea automatului generat folosind graphviz .
Zed Shaw a folosit Ragel pentru serverul său web Mongrel când a scris un parser de solicitări personalizate HTTP de înaltă performanță [6] .