- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学生学号 实验课成绩
武汉理工大学
学 生 实 验 报 告 书
实验课程名称 编译原理
开 课 学 院 计算机科学与技术学院
指导老师姓名 饶文碧
学 生 姓 名
学生专业班级 软件zy1302
2015 — 2016 学年 第 1 学期
实验课程名称: 编译原理
实验项目名称 单词的词法分析程序设计 实验成绩
实验者 专业班级 软件zy1302 组别
同组者 实验日期 2015年12月29 日
第一部分:实验分析与设计 (可加页)
一、实验内容描述 (问题域描述)
1.问题描述:
对于常用高级语言 (如Pascal、C语言)的各类单词进行词法分析。
2.实验内容:
完成对某一种常用高级语言 (如Pascal、C语言、PL/0语言)的各类单词进行词法分析,
即对源程序从左到右进行扫描,对组成源程序的字符串拼接成为单词;并把其转换成属性字输
出。
3.实验要求:
(1)选择常用高级程序设计语言 (如 Pascal、C语言、PL/0语言)的源程序作为词法分析对
象。
(2)根据教学要求和学生具体情况,从上列语言之一中选取它的一个适当大小的子集,可以
选取一类典型单词,也可以尽可能使各种类型的单词都能兼顾到。其基本要求是:对源程序从
左到右进行扫描,对组成源程序的字符串拼接成为单词;并把其转换成属性字输出。
二、实验设计 (包括实验方案设计,实验手段的确定,实验步骤,实验过程等,用
硬件逻辑或者算法描述 )
Token.java:
public class Token
{
private int tokenType; // 单词种别码
private String tokenValue; // 单词值
public Token(int tokenType, String tokenValue)
{
this.tokenType = tokenType;
this.tokenValue = tokenValue;
}
public int getTokenType()
{
return tokenType;
}
- 1-
public String getTokenValue()
{
return tokenValue;
}
}
TokenTable.java:
public class TokenTable
{
private static HashMapString, Integer identifierOrNumberTable = new
HashMap(); // 标识符或数值-标识符或数值种别码
private static HashMapString, Integer keywordTable = new HashMap();
// 关键字-关键字种别码
private static HashMapString, Integer delimiterTable = new HashMap();
// 界符-界符种别码
private static HashMapString, Integer operatorTable = new HashMap();
// 运算符-运算符种别码
static
{
identifierOrNumberTable.put(error, 0);
identifierOrNumberTa
文档评论(0)