介绍小白关于第9章minus-C语言编译器的编写
发布时间
阅读量:
阅读量
简介
在上一节8中提及,通过人工构建的语法树对以下C语言代码进行解析:
a = 1
sum = 0
input(x)
while(a <= x){
sum = sum + a
a = a+1;
}
print(sum)
构建语法树的过程不应由用户手动完成,编译器需要采用一种能够自动实现该功能的机制。本部分内容将阐述如何借助前1-6节所介绍的lex、yacc及符号表知识,结合7-8节涉及的语法树相关技术,来实现对指定C语言代码的自动化构建流程。
动机
在第5节所介绍的具备变量支持功能的计算器中,针对expr的语法分析过程采用了如下所示的yacc代码:
lines : lines expr EOL { printf("%g\n", $2); }
| lines EOL
| lines COMMENT
||
;
expr : expr PLUS expr {
$$
= $1 + $3; }
全部评论 (0)
还没有任何评论哟~
