calling a seperate program and supplying command line args.

Hal Daume III hdaume@ISI.EDU
Thu, 8 Aug 2002 15:25:33 -0700 (PDT)

You should probably use POpen (if you're reading from a pipe).  POpen is
available from:

here's a short program that uses it (it's pretty easy to figure out what's
going on, apologies for the lack of commenting):

wn = "/nfs/mendels1/wordnet1.6/bin/wn"
doSem hd = 
    do let word = hd
       (sem,_,_) <- popenEnvDir wn [word, "-hypen", "-hypev"] Nothing
[("WNHOME","/nfs/mendels1/wordnet1.6"),("path","/nfs/mendels1/wordnet1.6/bin")]) Nothing
       return (findSem (readWordNet $ lines sem,word))
    where findSem (x,y) | '%' `elem` y  = PERCENT  
			| '$' `elem` y  = MONEY  

basically, use popenEnvDir, give it the executable, the arguments as a
list, something i don't remember, an environment (if you want) and then
it'll give you the output in the first of the triple.  see the docs for
what the rest does...

Hal Daume III

 "Computer science is no more about computers    |
  than astronomy is about telescopes." -Dijkstra |

On Fri, 9 Aug 2002, Jason Smith wrote:

> How to basically?
> I've not had much luck finding much in the way of doc's in ghc on how to do this?...basically I have a compiler in haskell and I want to call a parser which is written in Java.  The parser is a .NET binary, it spits out a text file containing the parse tree which I then suck up and do the usual compiler things with.  I need to supply the java parser command line args i.e the file to parse etc.. 
> Thanks heaps
> Jason.