lm表示的是最左
比如求x的first集合,那么就是求的x—>字符串,所有字符串首字母构成的集合
判断一个文法是不是
LL(1)
的,只需要查看它们的同一非终结符的各个产生式的可选集select集
互不相交就可以
first
集合不能有终结符$
,可以有空串ε
follow
集合可以有终结符$
,不可以有空串ε
计算需要反复
算法
select
的计算:
select(A->空)
它的结果是A
的follow
集合select(A->B)
它的结果是A
的first
集合select(A->a)
它的结果就是a
例子:
M表示预测分析表,A表示栈顶的非终结符,a表示当前输入符号。
分析完了之后,栈中没有推出起始符S
例子:
S已经归约出来了,就是
(1)
就是接收项目——看例子记住就行
这里合并状态6和状态9,因为它们的左部都是相同的 合并之后:
就会发现有归约-归约冲突
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有