-happyError buf PState{ loc = loc } = PFailed (srcParseErr buf loc)
-
-parsePkgConf :: FilePath -> IO (Either SDoc [PackageConfig])
-parsePkgConf conf_filename = do
- buf <- hGetStringBuffer False conf_filename
- case parse buf PState{ bol = 0#, atbol = 1#,
- context = [], glasgow_exts = 0#,
- loc = mkSrcLoc (_PK_ conf_filename) 1 } of
- PFailed err -> do
- freeStringBuffer buf
- return (Left err)
+happyError = srcParseFail
+
+loadPackageConfig :: FilePath -> IO [PackageConfig]
+loadPackageConfig conf_filename = do
+ buf <- hGetStringBuffer conf_filename
+ let loc = mkSrcLoc (mkFastString conf_filename) 1 0
+ case unP parse (mkPState buf loc defaultDynFlags) of
+ PFailed l1 l2 err ->
+ throwDyn (InstallationError (showSDoc (showPFailed l1 l2 err)))