in cayenne/src/main/java/org/apache/cayenne/exp/parser/ExpressionParser.java [918:995]
final public void conditionExpression() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case 16:
case 25:
case 26:
case 28:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
case FUNCTION:
case OPERATOR:
case AGGREGATE:
case 70:
case 71:
case 72:
case 73:
case 74:
case PROPERTY_PATH:
case INT_LITERAL:
case FLOAT_LITERAL:{
numericExpression();
break;
}
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:{
stringExpression();
break;
}
case NULL:{
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jj_consume_token(NULL);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
}
case AVG:
case MIN:
case MAX:
case SUM:
case COUNT:{
aggregateExpression();
break;
}
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:{
dateTimeFunction();
break;
}
default:
jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}