code: def _evolve_reader(in_file):
      
      cur_id_list = None
      cur_tree = None
      with open(in_file) as in_handle:
          for line in in_handle:
              if line.startswith("id,"):
                  if cur_id_list:
                      yield cur_id_list, cur_tree
                  cur_id_list = []
                  cur_tree = None
              elif cur_tree is not None:
                  if line.strip() and not line.startswith("Number of non-empty"):
                      cur_tree.append(line.rstrip())
              elif not line.strip() and cur_id_list and len(cur_id_list) > 0:
                  cur_tree = []
              elif line.strip():
                  parts = []
                  for part in line.strip().split("\t"):
                      if part.endswith(","):
                          part = part[:-1]
                      parts.append(part)
                  if len(parts) > 4:
                      nid, freq, _, _, support = parts
                      cur_id_list.append((nid, freq, support.split("; ")))
      if cur_id_list:
          yield cur_id_list, cur_tree
docs: Generate a list of region IDs and trees from a top_k_trees evolve.py file.