Другой возможностью может быть разработка плагина GCC или расширения MELT для настройки компилятора GCC для ваших нужд. (MELT - это предметно-ориентированный язык, который я разработал для простого расширения GCC).
Преимущество настройки GCC для ваших целей заключается в том, что вы будете работать с точными внутренними представлениями GCC. Однако GCC является сложным, его расширение требует некоторой работы (в частности, частичного понимания сложных внутренних представлений и проходов GCC).
(Это возможно для функций, переменных и классов, возможно, не для макросов сегодня с GCC 4.7, так как препроцессор GCC еще не имеет подключаемых модулей)
И я не уверен, что вы правы, полагая, что geany
имеет полный C-парсер. Я полагаю, что у него есть некоторая вещь, основанная на регулярном выражении, например, игнорирует любые приемы препроцессора. Я не думаю, что geany
знает, например, функции или переменные, созданные путем расширения сложных макросов (например, некоторые макросы реализации GTK).