Fw: [Haskell-cafe] IO within parser

Gregory Propf gregorypropf at yahoo.com
Sun Aug 12 01:32:04 EDT 2007


Well the docs ( http://legacy.cs.uu.nl/daan/download/parsec/parsec.html ) hint that setInput and getInput are good for this.  I can certainly how they *would* be - if I knew how to pull in files within the parse.  Actually I use those functions to do multiple recursive passes but of course you already have the output from the first pass in the parser there.  runParser only *looks* like it takes input from a file.  Actually it just parses the string you give it and uses the filename arg for error messages only.  You still need a way to pull the data into the string from the file.  

(Note: I accidentally sent this to Andrew instead of the list originally)

----- Original Message ----
From: Andrew Coppin <andrewcoppin at btinternet.com>
To: haskell-cafe at haskell.org
Sent: Saturday, August 11, 2007 1:25:16 PM
Subject: Re: [Haskell-cafe] IO within parser

Gregory Propf wrote:
> I've been struggling with writing a parser that needs to parse include 
> files within source files.  So far I cannot get this to work (in 
> reality to get work done I wrote a kludge that returns a list of 
> include filenames to be run later in a pure IO function.  I realized 
> that this just amounted to creating my own half-assed monad system so 
> I really don't want to use this approach).  I have read the tutorials 
> I could find on monad transformers but I still don't see what's going 
> on.  I'm using the Parsec parser library. Here's an
 simple example of 
> what I've tried.  I also tried using liftIO and got a message about 
> needing to add an instance of MonadIO.  This made more sense but the 
> type of liftIO is baffling

The fun part is that Parsec already has a feature for include files... 
(I can't remember where the heck it is or how you use it though.)

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe at haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe







      Fussy? Opinionated? Impossible to please? Perfect.  Join Yahoo!'s user panel and lay it on us.






       
____________________________________________________________________________________
Choose the right car based on your needs.  Check out Yahoo! Autos new Car Finder tool.
http://autos.yahoo.com/carfinder/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20070811/b429257d/attachment.htm


More information about the Haskell-Cafe mailing list