2010-07-26 21 views
15

在很长一段时间以来我一直在使用pygccxml分析和反思我的C++源代码:它帮助我在我们的构建过程中做一些聪明的代码生成。pygccxml中包含GCC-XML的Python Clang包装器吗?

最近,我读了很多关于LLVM堆栈的好处,特别是该LLVM锵解析器带给C++编译的好处。我现在想知道是否有任何Python接口可以用作Clang的一些现有代码生成任务的基础?

+0

也许你可以尝试生成与SWIG接口? – Zifre 2010-07-26 20:41:53

+1

@Zifre:其实它是另一种方式......我试图生成SWIG接口,所以我需要反思我想要包装的C++代码。我现在用这个pygccxml ...我想用基于LLVM的东西。 – jkp 2010-07-27 06:42:06

+0

不,我的意思是使用SWIG为Clang库生成Python绑定。如果您发现的真实Python绑定太不完整(但SWIG生成的绑定通常难以使​​用,因为它们直接镜像C/C++ API),您可能需要尝试此操作。 – Zifre 2010-07-27 15:08:14

回答

5

经过进一步挖掘我发现,在LLVM 2.7 release有可能是有用的东西beginings:

在LLVM 2.7时限,铛团队已经做出了许多改进....

CIndex API和Python绑定:Clang现在包含C API作为CIndex库的一部分。虽然我们将来会对API进行一些更改,但它旨在保持稳定,并且设计为供外部项目使用。有关更多详细信息,请参阅Clang doxygen CIndex文档。 CIndex API还包含一组初始Python绑定。

我不确定这在实际中有多大用处,它看起来可能是构建基于LLVM的pygccxml等价物的基础,但它本身不是一个这样的库。

+1

我想看看现在几个月过得如何可行:从这个python模块的外观(https://llvm.org/svn/llvm-project/cfe/trunk/bindings/python/clang/cindex .py)看起来现在完全可行。 – jkp 2011-04-18 07:05:49