- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析器实验报告
班级:1203105
学号:1120310528
姓名:陈向军
一.实验目的:
编译原理是理论与实践并重的课程。在本次实验中,通过自己编写一个小型的词法分析器,进而在训练编程能力的同时,加深对编译过程中词法分析部分的理解。
二.实验内容
1.设计原理
词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号
理论基础:有限自动机、正规文法
词法分析器:执行词法分析的程序
词法分析器的功能和输出形式
功能:输入源程序,输出单词符号(token)。即:把构成源程序的字符串转换成“等价的”单词(记号)序列
符号程序语言的单词符号一般分为以下五种:关键字、标识符、常数、运算符,界符
输出的单词符号的表示形式:
采用2元组形式,种别,属性值
流程图:
标识符开始 大、小写字母 大、小写字母,_
标识符
关键字
关键字
数字0-9 0-9,.
数字
字符或字符串“ 遍历到下一个”
字符或字符串
对应各自种别码其他各种符号
对应各自种别码
关键字:
{break,1,BREAK
}, {continue,2,CONTINUE},
{else,3,ELSE}, {float,4,FLOAT}, {for,5,FOR},
{if,6,IF}, {int,7,INT}, {return,8,RETURN},
{void,9,VOID}, {while,10,WHILE},
{printf,41,OUTPUT}, {scanf,42,INPUT},
{main,43,MAIN}, {function,44,function}
{+,16,PLUS
}, {-,17,MINUS}, {*,18,MULTI},
{/,19,RDIV}, {=,20,ASSIGN}, {,21,LT},
{,22,GT}, {=,23,LE}, {=,24,GE},
{!=,25,NE}, {(,26,LR_BRAC}, {),27,RR_BRAC},
{,,28,COMMA}, {;,29,SEMIC},
{[,30,LS_BRAC}, {],31,RS_BRAC}, {{,32,LB_BRAC},
{},33,RB_BRAC}, {%,34,REMAINDER}, {,35,AND},
{||,36,OR}, {!,37,NOT}, {++,38,INC},
{==,39,EQ}, {,40,ADDR}
常量,字符串,注释的状态转移图(DFA)
常量:
字符串:
注释:
程序部分设计
用字符串数组表示DFA:
常量:
public static String digitDFA[] = { #, #d.#e##, ###d###, ###de##, #####-d, ######d, ######d };
字符串:
public static String stConDFA[] = { #\\d#, ##a#, #\\d\, #### };
注释:
public static String noteDFA[] = { #, ##*##, ##c*#, ##c*/, ##### };
常量的DFA处理:
int s = 1;
Boolean isfloat = false;
while (ch != \0
(isDigit(ch) || ch == . || ch == e || ch == -)) {
if (ch == . || ch == e)
isfloat = true;
int k;
for (k = 1; k = 6; k++) {
char tmpstr[] = digitDFA[s].toCharArray();
if (tmpstr[k] != #
1 == in_digitDFA(ch, tmpstr[k])) {
token += ch;
s = k;
break;
}
}
if (k 6)
break;
i++;if(i=strLine.length) break;
您可能关注的文档
最近下载
- 500kV架空输电线路索道架设施工方案2016-08-19.pdf
- 精品解析:湖南省张家界市永定区2024-2025学年八年级上学期期末考试地理试题(原卷版).docx VIP
- 厚街体育馆钢结构技术.pdf
- 超声引导技术用于疼痛治疗中国专家共识 (2024 版).pptx
- (新版)主治医师资格(全科医学301)考试历年真题汇总及答案.docx
- RBANS记录表(精分,重度抑郁,焦虑障碍,正常对照).docx VIP
- 社会主义发展简史学ppt课件.pptx
- 基于博图平台的标准焊接工作站仿真环境实现.docx VIP
- 《工程项目管理》全套教学课件(共8章).pptx
- 真空炉专用热电偶及其选择.pdf
文档评论(0)