code: def dump(node):
      
      def _format(node):
          if isinstance(node, AST):
              return '%s(%s)' % (node.__class__.__name__,
                                 ', '.join('%s=%s' % (a, _format(b))
                                           for a, b in iter_fields(node)))
          elif isinstance(node, list):
              return '[%s]' % ', '.join(_format(x) for x in node)
          return repr(node)
      if not isinstance(node, AST):
          raise TypeError('expected AST, got %r' % node.__class__.__name__)
      return _format(node)
docs: A very verbose representation of the node passed.  This is useful for
      debugging purposes.