我正在使用Xtext,我对DSL中变量的定义感到奇怪。我使用DSL来定义输入模型,对其进行操作,然后将其序列化为输出模型。
我的操作不会以任何方式影响变量声明,但我得到一些非确定性行为。例如,当我的输入是:
variables : {v, k}
有时候输出是相同的(这很好)但有时它会产生:
variables : {v}
variables : {k}
我的语法的相关片段是:
Problem:
.....
('variables'':''{'
varDecl +=VariableDeclaration (',' varDecl +=VariableDeclaration)* '}'
)? &
.....
;
VariableDeclaration:
name =ID
;
为什么我会得到这种行为和/或如何解决这个问题?