[project @ 2003-08-27 12:29:21 by simonmar]
[ghc-hetmet.git] / ghc / utils / ghc-pkg / ParsePkgConfLite.y
index 7656b9e..d4d8ddb 100644 (file)
@@ -28,7 +28,8 @@ import List(break)
 %%
 
 pkgconf :: { [ PackageConfig ] }
-       : '[' pkgs ']'                  { reverse $2 }
+       : '[' ']'                       { [] }
+       | '[' pkgs ']'                  { reverse $2 }
 
 pkgs   :: { [ PackageConfig ] }
        : pkg                           { [ $1 ] }
@@ -45,8 +46,13 @@ field        :: { PackageConfig -> PackageConfig }
        : VARID '=' STRING              
                  {\p -> case $1 of
                   "name" -> p{name = $3}
-                  _      -> error "unkown key in config file" }
+                  _      -> error "unknown key in config file" }
                        
+        | VARID '=' bool
+               {\p -> case $1 of {
+                       "auto" -> p{auto = $3};
+                       _      -> p } }
+
        | VARID '=' strlist             
                {\p -> case $1 of
                        "import_dirs"     -> p{import_dirs     = $3}
@@ -72,6 +78,11 @@ strs :: { [String] }
        : STRING                        { [ $1 ] }
        | strs ',' STRING               { $3 : $1 }
 
+bool    :: { Bool }
+       : CONID                         {% case $1 of {
+                                           "True"  -> True;
+                                           "False" -> False;
+                                           _       -> error ("unknown constructor in config file: " ++ $1) } }
 {
 data Token =
        ITocurly