下载此文档

递归下降分析实验报告.docx


文档分类:IT计算机 | 页数:约33页 举报非法文档有奖
1/33
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/33 下载此文档
文档列表 文档介绍
递归下降分析实验报告
.
实****二 递归下降分析
一、实验目的:
根据某一文法制下降分析程序,以便任意入的符号串行分析。本次的目的主要是加深下降分析法的理解。
二、实验预****提示
1、下降分析法的功能
法分析器的功能是利用函数之的用模法自上而下的构造程。2、下降分析法的前提
改造文法:消除二性、消除左、提取左因子,判断是否LL(1)文法,3、下降分析法思想及算法
G的每个非符号 U构造一个程,不妨命名U。
U的生式的右指出个程的代构:
若是符号,和向前看符号照,若匹配向前一个符号;否出。
若是非符号,用与此非符的程。当A的右部有多个生式,可用构。
具体:
1)于每个非符号U->u1|u2|?|un理的方法如下:
U()
{
ch=当前符号;
if(ch可能是u1字的开)理u1的程序部分;elseif(ch可能是u2字的开)理u2的程序部分;
?
elseerror()
}
2)于每个右部u1->x1x2?xn的理架构如下:理x1的程序;
理x2的程序;
?
理xn的程序;
3)如果右部空,不理。
4)于右部中的每个符号xi
如果xi符号:
if(xi== 当前的符号)
{
NextChar();/%NextChar前一个字符函数。
%/return;
}
else 出理
.
.
②如果xi为非终结符号,直接调用相应的过程 xi()
三、实验要求
程序输入/输出示例:
对下列文法,用递归下降分析法对任意输入的符号串进行分析:
(1)E->TG
(2)G->+TG|-TG|ε
(3)T->FS
(4)S->*FS|/FS|ε
(5)F->(E)|i
输出的格式如下:
输入一以#结束的符号串(包括+—*/()i#):在此位置输入符号串例如:i+i*i#
输出结果:i+i*i#为合法符号串
备注:输入一符号串如 i+i*#, 要求输出为“非法的符号串”。
注意:(+-*/)、分割符(括号)、字符I,结束符#;,应输出错误提示信息(该信息越详细越好);
学有余力的同学,可以详细的输出推导的过程,即详细列出每一步使用的产生式。
四、实验内容
功能描述
这个程序是一个递归下降分析程序,能够判定输入的一个字符串是否属于给定的文法。如果不是,则会给出一定的出错信息,并且列出每一步使用的产生式。

chara[50];//-----------
存储输入的字符串
charch;
//-----------
暂时存储输入的字符
chard[200];//--------
记录当前堆栈中的产生式
intn1;//----------
输入字符串的长度
chartoken;//--------------
当前待分析字符

intE();//-----------------
E
过程,对应产生式E->TG
intT();//-----------------
T
过程,对应产生式T->FS
intG();//-----------------
G
过程,对应产生式G->+TG|-TG|ε
intS();//-----------------
S
过程,对应产生式S->*FS|/FS|ε
intF();//-----------------
F
过程,对应产生式F->(E)|i
voidoutput();//-----------------
输出已分析字符串和当前字符
voidinput1();//-----------------
输出剩余字符
.
程序流程图
开始
输入要处理
的字符串
获取字符串长度
将开始符放入堆栈
.
开始
输出分析栈内容
和当前动作
将分析栈的 E换为TG
得到第一个字符
TG
Y
N
进行递归下降分析
输出分析信息
结束
return1 return0
结束
图1主函数main()流程图 图2E函数()流程图
开始
输出分析栈内容
和当前动作
将分析栈的 T换为FS
N
FS
Y
return1 return0
结束
图3T函数()流程图
.
.
图4G函数()流程图
.
.
图5F函数()流程图
图6S函数()流程图
五、核心代码清单:
函数功能描述:根据文法 E->TG,先从主函数开始调入第一个非终结符函数执行,并且显示调
用产生式,根据程序的状态,调用非终结符函数 T()或G(),进行递归向下分析。
intE()
{
intf,t;
pri

递归下降分析实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数33
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文秘资料站
  • 文件大小40 KB
  • 时间2021-12-03