Существует ли библиотека для Python, который позволит мне анализировать код C++?
Например, скажем, я хочу проанализировать некоторый код C++ и найти названия всех классов и их членских функций/переменных.
Я могу думать о нескольких способах взломать его вместе использующий регулярные выражения, но если бы существует существующая библиотека, это было бы более полезно.
В прошлом я использовал для таких целей gccxml (парсер C++, который выдает легко разбираемый XML) - я создал собственные интерфейсы для него на Python, но теперь есть pygccxml, который должен хорошо упаковать это для вас.
Точный синтаксический анализ C ++ находится в нескольких световых годах от того, что можно сделать с помощью регулярного выражения. Вам нужен полноценный синтаксический анализатор C ++, а его довольно сложно построить. Я участвовал в создании одного из них несколько лет и отслеживал, кто это делает; Я не знаю ни одной попытки в Python.
Я работаю над DMS C ++ Front End . Он обеспечивает не только синтаксический анализ, но и разрешение полного имени и типа. После синтаксического анализа вы можете в основном извлечь подробную информацию о коде на любом уровне детализации, который вам нравится, включая произвольные сведения о содержимом функции.
Вы можете рассмотреть возможность использования GCCXML , который действительно содержит синтаксический анализатор и, как мне кажется, будет выдавать имена всех классов, функций и переменных верхнего уровня. GCCXML не даст вам никакой информации о том, что внутри функции.
Возможно, это немного выходит за рамки вашего вопроса ... но в зависимости от того, чего вы пытаетесь достичь, возможно, Exuberant Ctags стоит посмотреть.