in qpid-jms-client/src/main/java/org/apache/qpid/jms/selector/parser/SelectorParserImpl.java [162:313]
final public Expression comparisonExpression() throws ParseException {
Expression left;
Expression right;
Expression low;
Expression high;
String t, u;
boolean not;
ArrayList<Object> list;
left = addExpression();
label_4: while (true) {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case NOT:
case BETWEEN:
case LIKE:
case IN:
case 29:
case 30:
case 31:
case 32:
;
break;
default:
break label_4;
}
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case 29:
jj_consume_token(29);
right = addExpression();
left = ComparisonExpression.createGreaterThan(left, right);
break;
case 30:
jj_consume_token(30);
right = addExpression();
left = ComparisonExpression.createGreaterThanEqual(left, right);
break;
case 31:
jj_consume_token(31);
right = addExpression();
left = ComparisonExpression.createLessThan(left, right);
break;
case 32:
jj_consume_token(32);
right = addExpression();
left = ComparisonExpression.createLessThanEqual(left, right);
break;
case LIKE:
u = null;
jj_consume_token(LIKE);
t = stringLitteral();
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case ESCAPE:
jj_consume_token(ESCAPE);
u = stringLitteral();
break;
default:
;
}
left = ComparisonExpression.createLike(left, t, u);
break;
default:
if (jj_2_2(2)) {
u = null;
jj_consume_token(NOT);
jj_consume_token(LIKE);
t = stringLitteral();
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case ESCAPE:
jj_consume_token(ESCAPE);
u = stringLitteral();
break;
default:
;
}
left = ComparisonExpression.createNotLike(left, t, u);
} else {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case BETWEEN:
jj_consume_token(BETWEEN);
low = addExpression();
jj_consume_token(AND);
high = addExpression();
left = ComparisonExpression.createBetween(left, low, high);
break;
default:
if (jj_2_3(2)) {
jj_consume_token(NOT);
jj_consume_token(BETWEEN);
low = addExpression();
jj_consume_token(AND);
high = addExpression();
left = ComparisonExpression.createNotBetween(left, low, high);
} else {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case IN:
jj_consume_token(IN);
jj_consume_token(33);
t = stringLitteral();
list = new ArrayList<Object>();
list.add(t);
label_5: while (true) {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case 34:
;
break;
default:
break label_5;
}
jj_consume_token(34);
t = stringLitteral();
list.add(t);
}
jj_consume_token(35);
left = ComparisonExpression.createInFilter(left, list);
break;
default:
if (jj_2_4(2)) {
jj_consume_token(NOT);
jj_consume_token(IN);
jj_consume_token(33);
t = stringLitteral();
list = new ArrayList<Object>();
list.add(t);
label_6: while (true) {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case 34:
;
break;
default:
break label_6;
}
jj_consume_token(34);
t = stringLitteral();
list.add(t);
}
jj_consume_token(35);
left = ComparisonExpression.createNotInFilter(left, list);
} else {
jj_consume_token(-1);
throw new ParseException();
}
}
}
}
}
}
}
{
if (true)
return left;
}
throw new Error("Missing return statement in function");
}