node label/key in XText when translating from grako

67 Views Asked by At

In grako one can use the following name:e to add the result of e to the AST using name as key. For example

var_def
    =
    var+:ID {',' var+:ID}*

What would be a good translation of this to Xtext? I tried

var_def:
     var=ID (',' var=ID)*;

which is not failing, but is raising the following warning

Multiple markers at this line
- The possibly assigned value of feature 'var' may be overridden
   by subsequent assignments.
- This assignment will override the possibly assigned value of
   feature 'var'.

I think I am trying to mimic the name behavior, but do not have much success.

1

There are 1 best solutions below

0
On BEST ANSWER

With your solution only the last ID will be available in the AST. I assume var should be a multi-valued feature holding all IDs, not only the last one. This can be expressed as

var_def:
    var+=ID (',' var+=ID)*;

In the resulting AST var is a list of IDs.