2012-11-08 28 views
1

我有一個關於Xtext的問題。我知道Xtext爲.xtext文件中編寫的DSL創建了一個Ecore Modell。我是否知道xtext只能在Ecore模型中創建EClass,EAttribute,EEnum和ERefernce?沒有辦法創建規則的屬性來進行EOperaption?Xtext - 操作

+0

那麼我不會需要它,如果我能得到引用對象的類型和名稱..這個對象和引用的名稱。後者我可以得到與ERerferenceObject.name ...但第一個是真的一個問題,我不能收集對象只有引用的EClass。這是我的dsl:setEntity =([Entity])中的示例代碼...我可以獲取ERerfence setEntity的名稱,並且我可以獲取EReference的EClass和引用的EObject的EClass,但也不會獲得名稱或其他信息那是在對象內。 – soMasu

回答

2

Xtext允許導入現有的EPackage或從語法定義中推斷出新的EPackage。由於EOperations與具體的語法無關,因此沒有任何可以推斷的東西。如果您想使用EOperations,我建議切換到手動維護的導入包。

1

添加到Sebastian的答案:如果你仍然想使用推斷模型,你可以使用模型後處理器來調整模型。如果您只想在模型中只調整一兩件事情,比如更容易 - 添加附加的操作,這會更容易。

+0

那麼我不會需要它,如果我可以得到**引用的對象_type_和_name_ .. **這個對象和引用的名稱。後者我可以得到與ERerferenceObject.name ...但第一個是真的一個問題,我不能收集對象只有引用的EClass。這是來自我的dsl:setEntity =([Entity])的示例代碼...我可以獲得ERerfence detEntity的名稱,並且我可以獲得EReference的EClass和引用的EObject的EClass,但也不會獲得名稱或其他信息那是在對象內。 – soMasu

+0

@soMasu:我不確定你在說什麼。但是,如果在執行'xyz.getSetEntity()。getAbc()'時不能從'Entity'獲得東西,那麼這是一個完全不同的故事。這聽起來「解決」沒有成功。 –

+0

簡單地說,我有一個像compileClass(EClass o)這樣的方法,並且想要用所有的Attributes和它的名字和類型以及所有的名字和類型的引用來構建一個Template。屬性並不是使用for循環getEAllAttributes和EAttribute.name以及EAttributeType.name完成的問題。但引用是我沒有從他們那裏得到我需要的信息的問題 – soMasu