Мой компилятор использует Dypgen. Это расширяемый пользователем анализатор GLR с большим количеством расширений, так что он может анализировать многие языки. Загрузочная грамматика похожа на EBNF (она поддерживает * + и? Непосредственно в ваших продуктах). Он достаточно мощный, чтобы динамически загружать расширения, факт, который использует мой компилятор: основная часть моего языка программирования имеет синтаксис, динамически загружаемый при запуске компилятора.
Dypgen написан на Ocaml и генерирует код Ocaml.
Существует синтаксический анализатор C ++ GLR под названием Elkhound, который достаточно мощный для анализа большей части C ++.
Тем не менее, для ваших реальных требований вам не нужно выполнять какой-либо серьезный анализ: механизм сопоставления регулярных выражений, вероятно, достаточно хорош. Googles re2 может быть подходящим (обеспечивает большинство функций PCRE, намного быстрее и с интерфейсом C ++).
Несмотря на то, что это менее точно, этого достаточно, поскольку вы можете требовать, чтобы встроенная документация придерживалась некоторых простых форматов. Большинство существующих встроенных документов уже делают это по этой причине.