- 2
- 0
- 约1.53万字
- 约 70页
- 2016-08-23 发布于河南
- 举报
compiler-principle06_01
E ? T {R.i:=T.nptr} R {E.nptr:=R.s} R ? + T {R1.i:=mknode(‘+’,R.i,T.nptr)} R1 {R.s:=R1.s} R ? - T {R1.i:=mknode(‘-’,R.i,T.nptr)} R1 {R.s:=R.s} R ? ? {R.s:=R.i} T ? ( E ) {T.nptr:=E.nptr} T ? id {T.nptr:=mkleaf(id,id.entry)} T ? num {T.nptr:=mkleaf(num,num.val)} 6.4.2 自顶向下翻译 使用继承属性构造a-4+c的抽象语法树 E T R id To entry for a id T.nptr - T num num 4 T.nptr R. i - R + T R id To entry for c id T.nptr R. i + R. i ? R. s R. s R. s E.nptr 1. 对每个非终结符A构造一个函数过程,对A的每个继承属性设置一个形式参数 函数的返回值为A的综合属性(作为记录,或指向记录的一个指针
原创力文档

文档评论(0)