def walk(self, dispatcher, node):
deferrable_handlers = {<EOL>Declare: self.declare,<EOL>Resolve: self.register_reference,<EOL>}<EOL>layout_handlers = {<EOL>PushScope: self.push_scope,<EOL>PopScope: self.pop_scope,<EOL>PushCatch: self.push_catch,<EOL>PopCatch: self.pop_scope,<EOL>}<EOL>if not self.shadow_funcname:<EOL><INDENT>layout_handlers[ResolveFuncName] = self.shadow_reference<EOL><DEDENT>local_dispatcher = Dispatcher(<EOL>definitions=dict(dispatcher),<EOL>token_handler=None,<EOL>layout_handlers=layout_handlers,<EOL>deferrable_handlers=deferrable_handlers,<EOL>)<EOL>return list(walk(local_dispatcher, node))<EOL>
Walk through the node with a custom dispatcher for extraction of
details that are required.