code: def walk(self, node, *listeners:RDLListener):
          
  
  
          for listener in listeners:
              self.do_enter(node, listener)
          for child in node.children(unroll=self.unroll, skip_not_present=self.skip_not_present):
              self.walk(child, *listeners)
          for listener in listeners:
              self.do_exit(node, listener)
docs: Initiates the walker to traverse the current ``node`` and its children.
          Calls the corresponding callback for each of the ``listeners`` provided in
          the order that they are listed.
  
          Parameters
          ----------
          node : :class:`~systemrdl.node.Node`
              Node to start traversing.
              Listener traversal includes this node.
  
          listeners : list
              List of :class:`~RDLListener` that are invoked during
              node traversal.
              Listener callbacks are executed in the same order as provided by this
              parameter.