2013-04-23 36 views
2

我想寫一個xtext規則,我可以在不同的隨機順序中編寫語句,但所有語句都必須保存爲列表。xtext:按不同順序的語句

我想:

Root: 
((entity += Entity)? & (component += Component)?)* 
; 

但它不工作。 有人可以幫我嗎?

回答

2

這確實你問什麼:

Root: 
    (entity+=Entity | component+=Component)* 
; 
+0

這就是我一直在尋找的東西。 但是,我如何才能將此規則更改爲實體和組件必須至少出現一次的規則。 – tom 2013-04-24 10:52:25

3

一個簡單的方法來實現目標:

  • 使用Svens答案語法部分。這使您可以自由混合實體和組件。
  • 添加自定義驗證檢查以確保至少有一個實體和至少一個組件存在。

自定義驗證的文檔在Validation的小節「自定義驗證」中。