当前位置:文档之家› 编译原理实验报告-语义分析

编译原理实验报告-语义分析

编译原理课程实验报告实验3:语义分析
图2-1
本程序根据之前两个实验的结果进一步进行语义分析,主要是通过在第二个实验句法分析过程中添加语义分析功能完成的。

在代码编写之前,我将程序的功能模块分为界面及主控程序,实体类和工具类三大部分。

MyCompiler是整个程序运行的入口,是主控程序;ComplierFrame完成程序的界面,以及界面里事件的响应;Token是词法分析中词法单元的实体类;ErrorToken是错误的词法单元实体类;Symbol是句法分析中符号的实体类;Production是产生式的实体类;ErrorProduction是句法分析中产生错误的时候使用的产生式实体类;Id是标示符实体类,保存了语义分析后的标识符表;Node是语法分析树的节点类,帮助完成语法分析树的构造;LL类使用LL(1)分析法完成句法分析,同时完成语义分析;MyScanner完成了词法分析。

图2-2
得分
三、详细设计及实现
要求:对如下工作进行展开描述
(1)核心数据结构的设计
本程序使用了两个新的实体类,分别是Id和Node。

Id是标识符,里面也包含了该标识符在本程序中存储的地址和长度等信息。

Id的属性如下:
private String name; //名
private String type;//基本类型
private int offset;//起始地址
private int length;//长度
开始
输入
词法分析
读入Token
尝试匹配
是否错误存储错误记录,处理栈顶与Token 序列
是否为语义符号
存储产生式,处理栈顶与Token 序列
判断动作符号执行语义动作
是否读到Token
末尾
打印结果
结束
分析结果以及错误报告:
图4-1 标识符表:
图4-2。

相关主题