Готового решения нет, есть инструменты по синтаксическому анализу файлов на выбранном языке с последующим написанием приложения по работе с уже готовым деревом лексем.. в общем решение нудное и не красивое.
Могу предположить что в итоге вам нужен файл с парами 'имя макроса' - значение, я решал это в два этапа, сначала получение списка необходимых дефайнов (в моем случае это решалось в полуавтоматическом режиме, работая с текстовыми файлами в редакторе + регулярные выражения и т.п.), а затем на основе списка этих строк я генерировал cpp код, который выглядел как print ("name =" + name + "\n"); для каждого дефайна, затем полученный код компилировался и запускался - в итоге он выводил мне в нужном мне формате список значений дефайнов.