据我所知,在ANTLR中使用返回值和元素标签足以构建AST。 e.g。
r returns [int c, String d] :
a='class' b=ID ... {$c=$b; $d=$a;}
eBNF的这种扩展称为S-attributed grammar吗?
以这种方式构建AST是否常见?
我对这个归因语法的unparsing AST(不一个解析树)构建特别感兴趣。将属性限制为纯分配有什么好处吗? (没有函数调用,例如$c= fun($a)
)我已经解释了我的解析问题here on SO。