The algorithms I've seen for building an LL(1) parse table involve calculating first and follow sets such that:
predict(nonterminal, production) ==
if epsilon in FIRST(production):
first(production) union follow(nonterminal)
else:
first(production)
where production is a sequence of symbols which can include nonterminals, terminals, and epsilon.
what's the algorithm for an LL(2) parse table?