<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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:])