在grako中,可以使用下面的name:e将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的行为,但是没有太多的成功。
发布于 2016-04-25 07:08:16
对于您的解决方案,AST中只有最后一个ID可用。我认为var应该是一个多值特性,可以保存所有I,而不仅仅是最后一个I。这可以表示为
var_def:
var+=ID (',' var+=ID)*;在最终的AST中,var是一个ID列表。
https://stackoverflow.com/questions/36779299
复制相似问题