Какие библиотеки доступны для разбора c ++ для извлечения информации о типах

Я ищу способ синтаксического анализа кода C ++ для получения базовой информации о классах. На самом деле мне не нужно много информации из самого кода, но она мне нужна для обработки таких вещей, как макросы и шаблоны. Короче говоря, я хочу извлечь «структуру» кода, которая будет показана на диаграмме UML.

Для каждого класса / struct / union / enum / typedef в базе кода все, что мне нужно (после обработки шаблонов и макросов), это:

Их названиеПространство имен, в котором они живутПоля, содержащиеся внутри (имя типа, имя поля и ограничения доступа, такие как private / mutable / etc)Функции, содержащиеся в (возвращаемый тип, имя, параметры)Декларирующий файлНомера строк / столбцов (или байтовое смещение в файле), где начинается определение этих данных

Фактические инструкции в коде не имеют значения для моих целей.

Я ожидаю, что многие люди скажут, что я должен просто использовать для этого регулярное выражение (или даже Flex & Bison), но это не совсем верно, так как мне нужно, чтобы препроцессор и шаблоны работали правильно.

Ответы на вопрос(7)

Ваш ответ на вопрос