import Package ( PackageConfig(..), defaultPackageConfig )
import Char(isSpace, isAlpha, isAlphaNum, isUpper)
import List(break)
-import Debug.Trace
}
%token
%%
pkgconf :: { [ PackageConfig ] }
- : '[' pkgs ']' { reverse $2 }
+ : '[' ']' { [] }
+ | '[' pkgs ']' { reverse $2 }
pkgs :: { [ PackageConfig ] }
: pkg { [ $1 ] }
: 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}
: 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