Process next record.

        This method created new record from the line read from file if
        needed and/or updates its parent record. If the parent record tag
        is ``BLOB`` and new record tag is ``CONT`` then record is skipped
        entirely and None is returned. Otherwise if new record tag is ``CONT``
        or ``CONC`` its value is added to parent value. For all other tags
        new record is made and it is added to parent sub_records attribute.

        Parameters
        ----------
        parent : `model.Record`
            Parent record of the new record
        gline : `gedcom_line`
            Current parsed line

        Returns
        -------
        `model.Record` or None

def _make_record(self, parent, gline):
        """Process next record.

        This method created new record from the line read from file if
        needed and/or updates its parent record. If the parent record tag
        is ``BLOB`` and new record tag is ``CONT`` then record is skipped
        entirely and None is returned. Otherwise if new record tag is ``CONT``
        or ``CONC`` its value is added to parent value. For all other tags
        new record is made and it is added to parent sub_records attribute.

        Parameters
        ----------
        parent : `model.Record`
            Parent record of the new record
        gline : `gedcom_line`
            Current parsed line

        Returns
        -------
        `model.Record` or None
        """

        if parent and gline.tag in ("CONT", "CONC"):
            # concatenate, only for non-BLOBs
            if parent.tag != "BLOB":
                # have to be careful concatenating empty/None values
                value = gline.value
                if gline.tag == "CONT":
                    value = b"\n" + (value or b"")
                if value is not None:
                    parent.value = (parent.value or b"") + value
            return None

        # avoid infinite cycle
        dialect = model.DIALECT_DEFAULT
        if not (gline.level == 0 and gline.tag == "HEAD") and self._header:
            dialect = self.dialect
        rec = model.make_record(level=gline.level, xref_id=gline.xref_id,
                                tag=gline.tag, value=gline.value,
                                sub_records=[], offset=gline.offset,
                                dialect=dialect, parser=self)

        # add to parent's sub-records list
        if parent:
            parent.sub_records.append(rec)

        return rec