0

我有一个可以解析容器和模块列表的语法,然后按字母顺序生成这些容器。但是,我还想将模块名称添加到容器列表中。

例如:

With the configuration:
CONTAINER cont1;
CONTAINER cont2;
MODULE external WITH PRIORITY 1;
MODULE internal WITH PRIORITY 2;


The generated file should have:
main()
{
  Container(cont1);
  Container(cont2);
  Container(external);
  Container(internal);
}

我能够生成 CONTAINER 配置中的内容。但我想将模块名称“内部”和“外部”合并到容器中。然后按字母顺序对它们进行排序。

有没有办法在 xtext 中做到这一点?这是否属于生成器或范围部分?

4

1 回答 1

2

这应该进入生成器。您需要它生成所有节点CONTAINER的列表。MODULE我假设你已经在 Xtend 中编写了生成器:

val list = Lists.newArrayList( model.containers )
list.addAll( model.modules )

遍历排序列表:

for( part : list.sortBy(e|e.name) ) {
    part.generateContainer()
}

然后每种类型一个 generateContainer() 方法。

于 2013-02-20T08:49:26.110 回答