Для того, что вы хотите сделать, наш DMS Software Reengineering Toolkit , вероятно, является очень эффективным решением.
DMS разработан специально для поддержки анализаторов / генераторов кода того типа, который вы обсуждаете. Он предоставляет очень мощные средства для определения произвольных языковых синтаксических анализаторов / анализаторов (протестировано на более чем 30 реальных языках, включая несколько полных диалектов C, C ++, Java, C # и COBOL).
DMS автоматизирует построение AST (так что вам не нужно ничего делать, а получить правильную грамматику, чтобы иметь пригодный для использования AST), позволяет создавать пользовательские анализы именно указанной вами инспекции, ориентированной на шаблоны, и создавать новые Специфичные для C AST, представляющие код, который вы хотите сгенерировать, и выкладываемые в виде скомпилированного исходного текста на C. Существующие ранее определения C для DMS, вероятно, могут быть изогнуты, чтобы охватить ваш C-подобный язык.