Convert the tree from HILDA's format into a conventional binary tree,
        which can be easily converted into output formats like RS3.

def hildatree2dgparentedtree(self):
        """Convert the tree from HILDA's format into a conventional binary tree,
        which can be easily converted into output formats like RS3.
        """
        def transform(hilda_tree):
            """Transform a HILDA parse tree into a more conventional parse tree.

            The input tree::

                                  Contrast[S][N]
                         _______________|______________
                  Although they                  they accepted
                did n't like it ,                 the offer .

            is converted into::

                                  Contrast
                         ____________|___________
                        S                        N
                        |                        |
                  Although they            they accepted
                did n't like it ,           the offer .
            """
            if isinstance(hilda_tree, basestring) or not hasattr(hilda_tree, 'label'):
                return hilda_tree
            assert len(hilda_tree) == 2, "We can only handle binary trees."

            match = HILDA_REL_RE.match(hilda_tree.label())
            assert match, "Relation '{}' does not match regex '{}'".format(hilda_tree.label(), HILDA_REL_RE)
            relname, left_child_nuc, right_child_nuc = match.groups()
            hilda_tree._label = relname

            for i, child_nuclearity in enumerate([left_child_nuc, right_child_nuc]):
                child = hilda_tree[i]
                hilda_tree[i] = Tree(child_nuclearity, [transform(child)])
            return hilda_tree

        tree = transform(self.hildafile_tree)
        return DGParentedTree.convert(tree)