Из спиртного представления :
Шаблоны выражений позволяют полностью аппроксимировать синтаксис расширенной формы Backus-Normal (EBNF) в C ++.
Таким образом, вы можете почти написать простой EBNF, нет необходимости в переводчике .
Я не очень знаком с духом, чтобы знать, как точно отличается синтаксис, но если различия духа C ++ EBNF и реального EBNF незначительны, то просто Сценария sed может быть достаточно.
Если вы не правы, вы могли бы написать анализатор духа, который понимает EBNF, а затем использовать AST для создания кода C ++, который является духовым представлением этого AST.