编译原理:专题3_LL(1)语法分析设计原理与实现

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, 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值