in src/main/csharp/Selector/SelectorParser.cs [403:439]
public IExpression GetUnaryExpression() {
IExpression left = null;
if (mcc_2_6(2147483647)) {
mcc_consume_token(37);
left = GetUnaryExpression();
} else {
switch ((mcc_ntk==-1)?mcc_mntk():mcc_ntk) {
case 38:
mcc_consume_token(38);
left = GetUnaryExpression();
left = UnaryExpression.CreateNegate(left);
break;
case NOT:
mcc_consume_token(NOT);
left = GetUnaryExpression();
left = UnaryExpression.CreateNOT(AsBooleanExpression(left));
break;
case TRUE:
case FALSE:
case NULL:
case DECIMAL_LITERAL:
case HEX_LITERAL:
case OCTAL_LITERAL:
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
case ID:
case 34:
left = GetPrimaryExpression();
break;
default:
mcc_consume_token(-1);
throw new ParseException();
}
}
{return left;}
throw new Exception("Missing return statement in function");
}