filter = expression "then" action errorcode logcode expression = symbol | "not" expression | "(" expression ")" |              expression "and" expression | expression "or" expression symbol = string typeoff "match" cmdstring |          string typeoff "eq" cmdstring | string typeoff "neq" cmdstring |          string typeoff "sub" cmdstring | string typeoff "nsub" cmdstring |          string typeoff "inpath" cmdstring | "true" typeoff = /* empty */ | "[" number "]" action = "permit" | "deny" errorcode = /* empty */ | "[" string "]" logcode = /* empty */ | "log"