编译器的词法分析

编译器的词法分析

ID:42608641

大小:319.49 KB

页数:20页

时间:2019-09-18

编译器的词法分析_第1页
编译器的词法分析_第2页
编译器的词法分析_第3页
编译器的词法分析_第4页
编译器的词法分析_第5页
资源描述:

《编译器的词法分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、佛山科学技术学院实验报告课程名称编译原理实验项目编译器的词法分析专业班级计算机1班姓名学号指导教师黄营成绩H期2014⑹7一、实验目的;通过阅读PL语言的语法图,设计、编制并调试一个PL词法分析程序,加深学生对词法分析原理的理解。二、实验内容;(1)跳过分隔符(如空格,回车,制表符);(2)识别诸如begin,end,if,while等保留字;(3)识别非保留字的一般标识符,此标识符值(字符序列)赋给全局量id,而全局量sym赋值为SYM」DENTIFIER。(4)识别数字序列,占前值赋给全局量NUM,sym则置为SYM_NUMBER;(5)识别:

2、二,<=,>二之类的特殊符号,全局量sym则分别被赋值另SYM_BECOMES,SYM_LEQ,SYM_GEQ等。相关过程(函数)冇getsym(),getch(),M屮getch()为获取单个字符的过程,除此Z外,它还完成:(1)识别且跳过行结束符;(2)将输入源文件进行词法分析后写到输出文件;(3)产生一份程序列表,输出相应行号或指令计数器的值。三、实验步骤;1.根据PL/O语言的文法规范,编写PL/O语言的词法分析程序。2.通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力。3.掌握从

3、源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。四、程序代码;Alphabet.hpp:#inelude#inelude^includeusingnamespacestd;constintXUMBERMAX二10;constintLETTERMAX二52;constintKEYWORDMAX二13;//关键字13constintLTMTTMAX二5constintOPERMAX二12;//基本字//13conststringtag[KEYWORDMAX]={/zbeginz"c

4、all","const","do","end","if",〃ocld〃,"procedure":〃」〃〃▲匸〃〃〃〃「・[〃〃・亠〃iread,then,var,wn1Ie,write/conststringtagCode[KEYWORDMAX]={"beginsynT,"cal1sym〃,〃constsym","dosynf:"endsymz/,〃・“〃〃」」〃〃」〃〃」〃〃4[〃//〃/7[・i〃〃・〃[lisym,oddsym,proccduresym,readsym,thensym,varsym,whilesym,writesym/;//运

5、算符・*x/lf〃,〃〃〃〃■//〃/〃〃“〃〃/、〃〃/〃〃/〃〃、〃〃、〃〃conststringoper[0PERWX]={+,-,*,/,odd,二,<>,<,<=,>,>=,conststringoperCode[OPERMAX]={"plus","minus","times","slash","oddsym",〃eql〃,〃neq〃,〃丄〃〃〃//[〃】gtr,geq,becomes};//界符conststringconststringlimit[LIMITMAX]二{〃(〃,〃)〃,〃,〃,〃;〃,〃limitCode[LIMIT

6、MAX]={,zlpare/zrparen〃,"commeT,"semicolon〃,"period"};//标识符conststringident="ident";//常数conststringclassLookHead{public:stringresult;LookHead(charscan)row=0;this->scan=scan;state=false;}〃设置扫描标志的值voidsetScan(charscan){this->scan=sean;}〃得到扫描标志的值chargetScan(){returnsean;}//扫描器bool

7、Seanner();//词法分析voidMatch();private:introw;stringlookhead;stringtmplookhead;charscan;boolstate;voidprint(stringcode)i//cout<<<

8、d=oper[i])!print(operCode[i]);returntrue;}}returnfalse;}boolm

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。