北邮编译原理词法分析报告程序报告材料

北邮编译原理词法分析报告程序报告材料

ID:44950225

大小:146.50 KB

页数:31页

时间:2019-11-05

北邮编译原理词法分析报告程序报告材料_第1页
北邮编译原理词法分析报告程序报告材料_第2页
北邮编译原理词法分析报告程序报告材料_第3页
北邮编译原理词法分析报告程序报告材料_第4页
北邮编译原理词法分析报告程序报告材料_第5页
资源描述:

《北邮编译原理词法分析报告程序报告材料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文案程序设计一词法分析程序大全标准文案一.实验题目和要求 题目:词法分析程序的设计与实现。 实验内容:设计并实现C语言的词法分析程序,要求如下。 (1)、可以识别出用C语言编写的源程序中的每个单词符号,并以记号的形式输出每个单词符号。 (2)、可以识别并读取源程序中的注释。 (3)、可以统计源程序汇总的语句行数、单词个数和字符个数,其中标点和空格不计算为单词,并输出统计结果 (4)、检查源程序中存在的错误,并可以报告错误所在的行列位置。 (5)、发现源程序中存在的错误后,进行适当的恢复,使词法分析可以继续进行,通过一次词法分析处理,可以检查并报告源程序中存在的所有错误。

2、 实验要求: 方法1:采用C/C++作为实现语言,手工编写词法分析程序。 方法2:通过编写LEX源程序,利用LEX软件工具自动生成词法分析程序。二.程序设计思路采用C++来编写此程序。根据书上的函数、变量提示写出各种函数、整体框架。大部分变量名称与书上相同。画出符号间转换自动机模型,之后根据自动机写函数、错误判断。缓冲区用数组完成,标记位置的指针用int型来表示。大全标准文案用lnum存储语句行数,wordnum存储单词个数,charnum存储字符个数。标点和空格不计算为单词。错误所在的行列位置存储在error.txt文件当中。 三.程序运行结果举例Code.txt:#in

3、cludemain(){intnum,n=0,m,l,t;printf("pleaseinputaninteger:");scanf("%d",&num);//dsfsdffor(l=0;num!=0;l++){m=num%10;//sdfafdafor(t=0;t!=l;t++)m=m*2;//dafdafn=nm;num=num/10;/*dafdas2323*/}大全标准文案printf("//theresultis%d//",n);return0;}窗口运行结果:===========================================

4、==================*词法分析系统*=============================================================请输入需要分析的文件名称:code.txt-------------------------------------------------------------处理完毕。共出现1个错误。共有21行,33个单词,236个字符。结果请在token_table.txt中查看。=============================================================大全标准文

5、案请按任意键继续...Token.txt;单词记号##includeidrelop,GTmainid(()){{intintnumid,,nid=relop,EQ0num大全标准文案,,mid,,lid,,tid;;printfid(());;scanfid((,,&&numid));;forfor((lid=relop,EQ大全标准文案0num;;numid!=RELOP,UE0num;;lid++++)){{mid=relop,EQnumid%%10num;;forfor((tid=relop,EQ0num大全标准文案;;tid!

6、=RELOP,UElid;;tid++++))mid=relop,EQmid**2num;;nid=relop,EQnmid;;numid=relop,EQnumid大全标准文案//10num;;}}printfid((,,nid));;returnreturn0num;;}}Error.txt:1.在第1行第15列出现非法字符Note.txt:line6.双引号间字符:pleaseinputaninteger:大全标准文案line7.双引号间字符:%dline7.ddsfsdfline10.ssdfafdaline12.ddafdafline14.dafdas2323li

7、ne17.双引号间字符://theresultis%d//Count.txt:共有21行,33个单词,236个字符。四.源代码头文件:#include#include#include#include大全标准文案#include#includeusingnamespacestd;全局变量:constintMAXBUFFER=62;//缓冲区容量constintLB=30;//左缓冲区大小constintLRB=6

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

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

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