An LL(1) lookahead set; contains a set of token types and a "hasEOF"
condition when the set contains EOF. Since EOF is -1 everywhere and -1
cannot be stored in my BitSet, I set a condition here. There may be other
reasons in the future to abstract a LookaheadSet over a raw BitSet.