Я использую Xtext и получаю странное поведение в отношении определений переменных в моем DSL. Я использую DSL для определения входной модели, манипулирования ею, а затем сериализации в качестве выходной модели.
Мои манипуляции никак не влияют на объявления переменных, но я получаю некоторое недетерминированное поведение. Например, когда я ввожу:
variables : {v, k}
Иногда вывод идентичен (что хорошо), но иногда он выдаст:
variables : {v}
variables : {k}
Соответствующий фрагмент моей грамматики:
Problem:
.....
('variables'':''{'
varDecl +=VariableDeclaration (',' varDecl +=VariableDeclaration)* '}'
)? &
.....
;
VariableDeclaration:
name =ID
;
Есть идеи, почему у меня такое поведение и / или как это исправить?