From c17d18840bc269f5fe9502c8916df6bb9f689b8a Mon Sep 17 00:00:00 2001
From: Kylian Fontaine <kylian.fontaine@etu.univ-lyon1.fr>
Date: Mon, 22 Jul 2024 14:25:45 +0200
Subject: [PATCH] graphe png genere dans meme fichier que les .v

---
 lib/ast.ml    | 12 ++++++------
 lib/gencoq.ml | 10 +++++-----
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/lib/ast.ml b/lib/ast.ml
index 0f6eea8..55a5ca2 100644
--- a/lib/ast.ml
+++ b/lib/ast.ml
@@ -329,7 +329,7 @@ let graph_from_edges (el : edge list)=
     @param g [G.t]
     @param name [string] png file name 
     @return[unit]*)
-let png_from_graph g name=
+let png_from_graph g name dir =
   let graph = G.fold_vertex (fun v acc ->
     let succs = List.map string_of_expression (G.succ g v)in
     let v' = string_of_expression v in
@@ -338,10 +338,10 @@ let png_from_graph g name=
       acc ^ "\"" ^ v' ^ "\";\n" ^ edges
     ) g "" in
   let dot = "digraph G {\nrankdir=LR;\nranksep=1;\n" ^ graph ^"\nsplines=true;\noverlap=false; "^"}" in
-  let oc = open_out ("./generate/"^name^"_measure.dot") in
+  let oc = open_out (dir^"/"^name^"_measure.dot") in
   Printf.fprintf oc "%s\n" dot;
   close_out oc;
-  ignore (Sys.command ("dot -Tpng ./generate/"^name^"_measure.dot -o ./generate/"^ name^"_measure.png"))
+  ignore (Sys.command ("dot -Tpng ./generate/"^name^"_measure.dot -o "^dir^"/"^ name^"_measure.png"))
 
 (**[assign_heigth g] returns the phase, phase weight association list. The phase weight is deduced from the order
                      topology of the phase
@@ -448,7 +448,7 @@ let string_of_expr_list expr_list =
 
 (**[png_from_graph2 g ] renvoie l'image au format png du graphe [g] 
     @param g de type [G2.t] graphe de liste de liste d'expression, composants fortement connexe *)  
-let png_from_graph2 (g:G2.t) (name : string) :unit =
+let png_from_graph2 (g:G2.t) (name : string) (dir : string) :unit =
   let graph = G2.fold_vertex (fun v acc ->
     let succs = List.map string_of_expr_list (G2.succ g v)in
     let v' = string_of_expr_list v in
@@ -457,10 +457,10 @@ let png_from_graph2 (g:G2.t) (name : string) :unit =
       acc ^ "\"" ^ v' ^ "\";\n" ^ edges
     ) g "" in
   let dot = "digraph G {\nrankdir=LR;\nranksep=1;\n" ^ graph ^"\nsplines=true;\noverlap=false; "^"}" in
-  let oc = open_out ("./generate/"^name^"_measure.dot") in
+  let oc = open_out (dir^"/"^name^"_measure.dot") in
   Printf.fprintf oc "%s\n" dot;
   close_out oc;
-  ignore (Sys.command ("dot -Tpng ./generate/"^name^"_measure.dot -o ./generate/"^ name^"_measure.png"))
+  ignore (Sys.command ("dot -Tpng ./generate/"^name^"_measure.dot -o "^dir^"/"^ name^"_measure.png"))
   
 
 (** [scc_graph g]  retourne le graphe G2.t correspondant au graphe de composants fortement connexe du graphe [g]
diff --git a/lib/gencoq.ml b/lib/gencoq.ml
index a6e76a0..c1ffcf9 100644
--- a/lib/gencoq.ml
+++ b/lib/gencoq.ml
@@ -514,7 +514,7 @@ let write_coq_file (gen: stmt list) (filename : string) =
   print_endline(filename^ " has been generated");;
 
 
-
+(*
 (**[generate_coq d s] generates the coq file containing the world description module, the type module and the proof module
     @param description of
     @param string s
@@ -524,7 +524,7 @@ let generate_coq (Description(d,r,Measure g) : description) (name : string)=
   then
       let gmpptype, gmpp_proof = generate_measure_per_phase g in
       let gdp_type, gdp_proof = generate_definition_phase g in
-      Ast.png_from_graph g name;
+      Ast.png_from_graph g name ;
       Ast.png_from_graph2 (Ast.scc_graph g;) (name^"_scc_graph");
       let file_exists =
       Sys.file_exists ("./generate/"^name^".v") in
@@ -540,7 +540,7 @@ let generate_coq (Description(d,r,Measure g) : description) (name : string)=
 
   else 
      () 
-
+*)
 (**[generate_filename base n dir] 
     @param base : string, base file name
     @param  n : integer, number of file iterations
@@ -566,8 +566,8 @@ let generate_coq_2files (Description(d,r,Measure g) : description) (name : strin
       let gdp_type, gdp_proof = generate_definition_phase g in
       let name_gen =  if overwrite then type_name else  generate_filename type_name 1 dir in 
       if gen_graph then begin
-        Ast.png_from_graph g name_gen;
-        Ast.png_from_graph2 (Ast.scc_graph g) (name_gen^"_scc_graph");
+        Ast.png_from_graph g name_gen dir;
+        Ast.png_from_graph2 (Ast.scc_graph g) (name_gen^"_scc_graph") dir;
       end;
 
       let module_world_type = (generate_requires d)@Module("World",(generate_instances d)@newline::generate_robogram r d)
-- 
GitLab