ret = UnaryExpression();
if (op == UnaryExpr.Operator.negative) {
if (ret instanceof IntegerLiteralExpr && ((IntegerLiteralExpr) ret).isMinValue()) {
ret = new IntegerLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
} else if (ret instanceof LongLiteralExpr && ((LongLiteralExpr) ret).isMinValue()) {
ret = new LongLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
} else {
ret = new UnaryExpr(line, column, token.endLine, token.endColumn, ret, op);
}
} else {
ret = new UnaryExpr(line, column, token.endLine, token.endColumn, ret, op);