Существует ли оболочка Python Clang в вене pygccxml, которая обертывает GCC-XML?

В течение долгого времени я использовал pygccxml для анализа и интроспекции исходного кода на С++: он помогает мне сделать некоторое умное генерирование кода во время нашего процесса сборки.

Недавно я много читал о преимуществах стека LLVM и особенно о преимуществах, которые дает парсер LLVM Clang для компиляции С++. Теперь мне интересно, есть ли какой-либо интерфейс Python для Clang, чтобы я мог использовать его в качестве основы для некоторых моих существующих задач генерации кода?

Ответы

Ответ 1

После дальнейшего копания я обнаружил, что в выпуске LLVM 2.7 может появиться что-то полезное:

В времени LLVM 2.7 команда Clang сделала много улучшений....

Связывание CIndex API и Python: Clang теперь включает C API как часть библиотеки CIndex. Хотя мы вносим некоторые изменения в API в будущем, он должен быть стабильным и предназначен для использования внешними проектами. Более подробную информацию см. В документации Clang doxygen CIndex. API CIndex также включает предварительный набор привязок Python.

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