Вопрос
Я работаю над проектом по компиляции на Java. Лексический анализ выполнен (с использованием jflex), и мне интересно, какой yacc-подобный инструмент будет лучшим (наиболее эффективным, простым в использовании и т. Д.) Для проведения синтаксического анализа и почему.
Другие советы
В прошлом я использовал ANLTR как для лексера, так и для анализатора, и домашняя страница JFlex сообщает, что он может взаимодействовать с ANTLR. Я бы не сказал, что онлайн-документация ANTLR - это здорово. Я закончил тем, что вложил деньги в «Окончательный справочник по ANTLR» , который значительно помогло.
GNU Bison имеет интерфейс Java,
http://www.gnu.org /software/bison/manual/html_node/Java-Bison-Interface.html р>
Вы можете использовать его для генерации кода Java.
Существует также JACC. Р>
Jacc настолько близок к yacc, насколько это возможно, но он реализован на чистой Java и генерирует анализатор Java.
Хорошо взаимодействует с jFlex
Другой вариант - GOLD Parser .
В отличие от многих альтернатив, анализатор GOLD генерирует таблицы синтаксического анализа из грамматики и помещает их в двоичный неисполняемый файл. Каждый поддерживаемый язык имеет механизм, который читает двоичные таблицы и анализирует ваш исходный файл.
Я не использовал реализацию Java специально, но использовал движок Delphi с довольно хорошими результатами.