2012-05-22 44 views
1

使用Eclipse進行插件開發可以進行多大程度的C++解析?我很想知道是否有方法可以訪問C++類類型,方法簽名等,並使用從解析/讀取/分析的原始類中收集的信息創建另一個類。使用Eclipse進行C++解析

我已經看過很多C++前端工具,例如EDG,ROSE和CodeBoost,但他們看起來非常參與(EDG,儘管很多人說它是最好的,但它有點超出我的價格範圍),但接下來我想到的是Eclipse,因爲我知道它可以爲Java生成AST,但我不知道它是否可以爲C++執行相同的操作。我一直在尋找教程無濟於事,所以我來這裏尋求幫助/建議。

+0

解析Java的能力並不意味着解析C++的能力。但是,Eclipse確實有一些CDT形式的C++解析器。 AFAIK,解析器完全獨立於Java的解析器,包括具有截然不同的API。 –

+0

我仍然對這個問題的Eclipse解決方案感興趣。原諒我的措辭,我並不是想暗示只是因爲Eclipse解析Java它必須解析C++,但我已經讀過它的確。我只是無法找到如何解析C++源文件的好例子。 – trigoman

回答

0

編輯5/23:

GIYF:輸入到谷歌的短語 「Eclipse的C++語法分析器」 產生此行的CDT文件: http://wiki.eclipse.org/CDT/designs/Overview_of_Parsing

無論您選擇哪種解析器,你會發現處理它涉及。 它不是解析器機器;它的C++本身。

CDT解析C++。我不知道它是否會執行C++ 11。我知道有一個嘗試 在C++上用它構建重構工具,並且該過程正在產生可用但不是很好的結果。其中一個問題是CDT顯然不能修改它的AST;你必須發出一些文本補丁並重新處理源代碼。

如果你已經檢查過那套C++解析器,你應該考慮我們的C++11 front end

它產生AST和符號表,並控制流量分析。它可以分析/轉換代碼,並重新生成可編譯的源代碼。它包括在下面的通用轉換機器,直接適用於樹木。您不必發射補丁並重新分析。 PS:EDG和Rose真的是一樣的;羅斯只是使用EDG。 EDG沒有任何轉換能力。玫瑰確實有它,但似乎令人費解,但後來我被我自己的工具寵壞了。

+0

如何獲得該產品的演示版本? – trigoman

+0

聯繫該公司進行離線討論。 –