Код Python, чтобы проанализировать и осмотреть C++

Существует ли библиотека для Python, который позволит мне анализировать код C++?

Например, скажем, я хочу проанализировать некоторый код C++ и найти названия всех классов и их членских функций/переменных.

Я могу думать о нескольких способах взломать его вместе использующий регулярные выражения, но если бы существует существующая библиотека, это было бы более полезно.

6
задан Mike 6 March 2010 в 18:07
поделиться

4 ответа

В прошлом я использовал для таких целей gccxml (парсер C++, который выдает легко разбираемый XML) - я создал собственные интерфейсы для него на Python, но теперь есть pygccxml, который должен хорошо упаковать это для вас.

7
ответ дан 8 December 2019 в 18:35
поделиться

Точный синтаксический анализ C ++ находится в нескольких световых годах от того, что можно сделать с помощью регулярного выражения. Вам нужен полноценный синтаксический анализатор C ++, а его довольно сложно построить. Я участвовал в создании одного из них несколько лет и отслеживал, кто это делает; Я не знаю ни одной попытки в Python.

Я работаю над DMS C ++ Front End . Он обеспечивает не только синтаксический анализ, но и разрешение полного имени и типа. После синтаксического анализа вы можете в основном извлечь подробную информацию о коде на любом уровне детализации, который вам нравится, включая произвольные сведения о содержимом функции.

Вы можете рассмотреть возможность использования GCCXML , который действительно содержит синтаксический анализатор и, как мне кажется, будет выдавать имена всех классов, функций и переменных верхнего уровня. GCCXML не даст вам никакой информации о том, что внутри функции.

4
ответ дан 8 December 2019 в 18:35
поделиться

Возможно, это немного выходит за рамки вашего вопроса ... но в зависимости от того, чего вы пытаетесь достичь, возможно, Exuberant Ctags стоит посмотреть.

1
ответ дан 8 December 2019 в 18:35
поделиться

Как насчет pyparsing ?

0
ответ дан 8 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: