- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理实验报告册
实 验 报 告 说 明
本课程实验从开课学期第9周开始,每周2学时上机实验课,第16周结束,其中第16周为实验检测,共14学时。除统一安排的时间外,学生还可根据自己的实际适当安排课余时间上机。实验课注意事项如下:
每次实验前学生必须充分准备每次的实验内容,以保证每次上机实验的效果。实验过程中必须独立完成。
每次实验课将考勤,并作为实验成绩的重要依据。
每次实验完成后,及时撰写实验报告并交实验指导老师批阅。
实验报告中学生必须填写【实验地点】、【实验时间】、【实验过程】以及【实验总结】,注意:必须手写完成,并独立撰写实验总结,严禁抄袭。
每次实验完成后,请将实验结果发送到教师指定邮箱(jkxllj@)
附 实验成绩登记表
实验名称 实验一 实验二 实验成绩 实验名称:一个简单词法分析器的设计与实现 指导教师:刘丽娟
实验地点: 新实验楼项目一实验室
实验日期: 2016年 5 月 10 日 成绩:
实验目的:
了解词法分析的任务;
掌握词法分析程序的工作流程。
实验内容:
定义模拟的简单语言的词法构成,编制词法分析程序,要求将用模拟语言书写的源程序进行词法分析,输出源程序清单,Token文件和错误信息文件。若有错误,必须输出错误在源程序中行号和列号,并将符号表和字符串以文件的形式写出来。
基本要求:
1.写出该实验的实验步骤;
2.写出实验中遇到的问题及解决的方法。
实验步骤:
1,分析关键字(语言保留标识符等)
2,定义模拟的简单语言的词法构成
3,将关键字装入HashMap中
4,读入要分析的程序文件
5,词法分析
6,将分析结果tokens保存到List集合中
7,输出tokens到文件中
核心代码:
关键字:
public class KeyWords {
public String keyWord = ;
public KeyWords (String keyWord) {
this.keyWord = keyWord;
}
public String toString() {
return this.keyWord;
}
/**列举写关键字*/
public static final KeyWords
and = new KeyWords(),
or = new KeyWords(||),
equal = new KeyWords (==),
For = new KeyWords(for),
Do = new KeyWords(do),
……
private static ListKeyWords keyWordsLists = new ArrayListKeyWords();
/**向外界提供对象集合*/
public static ListKeyWords getKeyWordsLists() {
keyWordsLists.add(and);
keyWordsLists.add(or);
keyWordsLists.add(equal);
keyWordsLists.add(For);
keyWordsLists.add(Do);
……
return keyWordsLists;
}
}
数据类型:
public class DataType extends KeyWords{
public String dataType=;
public DataType(String s) {
super(s);
this.dataType=s;
}
/**八种基本数据类型*/
public static final DataType
Int = new DataType(int),
Float = new DataType(float),
……
private static ListDataType dataTypeLists = new ArrayListDataType();
/**向外界提供对象集合*/
public static ListDataType getDataTypeLists() {
dataTypeLists
文档评论(0)