编译原理实验报告词法分析 联系客服

发布时间 : 星期二 文章编译原理实验报告词法分析更新完毕开始阅读

& 45 = 46 & 47 非=|& | 49 | 51 非=|| = 50 48 52 “53 ?54 ,55 {56 }57 [58 ]59 (60 )61

上面设计了各种运算符和界符的处理,这里再介绍一下两种不同注释。

非\\n / 1 2 / 3 * * * / \\n 4 5 6 7 非*|/ 非 * 非/|* 8

5.

字符串:在本次实验设计中,并没有将字符串的设计设计出来,所以就不能对字

符串进行识别,所以没有这个功能,只能对符号”进行判断。

至此,整个实验的基本设计已经完成,由于这些图画的都很麻烦,在这里就不在综合的画一次。前面的表述应该是比较清楚的了。所有的细节都要通过编程来实现了。

四、 系统实现

1.程序设计与具体实现:本次实验,我是用的C++语言写的,运用到了C++中自带的也是常用的一些类,如STRING,VECTOR,FSTREAM等。利用C++的好处是,数据结构的定义直接用VECTOR就行了,操作起来很方便,而利用STRING的功能,也使程序中字符串的操作也可以简化一些。

下面是词法分析主程序的流程图:

开始 输入原文件的路径、名称 N 打开文件成功? Y 将文件中的数据流读入string类型的cstr中保存 循环除去空格,换行,保存标识符、单个运算符、终结符到vector中 调用扫描分析子程序scan,将分析结果存入vector中 是否有错误? Y N 调用输出函数,将文件写入指定的文件中 结束

下面给出简化了的扫描分析子程序的流程图:

开始 i=0 i