code: def parse_treebanks(st):
      
      d = dict()
      for path in get_paths(st):
          set_path(d, path[:-1], path[-1])
      return d
docs: Returns the corresponding tree of the treebank, in the form of
      a nested dictionary
      :param st: str: treebank using Penn notation
  
      Example:
          >>> st = "((IP-MAT-SPE (' ') (INTJ Yes) (, ,) (' ') (IP-MAT-PRN (NP-SBJ (PRO he)) (VBD seyde)) (, ,) (' ') (NP-SBJ (PRO I)) (MD shall)	(VB promyse) (NP-OB2 (PRO you)) (IP-INF (TO to)	(VB fullfylle) (NP-OB1 (PRO$ youre) (N desyre))) (. .) (' '))"
  
          >>> tree = parse_treebanks(st)
          
          >>> tree['IP-MAT-SPE']['IP-MAT-PRN']
          {'NP-SBJ': {'PRO': ['he']}, 'VBD': ['seyde']}