- 博客(2)
- 收藏
- 关注
原创 Lr1自底向上详解,通俗易懂,无专业名词。
像上述的规则就必须进行尝试了,又或者改进,这是因为B的规则无论选择第一个规则还是第二个规则,其前缀都是相同的,C的前缀是a,意味着B选择空后面也会跟着a,而B选择aB你也是a,所以这种情况要么进行尝试,要么就只能进行人工改进,比如直接把B去掉,这个语法也不会有什么问题。我们仔细思考一下,这意味着我们需要继续查看,因为空代表可以跳过,那么我们自然需要继续查看B的后面是什么,我们发现了一个A,而A最终只能翻译成C然后翻译成g,所以第一个A的后继符号只能是g。此时我们可以这样思考S需要A,A需要a。
2023-11-29 18:42:29
895
1
原创 编译原理 自顶向下ll1 分析
是c,为什么是c呢,为什么不是b呢,因为follow集合,即规则之后可能出现的值。S的first集合是A的first集合,规则2的first集合是a,规则3的first集合是b,而规则2和规则3都属于A,而规则1的first集合便是A,所以S的first集合便是a和b。根据first集合我们得知B的first集有d和空,所以当遇到d的时候,我们此时若栈中有A,就能利用此规则,然后此时我们还发现B有空,所以我们继续看,发现了C,C的first集合有a,所以当栈中出现a的时候我们也能使用第一个规则。
2023-11-25 23:46:17
931
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人