【发布时间】:2020-07-26 23:02:28
【问题描述】:
我读过 synthesized 和 inherited 属性是不相交的集合。但是我很难从定义中推断出这一点,这表明我对这些定义缺乏了解。
假设我有一个产生式S -> E + E。如果我按以下方式分配定义我的属性:
S -> E1 + E2
E1.side = left
E2.side = right
E1.position = 1
E2.position = E1.position + 2
E 的 side 属性既不使用父节点和兄弟节点的属性,也不使用子节点的属性。那么它是 inherited 属性,还是 synthesized?为什么呢?为什么它不属于其他类别?
position属性也有什么不同吗?
【问题讨论】:
标签: parsing compiler-construction abstract-syntax-tree semantic-analysis