2015-10-20 64 views
0

RedHawk從redhawk-yum-1.10.2-5-el6-x86_64.tar.gz安裝用於eclipse插件的JAR。在RedHawk 1.9中,它僅安裝了4個用於IDL解析和編輯的JAR,但在RedHawk 1.10中安裝了這4個Jar,而Eclipse Corba Package則安裝了2個JAR。RedHawk 1.10用於IDL編輯的插件

gov.redhawk.eclipsecorba.idl_7.1.0.201501292343.jar 
gov.redhawk.eclipsecorba.idl.source_7.1.0.201501292343.jar 
gov.redhawk.eclipsecorba.idl.edit_4.1.0.201501292343.jar 
gov.redhawk.eclipsecorba.idl.edit.source_4.1.0.201501292343.jar 
net.sf.eclipsecorba.idl_0.7.0.218.jar 
net.sf.eclipsecorba.idl.edit_0.7.0.218.jar 

許多java文件具有相同的名稱,但也有很多差異。 從源java文件中的註釋看來,gov jar使用JavaCC構建解析器,而來自ECP的使用SableCC。

哪些在RedHawk 1.10中實際使用,還是它們都用於不同的目的?

我想查看一個解析器錯誤,並想知道要查看哪個解析器。

對不起,我不熟悉Eclipse插件開發,還沒有想出如何判斷哪些插件實際加載或如何使用。

回答

0

紅鷹使用Eclipse插件的Corba(ECP)項目爲IDL文件提供一個編輯器:

http://eclipsecorba.sourceforge.net/

的編輯器不支持恆定IDL expresions(例如常量富=欄+ 1)。不幸的是,該項目不再維護(2008年的最新版本)。

對於IDE中的所有其他IDL功能,例如在資源管理器視圖中的「目標SDR」下顯示IDL,Redhawk IDE都有自己的解析器代碼來處理這個問題。 IDE的解析器目前具有相同的限制 - 它不識別常量IDL表達式。

+0

我在發佈這個問題後繼續研究這個問題,發現從RH1,10開始,IDL編輯器使用ECP,但爲目標SDR構建IDL存儲庫樹的代碼(允許選擇接口)繼續使用解析器在1.9中使用,之前在gov.redhawk.eclipsecorba.idl。*中使用,並且基於JavaCC編譯器編譯器,而ECP使用SableCC。令人驚訝的是,儘管他們的解析器語法能接受它們,但在處理const表達式時,BOTH也有相同的錯誤。 –

0

RedHawk使用三個不同的IDL分析器。 1)omnicpp(idl2cpp的omniorbs版本)使用它自己的解析器。 2)爲目標SDR中的IDL存儲庫構建樹的代碼使用gov.redhawk.eclipsecorba.idl。*中的插件,該插件具有基於JavaCC編譯器編譯器的解析器。 3)在RedHawk 1.9中引入的IDL編輯器在net.sf.eclipsecorba.idl。*中使用了一個不同的插件,它作爲基於SableCC的解析器,一個不同的編譯器編譯器。