第5章 语法制导翻译1.pptVIP

  • 6
  • 0
  • 约8.97千字
  • 约 33页
  • 2017-09-09 发布于湖北
  • 举报
第5章 语法制导翻译1

语义变量及辅助语义函数 1.NXQ?全局变量,用于指示所要产生的下一四元式的序号; 2.GEN(…)?其意义同前,每次调用,NXQ++; 3.int Merge(int p1,int p2)?将链首“指针”分别为p1和p2的两条链合并为一条,并返回新链的链首“指针”(此处的“指针”实际上是四元式的序号,应为整型值)我们假定四元式是以一结构形式表示(存储)的: struct _Quadruple{ int Op, arg1, arg2, Result; } QuadrupleList[]; 4.void BackPatch(int p,int t)?用四元式序号t回填以p为首的链,将链中每个四元式的Result域改写为t的值。 函数Merge( )及BackPatch( )的程序见书中P207 翻译布尔表达式的属性文法 1.Expr→iden {$$.TC=NXQ; $$.FC=NXQ+1; GEN(jnz,Entry($1),0,0); GEN(j,0,0,0);} | iden rop iden {$$.TC=NXQ; $$.FC=NXQ+1; GEN(jrop,Entry($1),Entry($3),0); GEN(j,0,0,0);} | ‘(’ Expr ‘)’ {$$.TC=$2.TC; $$.FC=$2.FC;} | ‘﹃’ Expr {

文档评论(0)

1亿VIP精品文档

相关文档