我有一个可以解析容器和模块列表的语法,然后按字母顺序生成这些容器。但是,我还想将模块名称添加到容器列表中。
例如:
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配置中的内容。但我想将模块名称“internal”和“external”合并到容器中。然后按字母顺序对它们进行排序。
有没有办法在xtext中执行此操作?这属于发电机或范围部分吗?
答案 0 :(得分:2)
这应该进入发电机。您需要它生成所有CONTAINER
和MODULE
节点的列表。我假设您已经在Xtend中编写了生成器:
val list = Lists.newArrayList( model.containers )
list.addAll( model.modules )
遍历排序列表:
for( part : list.sortBy(e|e.name) ) {
part.generateContainer()
}
然后每种类型一个generateContainer()方法。