in src/main/csharp/Selector/SelectorParser.cs [174:330]
public IExpression GetComparisonExpression() {
IExpression left;
IExpression right;
IExpression low;
IExpression high;
string t;
string u;
ArrayList list;
left = GetAddExpression();
while (true) {
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case NOT:
case BETWEEN:
case LIKE:
case IN:
case 30:
case 31:
case 32:
case 33:
;
break;
default:
goto label_4;
}
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case 30:
mcc_consume_token(30);
right = GetAddExpression();
left = ComparisonExpression.CreateGreaterThan(left, right);
break;
case 31:
mcc_consume_token(31);
right = GetAddExpression();
left = ComparisonExpression.CreateGreaterThanOrEqual(left, right);
break;
case 32:
mcc_consume_token(32);
right = GetAddExpression();
left = ComparisonExpression.CreateLesserThan(left, right);
break;
case 33:
mcc_consume_token(33);
right = GetAddExpression();
left = ComparisonExpression.CreateLesserThanOrEqual(left, right);
break;
case LIKE:
u = null;
mcc_consume_token(LIKE);
t = GetStringLitteral();
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case ESCAPE:
mcc_consume_token(ESCAPE);
u = GetStringLitteral();
break;
default:
;
break;
}
left = ComparisonExpression.CreateLike(left, t, u);
break;
default:
if (mcc_2_2(2)) {
u=null;
mcc_consume_token(NOT);
mcc_consume_token(LIKE);
t = GetStringLitteral();
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case ESCAPE:
mcc_consume_token(ESCAPE);
u = GetStringLitteral();
break;
default:
;
break;
}
left = ComparisonExpression.CreateNotLike(left, t, u);
} else {
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case BETWEEN:
mcc_consume_token(BETWEEN);
low = GetAddExpression();
mcc_consume_token(AND);
high = GetAddExpression();
left = ComparisonExpression.CreateBetween(left, low, high);
break;
default:
if (mcc_2_3(2)) {
mcc_consume_token(NOT);
mcc_consume_token(BETWEEN);
low = GetAddExpression();
mcc_consume_token(AND);
high = GetAddExpression();
left = ComparisonExpression.CreateNotBetween(left, low, high);
} else {
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case IN:
mcc_consume_token(IN);
mcc_consume_token(34);
t = GetStringLitteral();
list = new ArrayList();
list.Add(t);
while (true) {
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case 35:
;
break;
default:
goto label_5;
}
mcc_consume_token(35);
t = GetStringLitteral();
list.Add(t);
}label_5: ;
mcc_consume_token(36);
left = ComparisonExpression.CreateIn(left, list);
break;
default:
if (mcc_2_4(2)) {
mcc_consume_token(NOT);
mcc_consume_token(IN);
mcc_consume_token(34);
t = GetStringLitteral();
list = new ArrayList();
list.Add(t);
while (true) {
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case 35:
;
break;
default:
goto label_6;
}
mcc_consume_token(35);
t = GetStringLitteral();
list.Add(t);
}label_6: ;
mcc_consume_token(36);
left = ComparisonExpression.CreateNotIn(left, list);
} else {
mcc_consume_token(-1);
throw new ParseException();
}
break;
}
}
break;
}
}
break;
}
}label_4: ;
{return left;}
throw new Exception("Missing return statement in function");
}