我在 ANTLR 中有一个简单的规则:
title returns [ElementVector<Element> v]
@init{
$v = new ElementVector<Element>() ;
}
: '[]'
| '[' title_args {$v.add($title_args.ele);} (',' title_args {$v = $title_args.ele ;})* ']'
;
title_args 为:
title_args returns [Element ele]
: author {$ele = new Element("author", $author.text); }
| location {$ele = new Element("location", $location.text); }
;
尝试编译时,我遇到了标题规则中的 127 错误:title_args is a non-unique reference。
我已经按照本网站中另一个类似问题的解决方案(如何处理 ANTLR 中的列表返回值)但是它似乎只适用于词法规则。
有没有特定的方法可以绕过它?
谢谢你,克里斯托斯