Меня интересует clang для анализа кода C / C ++ и возможности поиска методов и функций.
Можно ли использовать clang для анализа файла исходного кода C ++ и получения коллекции классов иметоды и где они находятся?
Вы можете написать плагин clang, который сделает это за вас.
Взгляните на эту статью . Он в основном описывает, как создать свой собственный плагин и использовать ASTConsumer для обхода AST. Как написано в статье, начните с существующего примера плагина PrintFunctionNames . Метод HandleTopLevelDecl(DeclGroupRef DG) вызывается для каждого объявления функции. В дополнение к ND->getNameAsString() вы можете вызвать ND->getLocation() в этом методе. Также взгляните на документацию API и эти два вопроса для получения дополнительной информации:
HandleTopLevelDecl(DeclGroupRef DG)
ND->getNameAsString()
ND->getLocation()
Как узнать местоположение имени переменной в clang :: VarDecl
Обработка функций C ++ с помощью clang API для вставки кода