当前位置:首页 > 编译原理实验报告《LL(1)语法分析器构造》(推荐文档)
(4)构造分析表
(5)分析符号串 匹配成功的情况:
13
匹配失败的情况
五、思考和体会
1、 编写的LL(1)语法分析器应该具有智能性,可以由用户输入任意文法,不需要指定终
结符个数和非终结符个数。而是由分析器自己预处理得到 例如:
14
2、语法分析器应该能够消除同一左部的规则含有多个左递归的情况。并且要能够处理文法中有括号的情况,例如B::=(a|tsa)B,将其处理为B::=aB,B::=tsaB 例如:E::=E+T|T
T::=t|Ta|Ttsa(这里存在两个左递归)
3、构造FIRST和FOLLOW集时可以根据书上方法的思想,但不必完全一样。我的方法是在规则有限的情况下,设置最大推导步数为100,那么循环100次所有的FIRST集和FOLLOW集也就确定了。这个思想同样运用于判断一个非终结符是否可以推导为空,不必去用规则一个一个带入,只要循环足够多的次数,empty数组也就不再更新了。
15
共分享92篇相关文档