文章目录
1. 实验目的
通过实验,掌握LL(1)文法及其判定;掌握LL(1)分析表构造、分析和分析器的构造。
2. 实验要求
完成四则运算描述赋值语句的LL(1)文法分析,实现LL(1)分析中控制程序(表驱动程序);完成以下描述赋值语句文法的LL(1)分析过程。(1)输入串应是词法分析的输出二元式序列,即某算术表达式“专题1”的输出结果。输出为输入串是否为该文法定义的算术表达式的判断结果;(2)LL(1)分析过程应能发现输入串出错;(3)设计两个测试用例(尽可能完备,正确和出错),并给出测试结果;(4)考虑根据LL(1)文法编写程序构造LL(1)分析表,包括FIRST 集合和FOLLOW 集合,并添加到你的LL(1)分析程序中。
3. 程序实现
3.1. 相关环境介绍
操作系统:window 10 21H2
开发环境:Clion-2022.2.1-Windows
编译器:mwing-10.0
3.2. 主要数据结构
主要是单词的信息保存,建立了一个struct
01:struct Keyword{
02: string notation;
03: int class_num;
04: int line;
05: Keyword(string str, int num, int line_){
06: notation = str;
07: class_num = num;
08: line = line_;
09: }
10: Keyword(char* str,