code: def _parse_code(self, line):
          
          log.debug("*** parse CODE: >>>%r<<<", line)
          parts = self.regex_split_all.split(line, maxsplit=1)
          if len(parts) == 1:  # end
              self.line_data.append(BASIC_Code(parts[0]))
              return
          pre, match, post = parts
          log.debug("\tpre: >>>%r<<<", pre)
          log.debug("\tmatch: >>>%r<<<", match)
          log.debug("\tpost: >>>%r<<<", post)
  
          if match == '"':
              log.debug("%r --> parse STRING", match)
              self.line_data.append(BASIC_Code(pre))
              string_part, rest = self._parse_string(post)
              self.line_data.append(BASIC_String(match + string_part))
              if rest:
                  self._parse_code(rest)
              return
  
          self.line_data.append(BASIC_Code(pre + match))
  
          if match == "DATA":
              log.debug("%r --> parse DATA", match)
              data_part, rest = self._parse_data(post)
              self.line_data.append(BASIC_Data(data_part))
              if rest:
                  self._parse_code(rest)
              return
          elif match in ("'", "REM"):
              log.debug("%r --> consume rest of the line as COMMENT", match)
              if post:
                  self.line_data.append(BASIC_Comment(post))
              return
  
          raise RuntimeError("Wrong Reg.Exp.? match is: %r" % match)
docs: parse the given BASIC line and branch into DATA, String and
          consume a complete Comment