X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fmain%2FParsePkgConf.y;h=d05a6d54c050566120af9aedebcbcad21926b0e2;hp=6028af89ce7270ecd88edbc7949207b9ccb05d48;hb=72547264724117d689a7fa400104185557fb2a0c;hpb=21c5c9c09a8d36b4ae8a83b17b543c332bc9cb0c diff --git a/compiler/main/ParsePkgConf.y b/compiler/main/ParsePkgConf.y index 6028af8..d05a6d5 100644 --- a/compiler/main/ParsePkgConf.y +++ b/compiler/main/ParsePkgConf.y @@ -81,8 +81,12 @@ field :: { PackageConfig -> PackageConfig } _ -> happyError } } - | VARID '=' CONID STRING { id } - -- another case of license + | VARID '=' CONID STRING + { \p -> case unpackFS $1 of + "installedPackageId" -> + p{installedPackageId = InstalledPackageId (unpackFS $4)} + _ -> p -- another case of license + } | VARID '=' strlist {\p -> case unpackFS $1 of @@ -107,7 +111,7 @@ field :: { PackageConfig -> PackageConfig } _ -> p } - | VARID '=' pkgidlist + | VARID '=' ipidlist {% case unpackFS $1 of "depends" -> return (\p -> p{depends = $3}) _ -> happyError @@ -129,13 +133,20 @@ version :: { Version } { Version{ versionBranch=$5, versionTags=map unpackFS $9 } } -pkgidlist :: { [PackageIdentifier] } - : '[' pkgids ']' { $2 } +ipid :: { InstalledPackageId } + : CONID STRING + {% case unpackFS $1 of + "InstalledPackageId" -> return (InstalledPackageId (unpackFS $2)) + _ -> happyError + } + +ipidlist :: { [InstalledPackageId] } + : '[' ipids ']' { $2 } -- empty list case is covered by strlist, to avoid conflicts -pkgids :: { [PackageIdentifier] } - : pkgid { [ $1 ] } - | pkgid ',' pkgids { $1 : $3 } +ipids :: { [InstalledPackageId] } + : ipid { [ $1 ] } + | ipid ',' ipids { $1 : $3 } intlist :: { [Int] } : '[' ']' { [] }