<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _convert_old_schema(self, parameters):
 """ Convert an ugly old schema, using dotted names, to the hot new schema, using List and Structure. The old schema assumes that every other dot implies an array. So a list of two parameters, [Integer("foo.bar.baz.quux"), Integer("foo.bar.shimmy")] becomes:: [List( "foo", item=Structure( fields={"baz": List(item=Integer()), "shimmy": Integer()}))] By design, the old schema syntax ignored the names "bar" and "quux". """

        # 'merged' here is an associative list that maps parameter names to
        # Parameter instances, OR sub-associative lists which represent nested
        # lists and structures.
        # e.g.,
        #    [Integer("foo")]
        # becomes
        #    [("foo", Integer("foo"))]
        # and
        #    [Integer("foo.bar")]
        # (which represents a list of integers called "foo" with a meaningless
        # index name of "bar") becomes
        #     [("foo", [("bar", Integer("foo.bar"))])].
        merged = []
        for parameter in parameters:
            segments = parameter.name.split('.')
            _merge_associative_list(merged, segments, parameter)
        result = [self._inner_convert_old_schema(node, 1) for node in merged]
        return result