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!

Другие вопросы по тегам