全球旧事资料 分类
程序,并对简单语言进行语法分析。21待分析的简单语言的语法
用扩充的BNF表示如下:⑴程序::begi
语句串e
d⑵语句串::语句;语句⑶语句::赋值语句⑷赋值语句::ID:表达式⑸表达式::项项项⑹项::因子因子因子⑺因子::IDNUM(表达式)22实验要求说明输入单词串,以“”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”。例如:
输入begi
a9x23baxe
d输出success!输入xabce
d输出error23语法分析程序的酸法思想(1)主程序示意图如图21所示。
专业整理
置初值调用sca
er读下一个单词符号
调用lrparser结束
f下载可编辑
图21语法分析主程序示意图(2)递归下降分析程序示意图如图22所示。(3)语句串分析过程示意图如图23所示。
是否

begi

调用sca
er
调用stateme
t函数
是否;

调用语句串分析程序
是否e
d是
调用sca
er
sy
0kk0是
打印分析成功
否否出错处理
是调用sca
er
调用stateme
t函数
出错处理图23语句串分析示意图
图22递归下降分析程序示意图(4)stateme
t语句分析程序流程如图24、25、26、27所示。
是否标识符

调用sca
er否
是否:
调用sca
er
调用expressio
函数
专业整理
调用term函数否
是否是
调用sca
er
调用term函数
f下载可编辑
意图
出错处理图24stateme
t语句分析函数示意图
出错处理图25expressio
表达式分析函数示
调用factor函数否
是否是
调用sca
er
调用factor函数出错处理
图26term分析函数示意图
是是否标识符
否是
是否整常数
否否
是否(是
调用sca
er
调用expressio
函数
否是否)
出错处理
是调用sca
er
调用sca
er
图27factor分析过程示意图
三、语法分析程序的C语言程序源代码:
i
clude
好听全球资料 返回顶部