附录A一个完成的编译器前端程序
附录A 一个完成的编译器前端程序
这个附录给出了一个完整的编译器前端程序,它是基于2.5-2.8节中非正式描述的简单编译器编写的。和第二章的主要不同之处在于这个前端象6.6节中描述的那样为布尔表达式生成跳转代码。我们首先给出源语言的语法。描述这个语法所用的文法需要进行调整,以适应自顶向下的语法分析技术。
这个翻译器的Java代码由五个包组成:main、lexer、symbol、parser和inter。包inter中包含的类处理用抽象语法表示的语言结构。因为语法分析器的代码和其它各个包交互,它将在最后描述。每个包被存放在一个独立的目录中,每个类都有一个单独的文件。
作为语法分析器的输入时,源程序就是一个由词法单元组成的流,因此面向对象特性和语法分析器的代码之间没有什么关系。当由语法分析器输出时,源程序就是一棵抽象语法树,树中的结构或结点被实现为对象。这些对象负责处理下列所有的事情:构造一个抽象语法树结点,类型检查,生成三地址中间代码(见包inter)。
A.1源语言
这个语言的一个程序由一个块组成,该块中包含了可选的声明和语句。记号basic表示基本类型。
(见原文)
把赋值当作一个语句,而不是表达式中的运算,进行处理可以简化翻译工作。
(见原文)
表达式的产生式处理了运算符的结合率和优先级。它们对每个优先级级别都使用了一个非终结符号,而非终结符号factor被用来表示括号中的表达
您可能关注的文档
最近下载
- 《年产10亿刺五加片生产工艺和车间初步设计》-毕业论文.doc VIP
- 2026中国半导体ALD设备行业未来趋势与需求前景预测报告.docx
- 计算机软件源代码授权合同.docx
- 电阻电感RL积分_微分实验电路及仿真_吕伟锋.pdf VIP
- 第一单元第1节+从互联到物联 课件+2025-2026学年川教版(2024)初中信息科技八年级上册.pptx VIP
- 举报信范文范文.docx VIP
- 素养导向的单元重构:初中数学二次根式复习课的教学设计与实施.docx VIP
- 高速公路桥梁常见病害成因及预防措施.doc VIP
- 公路收费及监控员考试培训试卷(2025).docx VIP
- 阳关三叠F调正谱伴奏原调伴奏谱.pdf VIP
原创力文档

文档评论(0)