一、实验目的
编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结
构分析。
二、实验要求
利用 C 语言编制递归下降分析程序,并对简单语言进行语法分析。
2.1 待分析的简单语言的语法
用扩充的 BNF 表示如下:
⑴<程序>:: =begin<语句串>end
⑵<语句串>:: =<语句>{;<语句>}
⑶<语句>:: =<赋值语句>
⑷<赋值语句>:: =ID:=<表达式>
⑸<表达式>:: =<项>{+<项> | -<项>}
⑹<项>:: =<因子>{*<因子> | /<因子>
⑺<因子>:: =ID | NUM | (<表达式>)
2.2 实验要求说明
输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,
否则输出“error”。
例如:
输入 { a=9; x=2*3; b=a+x } #
输出 success
输入 {a=a+(a+b end #
输出 error
2.3 语法分析程序的流程图
⑴ 主程序示意图如图 2-1 所示。
图 2-1 语法分析主程序示意图
⑵ 递归下降分析程序示意图如图 2-2 所示。
⑶ 语句串分析过程示意图如图 2-3 所示。