lexer puzzle
Derek Elkins
ddarius at hotpop.com
Sat Sep 13 20:04:17 EDT 2003
On Sun, 14 Sep 2003 00:30:40 +0200
Marcin 'Qrczak' Kowalczyk <qrczak at knm.org.pl> wrote:
> Dnia pi_ 12. wrze_nia 2003 20:31, Iavor Diatchki napisa_:
>
> > what do people think should be the tokens produced by a haskell
> > lexer when applied to the following input:
> >
> > A...
>
> A (constructor), then ... (operator).
> This is how I understand Haskell 98 lexing rules.
My first thought was that it should produce, A.. ., as in (.) (A..), but
obviously that would be wrong as A.. must be a function and therefore to
be passed to (.) it would need to be (A..).
So with a little more thought, I seem to agree with GHC despite it being
non-sensical.
GHC produces the following given:
5 Prelude... 6
"Variable not in scope: `Prelude...'"
I take this to mean the (..) function from the Prelude module. This is,
as far as I'm concerned, syntactically correct, despite the fact that
there isn't any way to make a (..) function* as .. is syntax (A... being
different syntax).
* Well... actually I'm pretty certain you could with TH
More information about the Haskell
mailing list