2012-12-23 41 views
1

我在創建數據類型時遇到了問題。問題出在這個函數內:Xtend/Xtext數據類型

«FOR e: bla.EAllAttributes» 
     «e.EType.name» «e.name»; 
    «ENDFOR» 

這個for-loop只爲e.EType.name返回EInt或EString。但我需要在我的DSL中創建的終端規則/數據類型,比如double,boolean等等。看起來每個帶有字符串表達式的終端規則都是以EString形式返回的,而只有數字的規則以EInt形式返回。枚舉正確返回,雖然...

在此先感謝您的幫助。

回答

2

在手冊中有一節解釋您的問題。請參閱「參考文獻」,「語法學語言」,「的語法」,「規則」,「終端規則」,「返回類型」:

每個終端規則返回一個原子值(Ecore的EDataType)。默認情況下,它假定應該返回一個ecore :: EString實例)。但是,如果你想提供不同的類型,你可以指定它。

該部分還概述了您必須提供的值轉換器的語法更改和註冊。

還有另一部分「數據類型規則」,它基本上表示它與「終端規則」的情況相同,並將您轉到「值轉換器」部分。