Список переменных, разделенных запятыми, в Xtext

У меня есть грамматика для конкретного DSL. Вот фрагмент (написанный в Xtext):

Vars: 'var' (vars += Var) 
Var: ID (',' ID) * ':' Type ';'

А вот пример ввода:

var
  a,b,c : int;
  d,e: bool;

Меня очень интересует опция автоматической генерации кода Xtend, и я хочу иметь отдельный объект для каждой переменной, сохраняя ее id и тип. Используя синтаксис грамматики Xtex, все, что я могу сделать, это:

Var: ids+=ID (',' ids+=ID)* ':' type =[Type] ';'

Это означает, что у меня может быть более одного идентификатора в одном объекте. Как я могу хранить каждый «a», «b», «c» в одном объекте?


person ye9ane    schedule 10.08.2014    source источник


Ответы (1)


Невозможно хранить каждую переменную вместе с ее типом. Вам нужно будет реализовать некоторую логику, которая проходит через вашу модель, чтобы найти тип. Вы можете сделать это с производными свойствами самого Var.

person Sebastian Zarnekow    schedule 02.10.2014