Ragel | |
---|---|
Type | stat maskine compiler |
Udvikler | Adrian Thurston [1] |
Skrevet i | C++ [2] |
Operativ system | Unix-lignende , Windows |
nyeste version | 6.10 (2017-03-24) |
Licens | GNU General Public License |
Internet side | complang.org/ragel/ |
Mediefiler på Wikimedia Commons |
Ragel er en state machine compiler , der producerer kildekode i C , C++ , C# , Objective-C , D , Java , OCaml , Go og Ruby [3] .
Ragels tilstandsmaskine-kildekode er et udvidet regulært udtrykssprog [4] og/eller et tilstandsmaskine- tilstandsdiagram . Ragel er velegnet til at bygge leksikale analysatorer og specificere dataoverførselsprotokoller [5] .
Ragel giver dig mulighed for at injicere brugerdefinerede handlinger på ethvert tidspunkt i udførelsen af en automat. For at løse ikke-determinisme er der tilvejebragt et prioriteringssystem for almindelige sprogoperatører.
Ragel understøtter visualisering af den genererede automat ved hjælp af graphviz .
Zed Shaw brugte Ragel til sin Mongrel -webserver,da han skrev en højtydende HTTP-brugerdefineret anmodningsparser [6] .