编译原理实验报告(语法分析器)文档格式.docx

上传人:wj 文档编号:470173 上传时间:2023-04-29 格式:DOCX 页数:13 大小:52.16KB
下载 相关 举报
编译原理实验报告(语法分析器)文档格式.docx_第1页
第1页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第2页
第2页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第3页
第3页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第4页
第4页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第5页
第5页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第6页
第6页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第7页
第7页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第8页
第8页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第9页
第9页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第10页
第10页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第11页
第11页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第12页
第12页 / 共13页
编译原理实验报告(语法分析器)文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

编译原理实验报告(语法分析器)文档格式.docx

《编译原理实验报告(语法分析器)文档格式.docx》由会员分享,可在线阅读,更多相关《编译原理实验报告(语法分析器)文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

编译原理实验报告(语法分析器)文档格式.docx

E’->

+TE’|空

T->

FT’

T’->

*FT’|空F->

i|(E)

递归子程序法:

首先计算出五个非终结符的first集合follow集,然后根据五个产生式定义了五个函数。

定义字符数组vocabulary来存储输入的句子,字符指针ch指向vocabulary。

从非终结符E函数出发,如果首字符属于E的first集,则依次进入T函数和E’函数,开始递归调用。

在每个函数中,都要判断指针所指字符是否属于该非终结符的first集,属于则根据产生式进入下一个函数进行调用,若first集中有空字符,还要判断是否属于该非终结符的follow集。

以分号作为结束符。

二、实现代码

头文件shiyan3.h

#include<

iostream>

#include<

cstdio>

string>

usingnamespacestd;

#definenum100

charvocabulary[num];

char*ch;

voidjudge_E();

voidjudge_EE();

voidjudge_T();

voidjudge_TT();

voidjudge_F();

源文件#include"

shiyan3.h"

voidjudge_E()

{

if(*ch=='

;

'

cout<

<

"

该句子符合此文法!

endl;

inta=0;

按1结束程序"

cin>

>

a;

if(a==1)

exit(0);

}

else

('

||*ch=='

i'

judge_T();

judge_EE();

该句子不匹配此文法!

inta=0;

if(a==1)exit(0);

voidjudge_EE()

+'

ch++;

judge_T();

#'

)'

)return;

voidjudge_T()

judge_F();

judge_TT();

voidjudge_TT()

cin>

if(a==1)

*'

judge_F();

voidjudge_F()

judge_E();

if(*ch=='

//cout<

*ch;

voidmain()

//char*ch;

cout<

*******************欢**迎*

************************"



使用语法分析器

请输入一个句子:

cin.getline(vocabulary,15);

ch=vocabulary;

judge_E();

*********************结**束*使用,再见!

**************************"

三、运行结果

四、心得体会

此次实验使用的是递归子程序法,用这个方法最大的问题就是函数里的递归调用,一不小心就把人绕糊涂了。

所以在写的时候注意力需十分集中。

虽然在函数的实际调用过程中比较复杂,但是只要理清思路,在编写代码时,根据产生式来判断调用,每个部分都相对简单一点。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2