FIRST S -> aBd | cA ac | ac A -> DBb | aA a D | ac B -> AB | ε A | ac D -> cAc | B c B | ac a b c d # S A B D 0 (step,2) s3 1 1 accept 2 3 (red,B->ε) (red,B->ε) (red,B->ε) H0= closure([S'->.S,#])=[S'->.S,#], [S->.aBd,#],[S->.cA,#] H1= read(H0, S)=[S'->S.,#] H2= read(H0, a)=[S->a.Bd,#], [B->.AB,d],[B->.,d], [A->.DBb,d/FIRST(B)],[A->.aA,d/FIRST(B)] = [A->.DBb,a/c/d],[A->.aA,a/c/d], = [A->.DBb,a], [A->.DBb,c], [A->.DBb,d], [D->.cAc,FIRST(B)/b], [D->.B,FIRST(B)/b], = [D->.cAc,a/b/c], [D->.B,a/b/c], [B->.AB,a/b/c], [B->., a/b/c], [A->.DBb,b],[A->.aA,b], = [S->a.Bd,#], [B->.AB,a/b/c/d],[B->.,a/b/c/d], [A->.DBb,a/b/c/d],[A->.aA,a/b/c/d] [D->.cAc,a/b/c], [D->.B,a/b/c] H3= read(H0, c)=[S->c.A,#], [A->.DBb,#],[A->.aA,#], [D->.cAc,a/c/b], [D->.B,a/c/b], [B->.AB,a/b/c], [B->., a/b/c], [A->.DBb,a/b/c],[A->.aA,a/b/c],