in jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/sql/JCRSQLParser.java [1091:1211]
final public Name Identifier() throws ParseException {
/*@bgen(jjtree) Identifier */
ASTIdentifier jjtn000 = new ASTIdentifier(JJTIDENTIFIER);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);Token t = null;
Name name = null;
boolean pseudoProperty = false;
try {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case REGULAR_IDENTIFIER:
t = jj_consume_token(REGULAR_IDENTIFIER);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LEFT_PAREN:
jj_consume_token(LEFT_PAREN);
jj_consume_token(RIGHT_PAREN);
pseudoProperty = true;
break;
default:
jj_la1[29] = jj_gen;
;
}
try {
String jcrName = t.image;
if (pseudoProperty) {
jcrName += "()";
}
jjtn000.setName(resolver.getQName(jcrName));
} catch (NameException e) {
{if (true) throw new ParseException(e.getMessage());}
} catch (NamespaceException e) {
{if (true) throw new ParseException(e.getMessage());}
}
break;
case DELIMITED_IDENTIFIER:
t = jj_consume_token(DELIMITED_IDENTIFIER);
try {
jjtn000.setName(resolver.getQName(t.image.substring(1, t.image.length()-1)));
} catch (NameException e) {
{if (true) throw new ParseException(e.getMessage());}
} catch (NamespaceException e) {
{if (true) throw new ParseException(e.getMessage());}
}
break;
case BY:
case IN:
case OR:
case IS:
case AND:
case LIKE:
case NULL:
case FROM:
case ORDER:
case WHERE:
case SELECT:
case BETWEEN:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case BY:
// or any keyword
t = jj_consume_token(BY);
break;
case IN:
t = jj_consume_token(IN);
break;
case OR:
t = jj_consume_token(OR);
break;
case IS:
t = jj_consume_token(IS);
break;
case AND:
t = jj_consume_token(AND);
break;
case LIKE:
t = jj_consume_token(LIKE);
break;
case NULL:
t = jj_consume_token(NULL);
break;
case FROM:
t = jj_consume_token(FROM);
break;
case ORDER:
t = jj_consume_token(ORDER);
break;
case WHERE:
t = jj_consume_token(WHERE);
break;
case SELECT:
t = jj_consume_token(SELECT);
break;
case BETWEEN:
t = jj_consume_token(BETWEEN);
break;
default:
jj_la1[30] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
try {
jjtn000.setName(resolver.getQName(t.image));
} catch (NameException e) {
{if (true) throw new ParseException(e.getMessage());}
} catch (NamespaceException e) {
{if (true) throw new ParseException(e.getMessage());}
}
break;
default:
jj_la1[31] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jjtree.closeNodeScope(jjtn000, true);
jjtc000 = false;
{if (true) return jjtn000.getName();}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
throw new Error("Missing return statement in function");
}