- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析报告
C语言词法分析程序要求:识别C语言代码中的每个单词符号,以记号的形式输出每个单词符号。识别并读取源程序中的注释。统计源程序中语句行数,字符个数(空格与标点不算),单词个数。检查源程序中的错误,并报告错误的行列位置。存在错误后,对源程序进行适当回复,使词法分析继续进行,一次分析处理能找出所有错误。程序设计说明:程序语言:c++语言单词模式: 32个关键字:auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while。 9个边界符:,,;,,\,(,),{,},#。 29个运算符:[,],-,.,!,++,--,,~,*,/,%,+,-,,,,=,,=,==,!=,,||,=,+=,-=,*=,/=。记号:标识符,常数,运算符,边界符。程序输入与输出:以文件流的方式输入和输出,通过文件名打开指定文件(test.cpp)输入待分析的源程序,在指定的文件中输出分析结果:Output.dat:输出单词记号及其位置Error.dat:输出源程序存在的错误及其位置Note.dat:输出注释Key.dat: 保存关键字boundary.dat:保存边界符 relop.dat:保存运算符记号文法及DFA:标识符:id-letter(letter|digit)*letter-A|B|…|Z|a|b|…|zdigit-0|1|…|92. 常数:num-digit|digit.digitdigit-0|1|…|9 DFA: letter|_|digit10入口_|letterother*E|edigit digitdigitdigit675432digit.digitE|e+|-digitother*other*other*8=9=Other*10 =other11==Other*12!=Other*13++=Other*13--=Other*14*=Other*15%=Other*16=Other*17||=Other*18^=Other*~、?、:、(、)、{、}、#、.、;、”、’、[、]、\非’\n’2019//‘\n’非*非/*2221**/Other*23other入口出口运行过程:开始运行:输入源程序代码文件:输出结果:记号错误:注释;
文档评论(0)