# # patch "agraph.ml" # from [f12739a60a31028c6bc1bcf4b48df6196d09becd] # to [c9152945a3b80583ed6fc6e8b8c45f69a75b62be] # ======================================================================== --- agraph.ml f12739a60a31028c6bc1bcf4b48df6196d09becd +++ agraph.ml c9152945a3b80583ed6fc6e8b8c45f69a75b62be @@ -70,13 +70,14 @@ do_nodes (fun n -> n.kind = DISAPPROVE) ; end ; + let heads = find_heads agraph in begin (* heads *) !+ " subgraph heads {\n" ; !+ " rank = sink ;\n" ; IdSet.iter (fun id -> !+ " %S ;\n" id) - (find_heads agraph) ; + heads ; !+ " }\n" end ; @@ -84,9 +85,10 @@ (* edges *) EdgeMap.iter (fun (s, t) kind -> - !+ " %S -> %S " s t ; - if kind = SPANNING then !+ "[minlen = 5]" ; - !+ ";\n" ; + !+ " %S -> %S" s t ; + if kind = SPANNING then !+ " [minlen = 5]" ; + if IdSet.mem t heads then !+ " [weight = 2]" ; + !+ " ;\n" ; if IdSet.mem t agraph.neighbour_nodes && not (IdSet.mem s agraph.neighbour_nodes) then !+ " { rank = same ; %S ; %S }" s t)