
До появления gccxml, был только один способ извлечь мета-информацию из Си/
С++ кода. Для начала, необходимо было написать парсер, способный справиться с грамматикой языка
С++. Это не та задача, которую вы обычно решаете дома за выходные.
Теперь, писать парсер больше не нужно. Модифицированный компилятор gcc анализирует ваш код и выдает описание всех пространств имен, типов, классов и функций, встреченных в программе. Данные выдаются в формате XML и
в принципе готовы для дальнейшего автоматического анализа и обработки.
Для разбора XML данных, полученных от gccxml, пригодится библиотека pygccxml. Это не просто ридер формата gccxml — библиотека предоставляет интерфейсы для изучения собранных метаданных; в частности есть готовые функции, отвечающие на вопросы вроде «совместимы ли типы T
1 и T
2?» или «наследует ли класс C
1 от C
2?». Библиотека написана на языке Python.