docs: def eval(self, cmd):
          """Evaluate a given command. The command is parsed and the output
          returned as a list of lines (strings).
  
          Raises a SCOCmdSyntaxError in case the command cannot be parsed.
  
          Parameters
          ----------
          cmd : strings
              Command string
  
          Returns
          -------
          list(stirng)
              Command output as list of strings (lines)
          """
          tokens = cmd.upper().split()
          if len(tokens) == 2 and tokens[0] == 'LIST':
              if tokens[1] == 'EXPERIMENTS':
                  return self.list_objects(self.sco.experiments_list())
              elif tokens[1] == 'IMAGES':
                  return self.list_objects(self.sco.image_groups_list())
              elif tokens[1] == 'MODELS':
                  return self.list_objects(self.sco.models_list())
              elif tokens[1] == 'SUBJECTS':
                  return self.list_objects(self.sco.subjects_list())
              else:
                  raise SCOCmdSyntaxError(cmd, 'unknown type: ' + cmd.split()[1])
          else:
              raise SCOCmdSyntaxError(cmd, 'unknown command')