Irony-parser-подобное программное обеспечение для других языков, кроме C#?
Существуют ли программы, которые делают то же, что и набор для реализации языка Irony .NET, но для других языков программирования?
3 ответа
Грамматика Irony закодирована в C# с помощью BNF-нотации, но, конечно, вы можете использовать ее для анализа вашего или других языков.
Если вы ищете парсер / генератор, чья грамматика не закодирована в C#, попробуйте что-то вроде ANTLR. С ANTLR вы определяете свою грамматику отдельно в файле описания языка.
У Python есть PLY, который является оберткой вокруг Lex/Yacc.
Его довольно легко использовать, когда вы обернетесь вокруг того, как они хотят, чтобы вы его использовали, и вы выяснили, как ориентироваться в скудной документации. У PLY есть лучшая документация, чем у Irony, но планка довольно низкая.
Я начал с PLY, но считаю, что Irony - более приятный фреймворк, потому что:
- Ирония поддерживает простые правила грамматики EBNF (
MakeStarRule
и т.д.), в то время как выполнение того же самого в PLY выполнимо, но громоздко. - Оба инструмента имеют приличные встроенные средства отладки, но у Irony есть небольшое преимущество, потому что он имеет приличный графический интерфейс для просмотра правил синтаксического анализа, ошибок смещения и т. Д.
Удачи всем, кто отправляется в путешествие по Lex / Yacc!