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
会解释您所描述的行为。
我有 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 会解释您所描述的行为。