在網絡上發現的用於clang工具的例子總是在玩具例子上運行,這些例子通常都是非常簡單的C程序。clang libTooling:如何找到一個AST項目出來的頭?
我正在構建一個在C++代碼上執行源代碼到源代碼轉換的工具,這顯然是一項非常非常具有挑戰性的任務,但是鏗鏘有力於完成這項任務。
我現在面臨的問題是,clang爲任何利用STL的C++代碼生成的AST是巨大的。例如,我有一些C++代碼,其中clang++ -ast-dump ... | wc -l
是67,018行恐怖的AST gobbledygook!
99%這是標準庫的東西,我打算在源到源元編程任務中忽略它。所以,爲了實現這一點,我想簡單地過濾掉文件。假設我只想看看我正在分析的項目頭文件中的類定義(並忽略所有標準庫頭文件),我只需要弄清楚我的每個CXXRecordDecl
是從哪裏來的!
可以這樣做嗎?
編輯:希望this是一種方式去解決它。現在就試試這個......重要的一點是,它必須告訴我頭文件decls已經出來,而不是與翻譯單元對應的cpp文件。我期待在
我在冒險中得到了一點進步 - 基本上這裏的標準方法是使用替換。 – 2015-01-23 03:31:06