code: def walk(self):
          
          yield self
          if self.has_arguments():
              for arg in self.args_definition:
                  if not arg["name"] in self.arguments:
                      continue
                  value = self.arguments[arg["name"]]
                  if type(value) == list:
                      if self.__get_arg_type(arg["name"]) == ["testlist"]:
                          for t in value:
                              for node in t.walk():
                                  yield node
                  if isinstance(value, Command):
                      for node in value.walk():
                          yield node
          for ch in self.children:
              for node in ch.walk():
                  yield node
docs: Walk through commands.