in cayenne/src/main/java/org/apache/cayenne/exp/parser/ExpressionParser.java [1808:1895]
final public void numericPrimary() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case 16:{
jj_consume_token(16);
orCondition();
jj_consume_token(17);
break;
}
case INT_LITERAL:{
jj_consume_token(INT_LITERAL);
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setValue(token_source.literalValue);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
}
case FLOAT_LITERAL:{
jj_consume_token(FLOAT_LITERAL);
ASTScalar jjtn002 = new ASTScalar(JJTSCALAR);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 0);
jjtc002 = false;
jjtn002.setValue(token_source.literalValue);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 0);
}
}
break;
}
case 70:{
namedParameter();
break;
}
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:{
functionsReturningNumerics();
break;
}
case 71:
case 72:
case 73:
case 74:
case PROPERTY_PATH:{
pathExpression();
break;
}
case FUNCTION:{
customFunction();
break;
}
case OPERATOR:{
customOperator();
break;
}
case AGGREGATE:{
customAggregate();
break;
}
default:
jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}