:param linenum: The line number of the frame.
        :type linenum: int
        :param indent: The indentation level of the frame.
        :type indent: int
        :param path:
        :type path: Path

def append_child_object(self, linenum, indent, path):
        """
        :param linenum: The line number of the frame.
        :type linenum: int
        :param indent: The indentation level of the frame.
        :type indent: int
        :param path:
        :type path: Path
        """
        frame = self.current_frame()
        assert isinstance(frame,RootFrame) or isinstance(frame,ContainerFrame) and frame.indent < indent
        assert len(path.segments) > 0
        container = frame.container
        if container.contains_container(path):
            raise KeyError("container exists at path {0}".format(path))
        container.put_container(path)
        container = container.get_container(path)
        path = frame.path + path
        frame = ContainerFrame(linenum, indent, path, container)
        self.push_frame(frame)