欢迎来到天天文库
浏览记录
ID:44668296
大小:431.27 KB
页数:8页
时间:2019-10-24
《语法分析词法分析实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、编毎原理实验报告词法分桥和语法分析专业班级jk0701学生姓名学号07281011实验题目:研究性学习专题一词法分析程序构造原理与实现技术研究性学习专题二递归下降语法分析设计原理与实现技术-实验目的(1)研究性学习专题一V标识符>f字母丨V标识符〉字母丨V标识符>数字V无符号整数〉f数字丨V无符号整数〉数字V单字符分界符〉->4-I-I*I;I(I)V双字符分界符V大于〉二IV小于>二IV小于>>丨V冒号〉二丨V斜竖>*V小于〉V等于>-*=V大于>f>V冒号〉f:V斜竖〉f/该语言的保留字:begine
2、ndifthenelsefordowhileandornot[设计说明](1)该语言大小写不敏感;(2)字母为a-zA-Z,数字为0-9;(3)可以对上述文法进行扩充和改造;(4)7*……*厂为程序的注释部分。(2)研究性学习专题二G[E]:E->TE,Ez->ATE/
3、eT—FT'T,->MFTZ
4、eF-(E)
5、iA->+卜M->*
6、/[设计说明]终结符号i为用户定义的简单变量,即标识符的定义。二实验分析过程词法分析程序功能描述:根据上述正则文法,输入一串字符串,输出一串二元式序列组成的中间文件,在实现
7、的过程中,能发现输入串中的错误。语法分析程序功能描述:根据词法分析输出的二元式序列,对二元式序列进行判定,时候满足语法的要求,若满足,则输出结果为正确,反之,为错误。主要数据结构:用TokenBean类存储数字,标识符,保留字的类别,表示,和识别名publicclassTokenBean{Stringname;Stringcode;intkind;}JIJArrayList來装TokenBean类程序结构描述:(1)词法分析过程用到的主要函数publicbooleanisNumber(charch)//判
8、断输入字符是否为整数publicbooleanisAlph(charch)//判断输入字符是否为字母privatevoidisKey(Stringstr)//判断str是关键字还是标识符publicvoidexcute(Strings)//对字符串s进彳亍分析,得出二元式(2)语法分析过程用到的主要函数publicbooleanipresent(intkind)//识别保留字,标识符,整数以下是判断函数,入口为E()若E为真,则二元式序列满足语法分析privatebooleanE()//E~TErpriv
9、atebooleanEl()//Ez-fATE'
10、£privatebooleanA()//A-+1-privatebooleanT()//T-FTfprivatebooleanT1()//T*fMFT’
11、;privatebooleanM()//M-**1/privatebooleanF()//F-(E)
12、i流程图("词法分析程序执行图:Rxcujte(s>开始►判断结束(2)语法分析程序流程图:三验结果及分析正确实例:a+b-c*d(1)词法分析过程输入:字符串输出:二元式序列并可以保存二元式序列(2)语
13、法分析过程对二元式序列进行判定,给岀的例题是正确的,所以结果为true错误实例分析:(a+b(1)词法分析过程输入:字符串输出:二元式序列并可以保存二元式序列代码显示区(a4-b打开文件语法分析文件代码tokenS示区[单字节符号]((,18)[标识符](a,12)[单字节符号](+,14)[标识符]
14、难点:在实现的过程中,对string类的不了解,从char转换到string的过程中,出现错谋。对程序的整体框架在开始的时候,考虑不周详,尤其是对while循环条件设置,通过不断地反复调试,能基木上实现词法分析和语法分析的功能。收获:能把用八图形界血和编程较好的实现在一起。
此文档下载收益归作者所有