编译原理实验报告-设计词法分析器.doc

编译原理实验报告-设计词法分析器.doc

ID:61487326

大小:4.34 MB

页数:6页

时间:2021-02-05

编译原理实验报告-设计词法分析器.doc_第1页
编译原理实验报告-设计词法分析器.doc_第2页
编译原理实验报告-设计词法分析器.doc_第3页
编译原理实验报告-设计词法分析器.doc_第4页
编译原理实验报告-设计词法分析器.doc_第5页
资源描述:

《编译原理实验报告-设计词法分析器.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验报告填写时间:2014.4.25课程名称编译原理实验名称设计词法分析器姓名学号专业年级一、实验目的:设计并实现一个小型程序语言的词法分析器,实现源程序的输入,预处理词法分析,最后以编译程序需要的内部表示形式将识别的单词、符号、数字等关键字输出。二、实验内容:设计词法分析器,定义关键字,待程序运行,输入待分析的程序段或程序的路径及名称,即可进行词法分析。三、实验步骤:1.在MicrosoftVisualC++6.0中新建源文件;2.编写头文件及类函数;3.定义关键字;4.关键字、字母、数字判断;5.编写词法分析代码;6.编写主函数;7.新建待分析程序段,记住其路

2、径及名称;8.运行此分析程序;9.输入待分析的程序段的路径及名称。一、实验结果与结论:(核心代码和程序的运行效果)核心代码1:Stringkey[15]={"begin","end","if","then","else","while","write","read","do","call","const","char","until","procedure","repeat"};//关键字定义核心代码2:intIskey(stringc){//关键字判断inti;for(i=0;i

3、}return0;}intIsLetter(charc){//判断是否为字母if(((c<='z')&&(c>='a'))

4、

5、((c<='Z')&&(c>='A')))return1;elsereturn0;}intIsDigit(charc){//判断是否为数字if(c>='0'&&c<='9')return1;elsereturn0;}核心代码3:voidanalyse(FILE*fpin){//词法分析stringarr="";while((ch=fgetc(fpin))!=EOF){arr="";if(ch==''

6、

7、ch=='t'

8、

9、ch=='')

10、{}elseif(IsLetter(ch)){while(IsLetter(ch)

11、

12、IsDigit(ch)){if((ch<='Z')&&(ch>='A'))ch=ch+32;arr=arr+ch;ch=fgetc(fpin);}fseek(fpin,-1L,SEEK_CUR);if(arr==key[0]){cout<

13、if(arr==key[3]){cout<

14、}elseif(arr==key[9]){cout<

15、17$关键字"<

16、

17、ch=='.'&&IsDigit(fgetc(fpin))){arr=arr+ch;ch=fgetc(fpin);}fseek(fpin,-1L,SEEK_CUR);cout<

18、<

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

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

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