Существует ли библиотека CLL-синтаксических анализаторов в C# / Java?

Мне действительно интересны комбинаторы парсеров, особенно те, которые могут иметь дело с леворекурсивными и неоднозначными грамматиками. Я знаю невероятную сверхдержаву Николаса Блюмхардта, но она не в состоянии справиться с этим видом грамматики.

Я нашел несколько библиотек GLL-синтаксических анализаторов, таких как https://github.com/djspiewak/gll-combinators, но он использует Scala и, для меня, это большое неудобство (я не знаю этот язык).

Я хотел бы знать, есть ли какие-либо из них в C# (или Java)

Большое спасибо.

1 ответ

Я сделал проект компилятора, используя Java в IntelliJ IDE с расширением ANTLR 4, в Интернете есть хорошие ресурсы. Это официальная книга "Окончательный справочник по ANTLR 4". Я нахожу ее неплохой, а также предлагает хорошую документацию .

ANTLR 4 имеет возможность работать с леворекурсивными и неоднозначными грамматиками, вы можете реализовать компилятор с C #, Java и любым языком, который я думаю. Вы можете использовать их начальную грамматику для слишком большого количества разных языков.

Изменить: ANTLR 4 - это инструмент для распознавания языков, мощный генератор парсеров для чтения, обработки, выполнения или перевода структурированного текста или двоичных файлов. Он широко используется для создания языков, инструментов и фреймворков. На основе грамматики ANTLR генерирует синтаксический анализатор, который может строить и обходить синтаксические деревья. Это НЕ библиотека.

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