2010-07-26 56 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