-- | All you need to parse a module. module Language.Haskell.DTC.Parser ( -- * From "Language.Haskell.Parser" ParseResult , HsModule , parseModule -- * Extras , parseModuleWithFN , parseModuleWithSrc ) where import Language.Haskell.Syntax import Language.Haskell.Parser -- | @parseModuleWithFN fileName module@ parse @module@ with a @fileName@ associated. parseModuleWithFN :: FilePath -> String -> ParseResult HsModule parseModuleWithFN = parseModuleWithMode . ParseMode -- | Parse a module from a source code file. It throws an error if parsing fails. parseModuleWithSrc :: FilePath -> IO HsModule parseModuleWithSrc fp = do str <- readFile fp let r = parseModuleWithFN fp str case r of ParseOk p -> return p ParseFailed loc err -> do fail $ concat [ err , " at: " , srcFilename loc , ":" , show $ srcLine loc , ":" , show $ srcColumn loc ]