}
throw new Error("Missing return statement in function");
}
final public Expression PrimaryPrefix() throws ParseException {
Expression ret;
String name;
List typeArgs = null;
List args = null;
boolean hasArgs = false;
Type type;
int line;
int column;
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case FALSE:
case NULL:
case TRUE:
case LONG_LITERAL:
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case CHARACTER_LITERAL:
case STRING_LITERAL:
ret = Literal();
break;
case THIS:
jj_consume_token(THIS);
ret = new ThisExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
break;
case SUPER:
jj_consume_token(SUPER);
ret = new SuperExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
jj_consume_token(DOT);
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case LT:
typeArgs = TypeArguments();
typeArgs.remove(0);
break;
default:
jj_la1[83] = jj_gen;
;
}
jj_consume_token(IDENTIFIER);
name = token.image;
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case LPAREN:
args = Arguments();
hasArgs = true;
break;
default:
jj_la1[84] = jj_gen;
;
}
ret = hasArgs ? new MethodCallExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, name, args) : new FieldAccessExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, null, name);
break;
case LPAREN:
jj_consume_token(LPAREN);
line = token.beginLine;
column = token.beginColumn;