def visit_Call(self, node):

        pos = self.block_position(node)

        self.visit(node.func)
        if not self.cache:
            return
        name = self.cache.pop()

        if not self.symbols['functions'].has_key(name):
            self.symbols['functions'][name] = {'assignments': [], 'uses': []}

        self.symbols['functions'][name]['uses'].append(pos)

        for name in self.cache:
            if not self.symbols['vars'].has_key(name):
                self.symbols['vars'][name] = {'assignments': [], 'uses': []}

            self.symbols['vars'][name]['uses'].append(pos)

        self.clear_cache()

        for a in node.args:
            self.visit(a)

        for name in self.cache:
            if not self.symbols['vars'].has_key(name):
                self.symbols['vars'][name] = {'assignments': [], 'uses': []}

            self.symbols['vars'][name]['uses'].append(pos)

        self.clear_cache()
Visits Function Call nodes in a tree.  Adds relevant data about them
dataset/ETHPy150Open earwig/bitshift/bitshift/parser/python.py/_TreeWalker.visit_Call