def visit_Call(self, node):
        global game
        if 'id' in dir(node.func):
            self.stack.store()
            if len(node.args) > 0:
                self.generic_visit(node.args)
                args = self.stack.current()
                self.stack.wipe()
            else:
                args = []

            # check this condition, seens strange
            if node.func.id not in game.bitpaks:
                obj = getattr(pynes.bitbag, node.func.id, None)
                if (obj):
                    try:
                        bp = obj(game)
                        game.bitpaks[node.func.id] = bp
                        self.stack(bp(*args))
                        game += bp.asm()
                    except __HOLE__ as ex:
                        msg = ex.message.replace('__call__', node.func.id, 1)
                        raise(TypeError(msg))
                else:
                    raise(NameError("name '%s' is not defined" % node.func.id))
            else:
                bp = game.bitpaks[node.func.id]
                self.stack(bp(*args))
                game += bp.asm()
        else:
            self.generic_visit(node)
            attrib = getattr(
                self.stack.current()[0], self.stack.current()[1], None)
            self.stack.wipe()
            if callable(attrib):
                attrib()
dataset/ETHPy150Open gutomaia/pyNES/pynes/composer.py/PyNesVisitor.visit_Call