Описание тега bnfc
BNFC - это инструмент построения компилятора BNF Converter, который берет аннотированную грамматику BNF (форма Бэкуса-Наура) и создает на ее основе синтаксический анализатор.
Проект BNF Converter - это инструмент, похожий на Yacc и ANTLR в том, что он принимает грамматическую спецификацию, написанную в нотации BNF, и генерирует компилятор, который распознает указанный язык.
На сайте Github говорится:
Конвертер BNF - это инструмент построения компилятора, генерирующий интерфейс компилятора из грамматики помеченного BNF. В настоящее время он может генерировать C, C++, C#, F#, Haskell, Java и OCaml, а также представления XML.
Учитывая грамматику Labeled BNF, инструмент производит:
- реализация абстрактного синтаксиса
- каркас случая для абстрактного синтаксиса на том же языке
- файл генератора лексера Alex, JLex или Flex
- файл генератора парсеров Happy, CUP или Bison
- красивый принтер в виде модуля Haskell/Java/C++/C
- латексный файл, содержащий читаемую спецификацию языка
Дополнительная информация: https://bnfc.digitalgrammars.com/.