H98 Report: expression syntax glitch

Malcolm Wallace Malcolm.Wallace@cs.york.ac.uk
Mon, 25 Feb 2002 15:38:39 +0000


>	(let x = 10 in x `div`)
>	(let x = 10 in x `div` 3)
>
> To parse the first, a bottom-up parser should reduce the let-expression
> before the operator, while to parse the second it should shift.
> But it needs 4 tokens of lookahead to decide which to do.  That seems
> unreasonable, and is well beyond the LALR(1) parsers used by Hugs and GHC.

nhc98 manages to parse and compile both expressions with ease, no doubt
because it uses parser combinators rather than a table-driven mechanism.

Regards,
    Malcolm