Xtext 序列化程序生成无效的 DSL

Xtext serializer generates not valid DSL

我有 DSL 实例,我正在尝试序列化它们。我有以下语法:

Database returns schema::Database:
    'database' name=EString  '{'
    (keys+=Key ( "," keys+=Key)*)? )
    ('structures''{' structureList+=(Group|Template)(','structureList+=(Group|Template))* '}')?
    '}'
;

Group returns schema::Group: 
    structureType=StructureType name=EString
    ('{'
        ('table' '{' tableFieldList=FieldList '}')?)
    '}')

;

首先,序列化程序会忽略键的逗号,并且不会在 "keys" 之间生成它。第二个问题是 "structures" 为每个结构生成此关键字。当我在 DSL 编辑器中导入文件时,它们是无效的,所以语法工作正常,但序列化器不行。知道如何解决这个问题吗?

我假设您遇到问题的完整版语法使用了无序组,不是吗?无序组是由运算符“&”分隔的元素。

如果我的假设成立,那么 https://bugs.eclipse.org/bugs/show_bug.cgi?id=369175 会解释您所描述的行为。