code: def _generate(self, item, *args):
          
          if item in self.done:
              return
          # verbose output with location.
          if self.generate_locations and item.location:
              print("# %s:%d" % item.location, file=self.stream)
          if self.generate_comments:
              self.print_comment(item)
          log.debug("generate %s, %s", item.__class__.__name__, item.name)
          #
          #log.debug('generate: %s( %s )', type(item).__name__, name)
          #if name in self.known_symbols:
          #    log.debug('item is in known_symbols %s'% name )
          #    mod = self.known_symbols[name]
          #    print >> self.imports, "from %s import %s" % (mod, name)
          #    self.done.add(item)
          #    if isinstance(item, typedesc.Structure):
          #        self.done.add(item.get_head())
          #        self.done.add(item.get_body())
          #    return
          #
          # to avoid infinite recursion, we have to mark it as done
          # before actually generating the code.
          self.done.add(item)
          # go to specific treatment
          mth = getattr(self, type(item).__name__)
          mth(item, *args)
          return
docs: wraps execution of specific methods.