Ragel
Ragel — компилятор конечных автоматов, производящий исходный код на C, C++, C#, Objective-C, D, Java, OCaml, Go и Ruby[3].
Что важно знать
| Ragel | |
|---|---|
| Тип | компилятор конечных автоматов |
| Разработчик | Adrian Thurston[1] |
| Написана на | C++[2] |
| Операционные системы | Unix-like, Windows |
| Последняя версия | 6.10 (2017-03-24) |
| Репозиторий | github.com/adrian-thurst… |
| Лицензия | GNU General Public License |
| Сайт | complang.org/ragel/ |
Особенности
Исходным текстом конечного автомата для Ragel служит расширенный язык регулярных выражений[4] и/или диаграмма состояний конечного автомата. Ragel хорошо подходит для построения лексических анализаторов и спецификации протоколов передачи данных[5].
Ragel позволяет внедрять в любой точке выполнения автомата определяемые пользователем действия. С целью разрешения недетерминизма предусмотрена система приоритетов для операторов регулярного языка.
Ragel поддерживает визуализацию генерируемого автомата с помощью graphviz.
Примеры применения
Примечания
Ссылки
- colm.net/open-source/ragel/ — официальный сайт Ragel


