list parser
LL(K)