private static String formatMessage(String predicate, String message) {
		if (message != null) {
			return message;
		}

		return String.format(Locale.getDefault(), "failed predicate: {%s}?", predicate);
	}
A semantic predicate failed during validation.  Validation of predicates
 occurs when normally parsing the alternative just like matching a token.
 Disambiguating predicate evaluation occurs when we test a predicate during
 prediction.
runtime/Java/src/org/antlr/v4/runtime/FailedPredicateException.java