Posted on 2007-09-23 22:22
ZelluX 阅读(2432)
评论(2) 编辑 收藏 所属分类:
Courses
太笨了,看了好久才明白。。。
first集合没有问题
follow集合:
以A -> aBb为例,如果b nullable,则follow(B)包括follow(A),原因很简单,把A看成一个整体,当作为production的右式时它后面直接跟的元素自然也可能是B后面直接跟的元素,因为b可能为空。
理解follow集合的定义后,虎书上给出的算法
if Yi+1 ... Yk are all nullable
then FOLLOW(Yi) = FOLLOW(Yi) U FOLLOW(X)
if Yi+1 ... Yj-1 are all nullable
then FOLLOW(Yi) = FOLLOW(Yi) U FIRST(Yj)
就不难理解了