From 2db64746cc8addb01e6da33bbca55d9d1d4d1f22 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Thu, 28 Jul 2022 14:29:13 +0200
Subject: [PATCH] refactor: remove a code dupl

---
 lib/soc2yaml.ml | 46 +++++++++++++---------------------------------
 test/lus2lic    |  2 +-
 2 files changed, 14 insertions(+), 34 deletions(-)

diff --git a/lib/soc2yaml.ml b/lib/soc2yaml.ml
index 6613618e..ce1bf839 100644
--- a/lib/soc2yaml.ml
+++ b/lib/soc2yaml.ml
@@ -1,9 +1,6 @@
-(* Time-stamp: <modified the 28/06/2022 (at 17:43) by Erwan Jahier> *)
-(*
-open printf;;
-#use "topfind";;
-#require "yaml";;
-#require "yaml.unix";;*)
+(* Time-stamp: <modified the 28/07/2022 (at 14:28) by Erwan Jahier> *)
+
+(* Author: Antony Zahran *)
 
 open Printf
 (*open Soc2cIdent*)
@@ -16,8 +13,6 @@ let (f : Soc.key -> Soc.tbl -> string -> unit) = fun sk stbl basename ->
 
   printf "%s.yaml file created\n%!" basename;
 
-
-
   let filename = SocNameC.get_filename main_soc in
   let ctx_name = SocNameC.get_ctx_name main_soc in
   let ctx_new = SocNameC.get_ctx_new main_soc in
@@ -26,31 +21,24 @@ let (f : Soc.key -> Soc.tbl -> string -> unit) = fun sk stbl basename ->
   let variables = SocNameC.get_variables main_soc in
   let nodes = SocNameC.get_nodes main_soc in
   let instances = SocNameC.get_instances main_soc in
-  
-
   let yaml_file = open_out (filename ^ ".yml") in
-
-
-
-  let inst_of_var = List.init ((List.length inputs) + (List.length outputs) + (List.length variables)) (fun _ -> ref 0) in
+  let inst_of_var = List.init ((List.length inputs) + (List.length outputs)
+                               + (List.length variables)) (fun _ -> ref 0) in
   let set_inst_of_var = fun i ->
     List.iter (fun v -> (List.nth inst_of_var v) := i.id) i.var_out
   in
   List.iter set_inst_of_var instances;
-
   let inst_to_inst = (List.init (List.length instances + 1) (fun _ -> ref [])) in
+  let add_inst = fun id v ->
+    if not (List.mem !(List.nth inst_of_var v) !(List.nth inst_to_inst id)) then
+      (List.nth inst_to_inst id) := List.append !(List.nth inst_to_inst id) [!(List.nth inst_of_var v)]
+  in
   let set_inst_to_inst = fun i ->
-    let add_inst = fun v ->
-      if not (List.mem !(List.nth inst_of_var v) !(List.nth inst_to_inst i.id)) then
-      (List.nth inst_to_inst i.id) := List.append !(List.nth inst_to_inst i.id) [!(List.nth inst_of_var v)]
-    in
-    List.iter add_inst i.var_in
+    List.iter (add_inst i.id) i.var_in
   in
   List.iter set_inst_to_inst instances;
-  let (add_inst : variable_type -> unit) = fun v ->
-    if not (List.mem !(List.nth inst_of_var v.id) !(List.nth inst_to_inst 0)) then
-    (List.nth inst_to_inst 0) := List.append !(List.nth inst_to_inst 0) [!(List.nth inst_of_var v.id)]
-  in
+  let (add_inst : variable_type -> unit) = fun v -> add_inst 0 v.id in 
+ 
   List.iter add_inst outputs;
 
   let channel_id = ref 0 in
@@ -62,11 +50,6 @@ let (f : Soc.key -> Soc.tbl -> string -> unit) = fun sk stbl basename ->
   in
   List.iteri (fun x -> fun yl -> (List.iter (add_channel x) !yl)) inst_to_inst;
 
-
-
-
-
-  
   let (var2yaml : variable_type -> unit) = fun i ->
     let s = "  - id: " ^ (string_of_int i.id)
             ^ "\n    name: " ^ i.name
@@ -126,9 +109,6 @@ let (f : Soc.key -> Soc.tbl -> string -> unit) = fun sk stbl basename ->
     (List.nth inst_id i.node) := !(List.nth inst_id i.node) + 1;
     fprintf yaml_file "%s\n" s
   in
-
-
-
   fprintf yaml_file "variables:\n";
   List.iter var2yaml (inputs);
   List.iter var2yaml (outputs);
@@ -146,4 +126,4 @@ let (f : Soc.key -> Soc.tbl -> string -> unit) = fun sk stbl basename ->
   fprintf yaml_file "instances:\n";
   List.iter instance2yaml instances;
 
-  close_out yaml_file
\ No newline at end of file
+  close_out yaml_file
diff --git a/test/lus2lic b/test/lus2lic
index e8b9e775..d2f52adc 120000
--- a/test/lus2lic
+++ b/test/lus2lic
@@ -1 +1 @@
-../_build/default/bin/main.exe
\ No newline at end of file
+../_build/default/bin/lv6/main.exe
\ No newline at end of file
-- 
GitLab