I'm rather rusty on this but if one were to hand-write write a recursive descent parser, the lookahead it could cope with would be arbitrarily large, but you would pay for it heavily in backtracking. I'd not consider needing large lookaheads a good thing
at all - I recall an RD parser that when it met ternary expressions (C-style
x ? y : z) and they were heavily nested, it would parse them but take literally minutes. I guess the backtracking went O(n^e) where e was the nesting depth of the ternary exprs.
If the lookahead is done directly, I'd expect the memory to blow up exponentially instead of time.
So no, not a good thing. If possible, have a lookahead of just one token. I think that means a unique opening word/phrase per structure, if you can.
again, I'm rusty on this but I think that's right
cheers
jan