code: def _parseline(self, line):
          
          sline = line.split(SEPARATOR)
  
          if is_header(sline):
              return self._handle_header(sline)
          # If it is not an header it contains some data. but we need data only
          # from the RESULT TABLE section.
          elif not self._cur_section == SECTION_RESULT_TABLE:
              return 0
          # If line starts with 'Sample ID', then it is res_id of current record.
          elif sline[0].lower() == 'Sample ID'.lower():
              self._cur_res_id = sline[1].strip()
              return 0
          # If line starts with 'Assay' column,it is keyword of Analysis Service.
          elif sline[0].lower() == 'Assay'.lower():
              self._keyword = self._format_keyword(sline[1])
              return 0
          # Results are in Analyte Result subsection. We can skip other lines.
          elif not self._cur_sub_section == SUBSECTION_ANALYTE_RESULT:
              return 0
          # If this is header line of Analyte Result table, set the columns
          elif self._is_header_line:
              self._is_header_line = False
              self._columns = sline
          # Must be result line of Analyte Result Table.
          else:
              return self._handle_result_line(sline)
docs: Result CSV Line Parser.
          :param line: a to parse
          :returns: the number of rows to jump and parse the next data line or
          return the code error -1