summaryrefslogtreecommitdiff
path: root/compiler/main/ParsePkgConf.y
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/main/ParsePkgConf.y')
-rw-r--r--compiler/main/ParsePkgConf.y27
1 files changed, 19 insertions, 8 deletions
diff --git a/compiler/main/ParsePkgConf.y b/compiler/main/ParsePkgConf.y
index 6028af89ce..d05a6d54c0 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] }
: '[' ']' { [] }