Redid lookahead in a much much saner way. Now should be a legitimate parser somewhere between LALR(1) and LR(1).