Другим вариантом будет GOLD Parser .
В отличие от многих альтернатив, анализатор GOLD генерирует таблицы синтаксического анализа из грамматики и помещает их в двоичный неисполняемый файл. Каждый поддерживаемый язык имеет механизм, который читает двоичные таблицы и анализирует ваш исходный файл.
Я не использовал реализацию Java специально, но использовал движок Delphi с довольно хорошими результатами.