def visit_call(self, node, parent):
newnode = nodes.Call(node.lineno, node.col_offset, parent)<EOL>starargs = _visit_or_none(node, "<STR_LIT>", self, newnode)<EOL>kwargs = _visit_or_none(node, "<STR_LIT>", self, newnode)<EOL>args = [self.visit(child, newnode) for child in node.args]<EOL>if node.keywords:<EOL><INDENT>keywords = [self.visit(child, newnode) for child in node.keywords]<EOL><DEDENT>else:<EOL><INDENT>keywords = None<EOL><DEDENT>if starargs:<EOL><INDENT>new_starargs = nodes.Starred(<EOL>col_offset=starargs.col_offset,<EOL>lineno=starargs.lineno,<EOL>parent=starargs.parent,<EOL>)<EOL>new_starargs.postinit(value=starargs)<EOL>args.append(new_starargs)<EOL><DEDENT>if kwargs:<EOL><INDENT>new_kwargs = nodes.Keyword(<EOL>arg=None,<EOL>col_offset=kwargs.col_offset,<EOL>lineno=kwargs.lineno,<EOL>parent=kwargs.parent,<EOL>)<EOL>new_kwargs.postinit(value=kwargs)<EOL>if keywords:<EOL><INDENT>keywords.append(new_kwargs)<EOL><DEDENT>else:<EOL><INDENT>keywords = [new_kwargs]<EOL><DEDENT><DEDENT>newnode.postinit(self.visit(node.func, newnode), args, keywords)<EOL>return newnode<EOL>
visit a CallFunc node by returning a fresh instance of it