我认为在LR(1)解析器中实现合成属性很简单。因为它也是自下而上。
但是如何在LR(1)解析器中实现继承属性?
用于比较LR(1)中的这两个东西。对于LR(1)中的合成属性和继承属性。你能举个例子吗?
答案 0 :(得分:0)
要进行任意属性语法,您需要构建一个完整的树,因为来自“正确”子节点的合成属性可以被节点的“左”子节点用作继承属性。
因此您无法在解析时进行评估;你需要完整的AST。 (如果您愿意仅将继承的属性限制为“正确”的子项,则可以在解析时评估属性。)
一旦你决定在运行评估之前捕获完整的AST,只要它产生AST,你的解析技术是什么并不重要。
您可以查看使用AG结果的生产程序转换工具的attibute grammars look like。解析器是一个GLR解析器,它是LR解析的推广。