[Haskell-cafe] Question about implementing an off-side rule in Parsec 2

Bas van Gijzel nenekotan at gmail.com
Mon Apr 27 17:41:41 EDT 2009

Hello everyone,

I'm doing a bachelor project focused on comparing parsers. One of the parser
libraries I'm using is Parsec (2) and I'm going to implement a very small
subset of haskell with it, with as most important feature the off-side rule
(indentation based parsing) used in function definitions and possibly in
where clauses.

But I'm still a bit stuck on how to implement this cleanly. I tried to
search for some examples on blogs but I haven't found anything yet. As far
as I can see the way to go would be using getState and updateState methods
defined in Parsec.Prim and to use the methods in Parsec.Pos to compare the
difference in indendation for tokens.

But I haven't completely wrapped my head around any state monad yet and I
don't understand Parsec enough yet to see how to use the methods Parsec.Pos
and state easily. Some examples or pointers to something to read would
really be helpful.

Thanks in advance,

Bas van Gijzel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090427/512b8a37/attachment.htm

More information about the Haskell-Cafe mailing list