let output_dot_automata (states_l,trans_l) fichier =
let cout = open_out fichier in
out_fmt:=formatter_of_out_channel cout ;
fprintf !out_fmt "/* File generated by Aorai LTL2ACSL Plug-in */\n";
fprintf !out_fmt "/* */\n";
fprintf !out_fmt "/* Usage of dot files '.dot' : */\n";
fprintf !out_fmt "/* dot <MyFile.dot> -T<DesiredType> > <OutputFile> */\n";
fprintf !out_fmt "/* */\n";
fprintf !out_fmt "/* Allowed types : canon,dot,xdot,fig,gd,gd2, */\n";
fprintf !out_fmt "/* gif,hpgl,imap,cmap,ismap,jpg,jpeg,mif,mp,pcl,pic,plain, */\n";
fprintf !out_fmt "/* plain-ext,png,ps,ps2,svg,svgz,vrml,vtx,wbmp */\n";
fprintf !out_fmt "/* */\n";
fprintf !out_fmt "/* Example with postscript file : */\n";
fprintf !out_fmt "/* dot property.dot -Tps > property.ps */\n";
fprintf !out_fmt "";
fprintf !out_fmt "digraph %s {\n"
(Filename.chop_extension (Filename.basename fichier));
fprintf !out_fmt "\n";
List.iter (dot_state !out_fmt) states_l;
fprintf !out_fmt "\n";
List.iter (dot_trans !out_fmt) trans_l;
fprintf !out_fmt "\n";
fprintf !out_fmt "} /*End of graph*/\n";
fprintf !out_fmt "\n";
close_out cout;
out_fmt:=formatter_of_out_channel stdout