Генератор парсеров для LR(1), LALR(1) грамматик. Генерирует код на Java.
Получаемая в итоге заготовка компилятора уже содержит лексический, и синтаксический анализаторы, и небольшое cli приложение для запуска результата.
Используемый для описания грамматики формат - BNF. Одновременно описывается и лексисческая структура языка.
gradle build
java -jar lrpg.jar <options>
опции
-d включение отладочной информации
-o оптимизация таблицы
-v подробная информация
-f принудительная перезапись сгенерированного
--bnf filename - испольлзуемый для генерации BNF
--vo - только проверка
--lalr - генерировать LALR(1) таблицу вместо LR(1). последняя генерируется по умолчанию
--force-tng - принудительная генерация СУТ даже в том случае если они не указаны(имена назначаются автоматически)
--java - корневой java пакет, для генерируемого кода
--out - каталог записи сгенерированного результата
--no-app - не генерировать cli приложение
в ряде случаев некорректно гененрируется лексический анализатор