语法制导翻译和中间代码生成24891.pptVIP

  • 12
  • 0
  • 约1.54万字
  • 约 82页
  • 2017-07-09 发布于江西
  • 举报
语法制导翻译和中间代码生成24891

3、改写产生式 S ?if E then S(1) else S(2) 改写为: C ?if E then T ?C S(1) else S ?T S(2) S ?if E then S(1) 改写为: C ?if E then S ?C S(1) 4、语义子程序 C ?if E then {BACKPATCH(E?TC,NXQ); C?CHAIN=E?FC;} T ?C S(1) else {q=NXQ; GEN(j,-,-0); BACKPATCH(C?CHAIN,NXQ); T ?CHAIN=MERG(S(1)?CHAIN,q)} S ?T S(2) {S?CHAIN=MERG(T?CHAIN,S(2)?CHAIN)} S ?C S(1) {S?CHAIN=MERG(C?CHAIN,S(1)?CHAIN)} 注: 1)这里的基本思想是拉链回填; 2)当if E rhen归约为C时,布尔式E已不在栈内,故其语义值E.FC也不复存在,但E.FC尚未回填,可将它暂存于非终结符C的CHAI

文档评论(0)

1亿VIP精品文档

相关文档