def merge_inner(clsdict):
 samelist = False
 done = {}
 while (not samelist):
  samelist = True
  classlist = clsdict.keys()
  for classname in classlist:
   parts_name = classname.rsplit('$', 1)
   if (len(parts_name) > 1):
    (mainclass, innerclass) = parts_name
    innerclass = innerclass[:(-1)]
    mainclass += ';'
    if (mainclass in clsdict):
     clsdict[mainclass].add_subclass(innerclass, clsdict[classname])
     clsdict[classname].name = innerclass
     done[classname] = clsdict[classname]
     del clsdict[classname]
     samelist = False
    elif (mainclass in done):
     cls = done[mainclass]
     cls.add_subclass(innerclass, clsdict[classname])
     clsdict[classname].name = innerclass
     done[classname] = done[mainclass]
     del clsdict[classname]
     samelist = False

def merge_inner ( clsdict ) : samelist = False done = { } while ( not samelist ) : samelist = True classlist = clsdict . keys ( ) for classname in classlist : parts_name = classname . rsplit ( '$' , 1 ) if ( len ( parts_name ) > 1 ) : ( mainclass , innerclass ) = parts_name innerclass = innerclass [ : ( - 1 ) ] mainclass += ';' if ( mainclass in clsdict ) : clsdict [ mainclass ] . add_subclass ( innerclass , clsdict [ classname ] ) clsdict [ classname ] . name = innerclass done [ classname ] = clsdict [ classname ] del clsdict [ classname ] samelist = False elif ( mainclass in done ) : cls = done [ mainclass ] cls . add_subclass ( innerclass , clsdict [ classname ] ) clsdict [ classname ] . name = innerclass done [ classname ] = done [ mainclass ] del clsdict [ classname ] samelist = False
merge the inner class of a class: e .