xtext:不同顺序的语句

时间:2013-04-23 10:08:46

标签: xtext

我正在尝试编写一个xtext规则,我可以用不同的随机顺序编写语句,但所有语句都必须保存为列表。

我试过了:

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

但它不起作用。 有人能帮助我吗?

2 个答案:

答案 0 :(得分:3)

实现目标的简便方法:

  • 使用Svens答案的语法部分。这允许您自由地混合实体和组件。
  • 添加自定义验证检查以确保至少有一个实体和至少一个组件。

自定义验证的文档位于章节Validation,子章节“自定义验证”中。

答案 1 :(得分:2)

这就是你所要求的:

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