docs: def parse(self):
          """
          Reads all lines from the current data source and yields each FileResult objects
          """
  
          if self.data is None:
              raise ValueError('No input data provided, unable to parse')
  
          for line in self.data:
              parts = line.strip().split()
              try:
                  path = parts[0]
                  code = parts[1]
                  path, line, char = path.split(':')[:3]
  
                  if not re.match(POSITION, line):
                      continue
                  if not re.match(POSITION, char):
                      continue
                  if not re.match(ERROR_CODE, code):
                      continue
                  if not re.match(FILEPATH, path):
                      continue
  
              # For parts mismatch
              except IndexError:
                  continue
              # For unpack mismatch
              except ValueError:
                  continue
  
              yield path, code, line, char, ' '.join(parts[2:])