def _generate_dispatch(cls):
 if ('__visit_name__' in cls.__dict__):
  visit_name = cls.__visit_name__
  if isinstance(visit_name, str):
   getter = operator.attrgetter(('visit_%s' % visit_name))
   def _compiler_dispatch(self, visitor, **kw):
    try:
     meth = getter(visitor)
    except AttributeError:
     raise exc.UnsupportedCompilationError(visitor, cls)
    else:
     return meth(self, **kw)
  else:
   def _compiler_dispatch(self, visitor, **kw):
    visit_attr = ('visit_%s' % self.__visit_name__)
    try:
     meth = getattr(visitor, visit_attr)
    except AttributeError:
     raise exc.UnsupportedCompilationError(visitor, cls)
    else:
     return meth(self, **kw)
  _compiler_dispatch.__doc__ = 'Look for an attribute named "visit_" + self.__visit_name__\n            on the visitor, and call it with the same kw params.\n            '
  cls._compiler_dispatch = _compiler_dispatch

def _generate_dispatch ( cls ) : if ( '__visit_name__' in cls . __dict__ ) : visit_name = cls . __visit_name__ if isinstance ( visit_name , str ) : getter = operator . attrgetter ( ( 'visit_%s' % visit_name ) ) def _compiler_dispatch ( self , visitor , ** kw ) : try : meth = getter ( visitor ) except AttributeError : raise exc . UnsupportedCompilationError ( visitor , cls ) else : return meth ( self , ** kw ) else : def _compiler_dispatch ( self , visitor , ** kw ) : visit_attr = ( 'visit_%s' % self . __visit_name__ ) try : meth = getattr ( visitor , visit_attr ) except AttributeError : raise exc . UnsupportedCompilationError ( visitor , cls ) else : return meth ( self , ** kw ) _compiler_dispatch . __doc__ = 'Look for an attribute named "visit_" + self.__visit_name__\n            on the visitor, and call it with the same kw params.\n            ' cls . _compiler_dispatch = _compiler_dispatch
return an optimized visit dispatch function for the cls for use by the compiler .