从grako翻译时,XText中的节点标签/键

时间:2016-04-21 19:58:24

标签: xtext grako

在grako中,可以使用以下name:e使用name作为键将e的结果添加到AST。例如

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

这对Xtext有什么好的翻译? 我试过了

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

没有失败,但是提出了以下警告

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'.

我想我试图模仿name行为,但没有取得多大成功。

1 个答案:

答案 0 :(得分:1)

使用您的解决方案,AST中仅提供最后一个ID。我假设var应该是一个包含所有ID的多值功能,而不仅仅是最后一个ID。这可以表示为

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

在结果中,AST var是一个ID列表。