2013-03-13 12 views
3

我正在寫一個python腳本(使用python clang綁定)分析C頭並提取有關函數的信息:名稱,返回類型,參數類型。提取類型字符串與叮噹綁定

我沒有提取函數名稱的問題,但我找不到將clang.cindex.Type轉換爲C類型字符串的方法。 (例如clang.cindex.TypeKind.UINTunsigned int

目前,作爲臨時解決方案,我有一個字典clang.cindex.TypeKind -> C type string和代碼來處理指針和const限定符,但是我沒有找到一種方法,以提取結構名稱。

有沒有一種通用的方法來獲得C的定義clang.cindex.Type?如果沒有,我怎樣才能得到C型字符串clang.cindex.TypeKind.RECORDclang.cindex.TypeKind.FUNCTIONPROTO類型?

回答

0

對於RECORD,函數get_declaration()指向類型的聲明(一個unionenumstruct,或typedef);獲取節點的拼寫將返回其名稱。 (顯然,照顧區分TYPEDEF_DECL與基礎聲明實物之間。)

FUNCTIONPROTO,你必須使用的get_result()get_arguments()的組合。