Bug fix: For rule A -> Bb, if FIRST(B) contains the empty symbol then FIRST(A) contained the empty symbol irregardless of what FIRST(b). Now FIRST(A) contains the empty symbol only if FIRST(Bb) does.