[Haskell-cafe] Parsing R5RS Scheme with Parsec

Alex Queiroz asandroq at gmail.com
Tue Oct 2 10:36:52 EDT 2007


Hallo,

On 10/2/07, Brandon S. Allbery KF8NH <allbery at ece.cmu.edu> wrote:
>
> On Oct 2, 2007, at 9:52 , Alex Queiroz wrote:
>
> >   (parseDottedList ls) <|> (parseProperList ls)
> >
> >      I've factored out the common left sub-expression in
> > parseLeftList. The problem is that "..." is a valid identifier so when
> > inside the left of the list the parser sees a single dot, it tries to
> > match it with "...", which fails. Can anybody give advice on how to
> > rewrite these list parsing functions?
>
>    try (parseDottedList ls) <|> parseProperList ls
>
> Overuse of try is a bad idea because it's slow, but sometimes it's
> the only way to go; it insures backtracking in cases like this.
>

     This does not work. The parser chokes in parseLeftList, because
it finds a single dot which is not the beginning of "...".

Cheers,
-- 
-alex
http://www.ventonegro.org/


More information about the Haskell-Cafe mailing list