Fixed parser for one letter keyword.
[confparser-old] / confparser.py
index f669fdb..859565b 100644 (file)
@@ -76,8 +76,8 @@ def parse( doc , filename = None ) :
        tokenMatches = {
                'eot'     : '$' ,
                'blank'   : r'\s+' ,
-               'keyword' : r'[_a-zA-Z][_a-zA-Z0-9]+' ,
-               'string'  : r'[_a-zA-Z][_a-zA-Z0-9]+|\'(?:[^\\\']|\\.)*\'' ,
+               'keyword' : r'[_a-zA-Z][_a-zA-Z0-9]*' ,
+               'string'  : r'[_a-zA-Z][_a-zA-Z0-9]*|\'(?:[^\\\']|\\.)*\'' ,
                'comment' : r'#[^\n]*(?:\n|$)' ,
                '{'       : '{' ,
                '}'       : '}' ,
@@ -153,7 +153,7 @@ class Folder( Validator , MixinNonEmpty ) :
 
 def ruleValidator( item ) :
 
-       if item in [ 'broken' , 'infected' , 'spam' ] :
+       if item in [ 'broken' , 'infected' , 'spam' , 'all' ] :
                return Keyword( item )
        elif item in [ 'or' , 'and' , 'not' ] :
                return Logical( item )
@@ -247,6 +247,7 @@ def readConfiguration( filename ) :
                writeCachedConfiguration( filename , conf , isValid )
        except Exception , e :
                raise Exception( 'While reading file %s:\n%s' % ( filename , str( e ) ) )
+       return conf
 
 #--[ Dump configuration tree ]------------------------------------------------