2013-12-12 39 views
2

我正在研究GCCXML,它可以解析給定的頭文件並生成C代碼元數據的XML格式。但是GCCxml是一個開源的。有沒有商業版本的C代碼解析器,其工作方式與GCC XML相似?GCC Xml Alternatives

感謝, Karthick

回答

2

爲gccxml明顯的替代將鐺,這是在BSD授權(這樣你就可以自由地使用它的商業項目,做任何你想用代碼等)。鏗鏘曾經有一個內置的xml AST自卸車,但它在某個階段被刪除。如果你只需要提取特定的信息(比如IDL生成的函數原型或類似的東西),編寫一個基本的自定義clang插件就不難了。否則,您可以搜索周圍的現有鐺插件,它會做的工作,比如這一個:

https://github.com/sk-havok/clang-extract

鏘插件教程:http://clang.llvm.org/docs/ClangPlugins.html

+0

謝謝Oakad。我會在今天或明天探索上述鏈接,並讓你知道我所帶的東西。 – K2M

+0

看起來很有前途。我花了一天時間來弄清楚什麼是Clang,並能夠下載源代碼並執行一些Python腳本示例。但它是一次性努力。它真的是一個偉大的工具,這個教程真的幫助我[http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/] – K2M

1

看到我們DMS Software Reengineering Toolkit與同等/超其C Front End的GCCXML。

C前端可以處理各種C語言(ANSI,GCC,MS)。它包含一個完整的預處理器。它可以以XML格式導出完整語言的AST(特別是包含函數體,GCCXML不做,IIRC)及其符號表。

這裏在SO有example dump of the AST from DMS's C++ front end。這與C前端使用的機器相同。

+0

謝謝艾拉..我會探討這個以及。 – K2M

+0

今天我沒有聽​​說過這個機會。您能否告訴我需要從本網站下載什麼工具[http://www.semanticdesigns.com/Products/Downloads.html]以進一步探索。 – K2M

+0

DMS是企業產品;它不提供下載。聯繫語義設計來討論您的需求。 –