in cayenne/src/main/java/org/apache/cayenne/exp/parser/ExpressionParser.java [1099:1187]
final public void scalarExpression() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case 16:
case 25:
case 26:
case 28:
case NULL:
case AVG:
case MIN:
case MAX:
case SUM:
case COUNT:
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
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 SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case INT_LITERAL:
case FLOAT_LITERAL:{
conditionExpression();
break;
}
case TRUE:{
jj_consume_token(TRUE);
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setValue(true);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
}
case FALSE:{
jj_consume_token(FALSE);
ASTScalar jjtn002 = new ASTScalar(JJTSCALAR);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 0);
jjtc002 = false;
jjtn002.setValue(false);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 0);
}
}
break;
}
default:
jj_la1[18] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}