Exprent (Exprent exprent) { List<Exprent> lst = exprent.getAllExprents(); for (Exprent expr : lst) { Exprent ret = isSimpleConstructorInvocation(expr); if (ret != null) { exprent.replaceExprent(expr, ret); } } if (exprent.type == Exprent.EXPRENT_INVOCATION) { InvocationExprent in = (InvocationExprent)exprent; if (in.getFuncType() == InvocationExprent.TYPE_INIT && in.getInstance().type == Exprent.EXPRENT_NEW) { NewExprent newExpr = (NewExprent)in.getInstance(); newExpr.setConstructor(in); in.setInstance(null); return newExpr; } } return null; }