predicate parsing