如何确定属性是从语法的产生式合成还是继承?
我猜想该属性必须在问题中预定义——如果它的值取决于子节点或父节点。但是有没有办法分析一个属性是从语法产生式继承还是合成的。
最佳答案
综合属性:从附加到其非终结符子级的属性中获取其值的属性。
继承属性:从附加到其非终结符的父级(或同级)的属性获取其值的属性。
**PRODUCTION** **SEMANTIC RULES**
T->FT’ T’.inh=F.val
T.val=T’.syn
T’->*FT1’ T1’.inh=T’.inh*F.val
T’.syn=T1’.syn
T’->Ɛ T’.syn=T’.inh
F->id F.val=id.lexval
从给定的语法规则(产生式)可以看出,inh 是继承属性,syn 是合成属性。
<小时/>进一步阅读:Attribute Grammars .
关于parsing - 综合和继承属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576896/