X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fmain%2FParsePkgConf.y;h=1e24ab4017e9447552b8161eb380d31ce9effd78;hp=1f6434b468bc28df45e809a8ad8af9d41d96f274;hb=831a35dd00faff195cf938659c2dd736192b865f;hpb=6b476a9ab73f1d768c548ddef900f9b9e4a0dd6b diff --git a/compiler/main/ParsePkgConf.y b/compiler/main/ParsePkgConf.y index 1f6434b..1e24ab4 100644 --- a/compiler/main/ParsePkgConf.y +++ b/compiler/main/ParsePkgConf.y @@ -1,5 +1,5 @@ { -{-# OPTIONS -w #-} +{-# OPTIONS -fno-warn-unused-binds -fno-warn-unused-matches -fno-warn-missing-signatures -fno-warn-incomplete-patterns -Wwarn #-} -- The above warning supression flag is a temporary kludge. -- While working on this module you are encouraged to remove it and fix -- any warnings in the module. See @@ -10,6 +10,7 @@ module ParsePkgConf( loadPackageConfig ) where #include "HsVersions.h" +import Distribution.Package hiding ( depends ) import PackageConfig import Lexer import Module @@ -19,8 +20,7 @@ import StringBuffer import ErrUtils ( mkLocMessage ) import SrcLoc import Outputable -import Panic ( GhcException(..) ) -import Control.Exception ( throwDyn ) +import Panic } @@ -61,7 +61,7 @@ field :: { PackageConfig -> PackageConfig } : VARID '=' pkgid {% case unpackFS $1 of "package" -> return (\p -> p{package = $3}) - _other -> happyError + _ -> happyError } | VARID '=' STRING { id } @@ -102,19 +102,25 @@ field :: { PackageConfig -> PackageConfig } "haddockHTMLs" -> p{haddockHTMLs = map unpackFS $3} "depends" -> p{depends = []} -- empty list only, non-empty handled below - other -> p + _ -> p } | VARID '=' pkgidlist {% case unpackFS $1 of "depends" -> return (\p -> p{depends = $3}) - _other -> happyError + _ -> happyError } pkgid :: { PackageIdentifier } - : CONID '{' VARID '=' STRING ',' VARID '=' version '}' - { PackageIdentifier{ pkgName = unpackFS $5, - pkgVersion = $9 } } + : CONID '{' VARID '=' CONID STRING ',' VARID '=' version '}' + {% case unpackFS $5 of + "PackageName" -> + return $ PackageIdentifier { + pkgName = PackageName (unpackFS $6), + pkgVersion = $10 + } + _ -> happyError + } version :: { Version } : CONID '{' VARID '=' intlist ',' VARID '=' strlist '}' @@ -155,7 +161,7 @@ loadPackageConfig dflags conf_filename = do let loc = mkSrcLoc (mkFastString conf_filename) 1 0 case unP parse (mkPState buf loc dflags) of PFailed span err -> - throwDyn (InstallationError (showSDoc (mkLocMessage span err))) + ghcError (InstallationError (showSDoc (mkLocMessage span err))) POk _ pkg_details -> do return pkg_details