'visit `ast.Call` nodes on Python3.5 and after'

def visit_Call_35(self, call):

    (new_func, func_expl) = self.visit(call.func)
    arg_expls = []
    new_args = []
    new_kwargs = []
    for arg in call.args:
        (res, expl) = self.visit(arg)
        arg_expls.append(expl)
        new_args.append(res)
    for keyword in call.keywords:
        (res, expl) = self.visit(keyword.value)
        new_kwargs.append(ast.keyword(keyword.arg, res))
        if keyword.arg:
            arg_expls.append(((keyword.arg + '=') + expl))
        else:
            arg_expls.append(('**' + expl))
    expl = ('%s(%s)' % (func_expl, ',    '.join(arg_expls)))
    new_call = ast.Call(new_func, new_args, new_kwargs)
    res = self.assign(new_call)
    res_expl = self.explanation_param(self.display(res))
    outer_expl = ('%s\n{%s    =    %s\n}' % (res_expl, res_expl, expl))
    return (res, outer_expl)
