2013-03-13 2 views
3

Я пишу скрипт python (используя привязки pangon clang), который анализирует заголовки C и извлекает информацию о функциях: имя, типы возврата, типы аргументов.Строка типа извлечения с привязками Клана

У меня нет проблем с извлечением имени функции, но я не могу найти способ преобразования clang.cindex.Type в строку типа C. (Например, clang.cindex.TypeKind.UINT на unsigned int)

В настоящее время в качестве временного решения, у меня есть словарь clang.cindex.TypeKind -> C type string и код для обработки указателей и константных классификаторов, но я не нашел способ извлечения имен структуры.

Есть ли общий способ получить C определение clang.cindex.Type? Если нет, как я могу получить строку типа C для clang.cindex.TypeKind.RECORD и clang.cindex.TypeKind.FUNCTIONPROTO типов?

ответ

0

Для RECORD, функция get_declaration() точки к объявлению типа (а union, enum, struct или typedef); получение орфографии узла возвращает свое имя. (Очевидно, позаботьтесь между дифференцированием TYPEDEF_DECL против основной декларации типа.)

Для FUNCTIONPROTO, вы должны использовать комбинацию get_result() и get_arguments().

Смежные вопросы