in cayenne/src/main/java/org/apache/cayenne/template/parser/SQLTemplateParser.java [189:264]
final public void directive() throws ParseException {/*@bgen(jjtree) Directive */
ASTDirective jjtn000 = new ASTDirective(JJTDIRECTIVE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);Token t;
try {
jj_consume_token(SHARP);
t = jj_consume_token(IDENTIFIER);
jjtn000.setIdentifier(t.image);
jj_consume_token(LBRACKET);
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case DOLLAR:
case TRUE:
case FALSE:
case LSBRACKET:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case INT_LITERAL:
case FLOAT_LITERAL:{
expression();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case DOLLAR:
case TRUE:
case FALSE:
case COMMA:
case LSBRACKET:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case INT_LITERAL:
case FLOAT_LITERAL:{
;
break;
}
default:
jj_la1[4] = jj_gen;
break label_2;
}
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case COMMA:{
jj_consume_token(COMMA);
break;
}
default:
jj_la1[5] = jj_gen;
;
}
expression();
}
break;
}
default:
jj_la1[6] = jj_gen;
;
}
jj_consume_token(RBRACKET);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}