我想玩弄生成代碼統計信息或Objective-C類的簡單可視化。哪些工具可以讀取obj-c並提供語義信息,如「A類擴展B類」或「C是B類的屬性」?用於閱讀的解析器Objective-C
- 編譯器? (鐺)
- 調試器? (lldb/gdb)
- 正則表達式?
只是尋找這種任務的常用方法的指導。
編輯:我應該說清楚,我不是要做更多的工作,目前的簡單班級關係。
我想玩弄生成代碼統計信息或Objective-C類的簡單可視化。哪些工具可以讀取obj-c並提供語義信息,如「A類擴展B類」或「C是B類的屬性」?用於閱讀的解析器Objective-C
只是尋找這種任務的常用方法的指導。
編輯:我應該說清楚,我不是要做更多的工作,目前的簡單班級關係。
我寫了一個sample project,它使用了clang前端庫來解析Objective-C源代碼,找出哪些類定義了哪些方法。這將是簡單,這個適應你所描述的需要:
CXIdxEntity_ObjCClass
種類聲明的身份,因爲這些是Objective-C類。clang_index_getObjCInterfaceDeclInfo()
關於聲明以獲取關於此聲明的特定於類的信息。.superinfo
該結構的成員告訴你超類是什麼!祝你好運,有很多工作要做,這不是一件容易的事 Regexp是非常有限的,但可能適用於簡單的任務。可能是快速&骯髒的選項。 Clang可以是一個不錯的選擇。 你也可以看看CodeWorker
如果你只是需要解決類關係,我認爲一個自定義的基於正則表達式的解析器會做。如果你需要更多的東西,正則表達式的方法很快就註定要失敗,你應該考慮使用Clang來獲得dump the AST,請看related question。
通過您的來源查看,這正是我所需要的,謝謝。遺憾的是,libclang並沒有很多可讀的教程,但這對於幫助來說將會有很大的幫助! – Sam 2013-05-10 13:23:42