编译原理中间代码生成分析.ppt

machunyan 西北工业大学软件与微电子学院 * 上述简单控制语句的三地址码生成过程实现: void genCode SyntaxTree t,char *label char * lab1,*lab2; if t! NULL switch t- kind case ExpKind: t- strval newtemp ; if t- val 0 emit t- strval“ false” ; else emit t- strval“ true” ; 初值为空 6.4.3 if和while语句的代码生成过程样例(续) machunyan 西北工业大学软件与微电子学院 * case IfKind: genCode t- child[0],label ; lab1 genLabel ; emit “if_false” t- child[0]- strval “goto” lab1 genCode t- child[1],label ; if t- child[2]! NULL lab2 genLabel ; emit “goto” lab2 ; emit “label” lab1 ; if t- child[2]! NULL genCode t- child[2],label ; emit “label” lab2 ;

文档评论(0)

1亿VIP精品文档

相关文档