2

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

我试过了:

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

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

4

2 回答 2

3

实现目标的简单方法:

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

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

于 2013-05-01T10:03:26.070 回答
2

这可以满足您的要求:

Root:
  (entity+=Entity | component+=Component)*
;
于 2013-04-24T05:27:40.103 回答