Does the following code help you out? (Do note it's for the GHC 6.12.* API) It just uses the the default GHC driver, meaning you don't have to separately call the desugerar, simplifier, etc. It's what I use for my CλaSH tool.
Cheers, Christiaan -- External Modules import qualified GHC.Paths -- GHC API import qualified DynFlags import qualified GHC import qualified HscTypes -- | Loads the given files and returns the Core Bindings loadBindings :: [FilePath] -> -- ^ Files to load IO [(CoreSyn.CoreBndr, CoreSyn.CoreExpr)] -- ^ Bindings loadBindings fileNames = do GHC.defaultErrorHandler DynFlags.defaultDynFlags $ GHC.runGhc (Just GHC.Paths.libdir) $ do -- Some dynflags trickery.. otherwise they don't get loaded properly dflags <- GHC.getSessionDynFlags GHC.setSessionDynFlags dflags -- Run the default GHC driver coreModules <- mapM GHC.compileToCoreSimplified fileNames -- Extract and flatten bindings from the modules let bindings = concatMap (CoreSyn.flattenBinds . HscTypes.cm_binds) coreModules return bindings On Jan 10, 2011, at 6:21 PM, Jane Ren wrote: > Hi, > > I need to be able to take a piece of Haskell source code and get an > simplified, typed, intermediate representation of the AST, which means I need > to use compiler/coreSyn/CoreSyn.lhs > > So I'm first trying to get the desguaredModule of the source code with > ... > modSum <- getModSummary $ mkModuleName "..." > p <- parseModule modSum > t <- typecheckModule p > d <- desugarModule t > > Now I'm really stuck on figuring out how to connect the variable d of type > desugaredModule to compiler/coreSyn/CoreSyn.lhs to get Expr patterns like > App, Let, Case, etc. > > Also, is it correct to get the deguaredModule first? At least CoreSyn.lhs > seems to suggest this. > > Any suggestions would be greatly apprecia > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users@haskell.org > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users