module Language.Haskell.DTC.Parser
(
ParseResult (..)
, Module
, ParseMode (..)
, defaultParseMode
, parseModule
, parseModuleWithMode
, parseModuleWithSrc
) where
import Language.Haskell.Exts
parseModuleWithSrc :: FilePath -> ParseMode -> IO Module
parseModuleWithSrc fp pm =
do str <- readFile fp
let r = parseModuleWithMode (pm { parseFilename = 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
]