一、实习题目
二、实习过程
1.分析实验要求与目的
本次实验要求完成词法分析,就是对每个相对独立的词,进行逐一分析,并分析出其类型。如:一个字符(串)是关键字,还是界符,或是是操作符,要分析的C语言源码,可以通过控制台输入,也可以通过文件的方式读入,所以在我的完成过程中,使用了文件读入的方式进行读入源码。
2.规划实验过程
因为要分析的源码,可能是很多行,所以要进行规划并假设出尽量多的情况。在这个过程中,先是分析了书上的P43页的状态转换图,认为书中考虑的情况并不全面,所以在实验的过程中,并不是完全按照书上的转换图进行的,而是进行了比较多的判断,然后进行分析处理,但是原理都是一致的,所以就没有再具体画出转换图。
分析书上的图以后,就开始安排如何进行进一步的实验,这里我先是利用一个一行的字符串代码:
public
进行分析,可以知道有int
public
"union","enum",
"sizeof","return"};//关键字数组
public
,"<<",">>","<",">",">=","<=","==","!=","^","|","&&","||","?",":","+=","-="
,"*=","/=","%=","&=","|=","^=","<<=",">=","="};//操作符数组
public
得到上面的数组之后,就开始书写函数,分别书写了如下的函数完成相应的功能:
public
public
public
public
public
public
public
3.修改补充
在完成的大部分工作后,考虑到更人性化的操作习惯和利于操作的思想,所以在最后的环节上加上了一个操作界面,来集成具体的操作。界面如下:
通过浏览或是直接输入来完成获取文件的操作,从而显示在文本框中,然后传给具体的函数进行相应的操作。单击“分析”按钮以后,就开始分析具体的C语言源码,我们可以看到在滚动窗口中的具体结果。单击“清除”按钮,清除文本域中的内容。
三、实习总结
本次实验旨在完成对源码中的词,进行逐一分析,然后进行分类打印(返回给用户)。
【注】源码为java文件,是一个工程,里面用到了awt包,和一张图片,但是由于包比较大,就没有上传,图片包含在压缩文件中。