2013-04-23 71 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的小节“自定义验证”中。