Не прямой ответ, но вы можете рассмотреть возможность использования более общего подхода, такого как GoldParser , который позволяет использовать универсальный механизм для обработки таблиц LALR и DFA, сгенерированных из ваших грамматик.
Таким образом, вы можете использовать любое количество различных грамматик в одном приложении, и изменение грамматики не создает новый исходный код, а скорее просто новые файлы таблиц (которые могут быть включены в качестве встроенного ресурса или аналогичного).