Python имеет PLY , который является оберткой вокруг Lex / Yacc.
Это довольно легко использовать, когда вы обернетесь вокруг того, как они хотят, чтобы вы его использовали, и вы выяснили, как ориентироваться в скудной документации. У PLY есть лучшая документация, чем у Irony, но планка довольно низкая.
Я начал с PLY, но считаю, что Irony - более приятный фреймворк, потому что:
- Ирония поддерживает простые правила грамматики EBNF (
MakeStarRule
и т. Д.), Тогда как выполнение того же самого в PLY выполнимо, но громоздко.
- Оба инструмента имеют приличные встроенные средства отладки, но у Irony есть небольшое преимущество, потому что он имеет приличный графический интерфейс для просмотра правил синтаксического анализа, ошибок уменьшения сдвига и т. Д.
Удачи всем, кто отправляется в путешествие по Lex / Yacc!