Posted on 2007-09-23 22:22 
ZelluX 阅读(2453) 
评论(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)
就不难理解了