From 735333c167113b60e9af1b9628d3a76dc1bfc4af Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Tue, 23 Jun 2015 17:07:30 +0200
Subject: [PATCH] Remove the dependencies of Lv6MainArgs in Lv6utils introduced
 by Mamadou (which breaks lurettetop)

nb : Mamadou's change broke some tests (18->53). Empty body is
generated for nodes that have one eq.  I'll fix that later.
---
 src/licDump.ml    | 135 +++++++++++++++++++++++-----------------------
 test/lus2lic.sum  | 123 ++++++++++++++++++++++++------------------
 test/lus2lic.time |  12 ++---
 3 files changed, 143 insertions(+), 127 deletions(-)

diff --git a/src/licDump.ml b/src/licDump.ml
index e43c5207..dc9480e1 100644
--- a/src/licDump.ml
+++ b/src/licDump.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 18/06/2015 (at 15:07) by Erwan Jahier> *)
+(* Time-stamp: <modified the 23/06/2015 (at 17:03) by Erwan Jahier> *)
 
 open Lv6errors
 open Printf
@@ -165,9 +165,9 @@ and string_def_of_type_eff = function
     if global_opt.kcg then
       (List.fold_left (f ", ")  (f "" " {" (List.hd fl)) (List.tl fl)) ^ "}"
     else
-    "struct " ^
-      (List.fold_left (f "; ")  (f "" " {" (List.hd fl)) (List.tl fl)) ^ "}"
-      
+      "struct " ^
+        (List.fold_left (f "; ")  (f "" " {" (List.hd fl)) (List.tl fl)) ^ "}"
+        
   | TypeVar Any -> "a"
   | TypeVar AnyNum -> "o"
 
@@ -422,36 +422,36 @@ and (string_of_by_pos_op_eff: Lic.by_pos_op srcflagged -> Lic.val_exp list -> st
         | VAR_REF id, _ -> id
         | PRE, _ -> "pre "  ^ (tuple_par vel)
         | ARROW, [ve1; ve2] -> (* if global_opt.kcg then (
-	    "fby(" ^
-              (if is_a_tuple ve2 then tuple_par [ve2] else string_of_val_exp_eff ve2)
-            ^ ";1;" ^
-              (if is_a_tuple ve2 then tuple_par [ve1] else string_of_val_exp_eff ve1) ^ ")"
-          
-	    ) 
-	    else( *)
+	                               "fby(" ^
+                                  (if is_a_tuple ve2 then tuple_par [ve2] else string_of_val_exp_eff ve2)
+                                  ^ ";1;" ^
+                                  (if is_a_tuple ve2 then tuple_par [ve1] else string_of_val_exp_eff ve1) ^ ")"
+                                  
+	                               ) 
+	                               else( *)
           (if is_a_tuple ve1 then tuple_par [ve1] else string_of_val_exp_eff ve1) ^
             " -> " ^ 
             (if is_a_tuple ve1 then tuple_par [ve2] else string_of_val_exp_eff ve2)
-	    
+	         
         | FBY, [ve1; ve2] -> 
-	  (* dead code ? *)
+	       (* dead code ? *)
           if global_opt.lv4 then
             (if is_a_tuple ve1 then tuple_par [ve1] else string_of_val_exp_eff ve1)
             ^ " -> pre " ^ 
               (if is_a_tuple ve1 then tuple_par [ve2] else string_of_val_exp_eff ve2)
           else
-	    if global_opt.kcg then (
-	    "fby(" ^
-              (if is_a_tuple ve2 then tuple_par [ve2] else string_of_val_exp_eff ve2)
-            ^ ";1;" ^
-              (if is_a_tuple ve2 then tuple_par [ve1] else string_of_val_exp_eff ve1) ^ ")"
-          
-	    ) 
-	    else( 
-            (if is_a_tuple ve1 then tuple_par [ve1] else string_of_val_exp_eff ve1)
-            ^ " fby " ^ 
-              (if is_a_tuple ve1 then tuple_par [ve2] else string_of_val_exp_eff ve2)
-	    )
+	         if global_opt.kcg then (
+	           "fby(" ^
+                (if is_a_tuple ve2 then tuple_par [ve2] else string_of_val_exp_eff ve2)
+              ^ ";1;" ^
+                (if is_a_tuple ve2 then tuple_par [ve1] else string_of_val_exp_eff ve1) ^ ")"
+                
+	         ) 
+	         else( 
+              (if is_a_tuple ve1 then tuple_par [ve1] else string_of_val_exp_eff ve1)
+              ^ " fby " ^ 
+                (if is_a_tuple ve1 then tuple_par [ve2] else string_of_val_exp_eff ve2)
+	         )
         | WHEN clk, vel -> (tuple vel) ^ (string_of_clock clk)
 
         | CURRENT Some _,_ -> "current " ^ tuple_par (if global_opt.ec then List.tl vel else vel)
@@ -518,14 +518,14 @@ and string_of_val_exp_eff_core ve_core =
           (string_of_val_exp_eff ct) ^ ") else current (" ^ 
           (string_of_val_exp_eff cf) ^")" 
       ) else  (
-	if global_opt.kcg then (
-        "merge ( " ^ (string_of_val_exp_eff ve) ^ ";" ^
-          (string_of_val_exp_eff ct) ^ "when " ^(string_of_val_exp_eff ve) ^ ";" ^ 
-          (string_of_val_exp_eff cf) ^ "when not " ^ (string_of_val_exp_eff ve) ^ ")" 
-      ) else  (
-        "merge " ^ (string_of_val_exp_eff ve) ^ " (true -> " ^
-          (string_of_val_exp_eff ct) ^ ") (false -> "^  (string_of_val_exp_eff cf) ^")"
-      )
+	     if global_opt.kcg then (
+          "merge ( " ^ (string_of_val_exp_eff ve) ^ ";" ^
+            (string_of_val_exp_eff ct) ^ "when " ^(string_of_val_exp_eff ve) ^ ";" ^ 
+            (string_of_val_exp_eff cf) ^ "when not " ^ (string_of_val_exp_eff ve) ^ ")" 
+        ) else  (
+          "merge " ^ (string_of_val_exp_eff ve) ^ " (true -> " ^
+            (string_of_val_exp_eff ct) ^ ") (false -> "^  (string_of_val_exp_eff cf) ^")"
+        )
       )
     | Merge (ve, cl) -> (
       "merge " ^ (string_of_val_exp_eff ve) ^ " " ^
@@ -601,9 +601,9 @@ and wrap_long_profile str =
 
 and (profile_of_node_exp_eff: Lic.node_exp -> string) =
   fun neff ->
- 
-     ("(" ^ (string_of_type_decl_list  neff.inlist_eff "; ") ^ ") returns (" ^
-	 (string_of_type_decl_list neff.outlist_eff "; ") ^ ")")
+    
+    ("(" ^ (string_of_type_decl_list  neff.inlist_eff "; ") ^ ") returns (" ^
+	     (string_of_type_decl_list neff.outlist_eff "; ") ^ ")")
 
 
 and (string_of_node_def : Lic.node_def -> string list) =
@@ -629,7 +629,7 @@ and (type_decl: Lv6Id.long -> Lic.type_ -> string) =
         | Abstract_type_eff(_,External_type_eff (_)) -> ";\n"
         | _ ->  " = " ^ (string_def_of_type_eff teff) ^ ";\n"
       )
-     
+      
 (* exported *)
 and (const_decl: Lv6Id.long -> Lic.const -> string) =
   fun tname ceff -> 
@@ -647,7 +647,7 @@ and (const_decl: Lv6Id.long -> Lic.const -> string) =
       | Bool_const_eff _
       | Int_const_eff _
       | Real_const_eff _ -> if global_opt.kcg then begin_str ^ ":" ^ (string_of_type_eff (Lic.type_of_const ceff)) ^ " = " ^ end_str
-	else begin_str ^ " = " ^ end_str
+	     else begin_str ^ " = " ^ end_str
 		| Tuple_const_eff _ ->
 		  print_internal_error "LicDump.const_decl" "should not have been called for a tuple";
 		  assert false
@@ -663,46 +663,43 @@ and node_of_node_exp_eff (neff: Lic.node_exp): string =
          if neff.def_eff = ExternLic && not (global_opt.lv4)
          (* no extern kwd in v4... *)
          then "extern " else ""
-      )^(
-         if global_opt.lv4 || global_opt.kcg then (
-         (* node and function does not have the same meaning in scade and in lv4... *)
-            if neff.def_eff = ExternLic then "function " else "node "
-         ) else (
-            if neff.has_mem_eff  then "node " else "function "
-         )
        )^(
-	if global_opt.kcg then 
-         string_of_node_key_rec (not global_opt.no_prefix) neff.node_key_eff
-	else
-	 string_of_node_key_rec  global_opt.no_prefix neff.node_key_eff
-      )^(
-         profile_of_node_exp_eff neff
+        if global_opt.lv4 || global_opt.kcg then (
+            (* node and function does not have the same meaning in scade and in lv4... *)
+          if neff.def_eff = ExternLic then "function " else "node "
+        ) else (
+          if neff.has_mem_eff  then "node " else "function "
+        )
+       )^(
+	     if global_opt.kcg then 
+          string_of_node_key_rec (not global_opt.no_prefix) neff.node_key_eff
+	     else
+	       string_of_node_key_rec  global_opt.no_prefix neff.node_key_eff
+       )^(
+        profile_of_node_exp_eff neff
        )
    )^
-      (
-      match neff.def_eff with
-         | ExternLic ->  ";\n"
-         | MetaOpLic -> (
+      (match neff.def_eff with
+        | ExternLic ->  ";\n"
+        | MetaOpLic -> (
             (* on écrit juste un alias *)
-            " = "^
-            (string_of_node_key_def neff.node_key_eff)^
-            (";\n")
+          " = " ^(string_of_node_key_def neff.node_key_eff)^ ";\n"
          )
          | AbstractLic _ -> ";\n"
          | BodyLic _ -> (
            (if global_opt.kcg then "\n" else ";\n") ^
              (match neff.loclist_eff with
-             | None -> ""
-             | Some [] -> ""
-             | Some l ->
-	       ("var\n   " ^ (string_of_type_decl_list l ";\n   ") ^ ";\n"
-	       ) ^
-		 "let\n   " ^
-		 (String.concat "\n   " (string_of_node_def neff.def_eff)) ^
-		 "\ntel\n-- end of node " ^
-		 (string_of_node_key_rec (not global_opt.no_prefix) neff.node_key_eff) ^ "\n")
-	 ) 
-      )
+               | None -> ""
+               | Some [] -> ""
+               | Some l ->
+	              ("var\n   " ^ (string_of_type_decl_list l ";\n   ") ^ ";\n"
+	              )
+             ) ^ "let\n   " ^
+		       (String.concat "\n   " (string_of_node_def neff.def_eff)) ^
+		       "\ntel\n-- end of node " ^
+		       (string_of_node_key_rec (not global_opt.no_prefix) neff.node_key_eff) ^ "\n")
+	   ) 
+      
 and (string_of_clock_exp : AstCore.clock_exp -> string) = 
   function
     | AstCore.Base -> ""
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index a3b172c4..bc072a05 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test Run By jahier on Tue Jun 23 10:49:47 
+Test Run By jahier on Tue Jun 23 17:05:08 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic0 tests ===
@@ -63,7 +63,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte
 XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
 
 ==> lus2lic1.sum <==
-Test Run By jahier on Tue Jun 23 10:49:48 
+Test Run By jahier on Tue Jun 23 17:05:09 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -398,7 +398,7 @@ PASS: gcc -o multipar.exec multipar_multipar.c multipar_multipar_loop.c
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus  {}
 
 ==> lus2lic2.sum <==
-Test Run By jahier on Tue Jun 23 10:50:03 
+Test Run By jahier on Tue Jun 23 17:05:24 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -732,7 +732,7 @@ PASS: gcc -o zzz2.exec zzz2_zzz2.c zzz2_zzz2_loop.c
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus  {}
 
 ==> lus2lic3.sum <==
-Test Run By jahier on Tue Jun 23 10:50:48 
+Test Run By jahier on Tue Jun 23 17:06:08 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -748,10 +748,11 @@ PASS: ./myec2c {-o COUNTER.c COUNTER.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node COUNTER.lus {}
 PASS: ./lus2lic {-o CURRENT.lic CURRENT.lus}
 PASS: ./lus2lic {-ec -o CURRENT.ec CURRENT.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o CURRENT.c CURRENT.ec}
+PASS: ./myec2c {-o CURRENT.c CURRENT.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node CURRENT.lus {}
 PASS: ./lus2lic {-o Condact.lic Condact.lus}
 PASS: ./lus2lic {-ec -o Condact.ec Condact.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o Condact.c Condact.ec}
+PASS: ./myec2c {-o Condact.c Condact.ec}
 PASS: ./lus2lic {-o EDGE.lic EDGE.lus}
 PASS: ./lus2lic {-ec -o EDGE.ec EDGE.lus}
 PASS: ./myec2c {-o EDGE.c EDGE.ec}
@@ -815,14 +816,16 @@ PASS: ./myec2c {-o argos.c argos.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node argos.lus {}
 PASS: ./lus2lic {-o array_concat.lic array_concat.lus}
 PASS: ./lus2lic {-ec -o array_concat.ec array_concat.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o array_concat.c array_concat.ec}
+PASS: ./myec2c {-o array_concat.c array_concat.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node array_concat.lus {}
 PASS: ./lus2lic {-o array_concat2.lic array_concat2.lus}
 PASS: ./lus2lic {-ec -o array_concat2.ec array_concat2.lus}
 PASS: ./myec2c {-o array_concat2.c array_concat2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node array_concat2.lus {}
 PASS: ./lus2lic {-o arrays.lic arrays.lus}
 PASS: ./lus2lic {-ec -o arrays.ec arrays.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o arrays.c arrays.ec}
+PASS: ./myec2c {-o arrays.c arrays.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node arrays.lus {}
 PASS: ./lus2lic {-o asservi.lic asservi.lus}
 PASS: ./lus2lic {-ec -o asservi.ec asservi.lus}
 PASS: ./myec2c {-o asservi.c asservi.ec}
@@ -848,7 +851,8 @@ PASS: ./myec2c {-o bred_lv4.c bred_lv4.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bred_lv4.lus {}
 PASS: ./lus2lic {-o bug.lic bug.lus}
 PASS: ./lus2lic {-ec -o bug.ec bug.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o bug.c bug.ec}
+PASS: ./myec2c {-o bug.c bug.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bug.lus {}
 PASS: ./lus2lic {-o bug2.lic bug2.lus}
 PASS: ./lus2lic {-ec -o bug2.ec bug2.lus}
 PASS: ./myec2c {-o bug2.c bug2.ec}
@@ -863,10 +867,11 @@ PASS: ./lus2lic {-ec -o call.ec call.lus}
 PASS: ./myec2c {-o call.c call.ec}
 PASS: ./lus2lic {-o call01.lic call01.lus}
 PASS: ./lus2lic {-ec -o call01.ec call01.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o call01.c call01.ec}
+PASS: ./myec2c {-o call01.c call01.ec}
 PASS: ./lus2lic {-o call02.lic call02.lus}
 PASS: ./lus2lic {-ec -o call02.ec call02.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o call02.c call02.ec}
+PASS: ./myec2c {-o call02.c call02.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node call02.lus {}
 PASS: ./lus2lic {-o call03.lic call03.lus}
 PASS: ./lus2lic {-ec -o call03.ec call03.lus}
 PASS: ./myec2c {-o call03.c call03.ec}
@@ -876,7 +881,7 @@ PASS: ./myec2c {-o call04.c call04.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node call04.lus {}
 PASS: ./lus2lic {-o call05.lic call05.lus}
 PASS: ./lus2lic {-ec -o call05.ec call05.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o call05.c call05.ec}
+PASS: ./myec2c {-o call05.c call05.ec}
 PASS: ./lus2lic {-o call06.lic call06.lus}
 PASS: ./lus2lic {-ec -o call06.ec call06.lus}
 PASS: ./myec2c {-o call06.c call06.ec}
@@ -901,7 +906,8 @@ PASS: ./myec2c {-o ck3.c ck3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck3.lus {}
 PASS: ./lus2lic {-o ck4.lic ck4.lus}
 PASS: ./lus2lic {-ec -o ck4.ec ck4.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o ck4.c ck4.ec}
+PASS: ./myec2c {-o ck4.c ck4.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck4.lus {}
 PASS: ./lus2lic {-o ck5.lic ck5.lus}
 PASS: ./lus2lic {-ec -o ck5.ec ck5.lus}
 PASS: ./myec2c {-o ck5.c ck5.ec}
@@ -911,7 +917,8 @@ PASS: ./lus2lic {-ec -o ck6.ec ck6.lus}
 PASS: ./myec2c {-o ck6.c ck6.ec}
 PASS: ./lus2lic {-o ck7.lic ck7.lus}
 PASS: ./lus2lic {-ec -o ck7.ec ck7.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o ck7.c ck7.ec}
+PASS: ./myec2c {-o ck7.c ck7.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck7.lus {}
 PASS: ./lus2lic {-o clock1_2ms.lic clock1_2ms.lus}
 PASS: ./lus2lic {-ec -o clock1_2ms.ec clock1_2ms.lus}
 PASS: ./myec2c {-o clock1_2ms.c clock1_2ms.ec}
@@ -926,7 +933,7 @@ PASS: ./myec2c {-o cminus.c cminus.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node cminus.lus {}
 PASS: ./lus2lic {-o complex.lic complex.lus}
 PASS: ./lus2lic {-ec -o complex.ec complex.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o complex.c complex.ec}
+PASS: ./myec2c {-o complex.c complex.ec}
 PASS: ./lus2lic {-o compteur.lic compteur.lus}
 PASS: ./lus2lic {-ec -o compteur.ec compteur.lus}
 PASS: ./myec2c {-o compteur.c compteur.ec}
@@ -965,7 +972,7 @@ PASS: ./myec2c {-o deSimone.c deSimone.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node deSimone.lus {}
 PASS: ./lus2lic {-o decl.lic decl.lus}
 PASS: ./lus2lic {-ec -o decl.ec decl.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o decl.c decl.ec}
+PASS: ./myec2c {-o decl.c decl.ec}
 PASS: ./lus2lic {-o declaration.lic declaration.lus}
 PASS: ./lus2lic {-ec -o declaration.ec declaration.lus}
 PASS: ./myec2c {-o declaration.c declaration.ec}
@@ -1005,7 +1012,8 @@ PASS: ./myec2c {-o exclusion.c exclusion.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node exclusion.lus {}
 PASS: ./lus2lic {-o filliter.lic filliter.lus}
 PASS: ./lus2lic {-ec -o filliter.ec filliter.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o filliter.c filliter.ec}
+PASS: ./myec2c {-o filliter.c filliter.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node filliter.lus {}
 PASS: ./lus2lic {-o filter.lic filter.lus}
 PASS: ./lus2lic {-ec -o filter.ec filter.lus}
 PASS: ./myec2c {-o filter.c filter.ec}
@@ -1024,7 +1032,7 @@ PASS: ./myec2c {-o fresh_name.c fresh_name.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node fresh_name.lus {}
 PASS: ./lus2lic {-o func_with_body.lic func_with_body.lus}
 PASS: ./lus2lic {-ec -o func_with_body.ec func_with_body.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o func_with_body.c func_with_body.ec}
+PASS: ./myec2c {-o func_with_body.c func_with_body.ec}
 PASS: ./lus2lic {-o hanane.lic hanane.lus}
 PASS: ./lus2lic {-ec -o hanane.ec hanane.lus}
 PASS: ./myec2c {-o hanane.c hanane.ec}
@@ -1054,7 +1062,8 @@ PASS: ./myec2c {-o is_stable.c is_stable.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node is_stable.lus {}
 PASS: ./lus2lic {-o iter.lic iter.lus}
 PASS: ./lus2lic {-ec -o iter.ec iter.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o iter.c iter.ec}
+PASS: ./myec2c {-o iter.c iter.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node iter.lus {}
 PASS: ./lus2lic {-o iterFibo.lic iterFibo.lus}
 PASS: ./lus2lic {-ec -o iterFibo.ec iterFibo.lus}
 PASS: ./myec2c {-o iterFibo.c iterFibo.ec}
@@ -1077,7 +1086,7 @@ PASS: ./myec2c {-o lucky.c lucky.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node lucky.lus {}
 PASS: ./lus2lic {-o lustre.lic lustre.lus}
 PASS: ./lus2lic {-ec -o lustre.ec lustre.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o lustre.c lustre.ec}
+PASS: ./myec2c {-o lustre.c lustre.ec}
 PASS: ./lus2lic {-o lustre_test1_ok.lic lustre_test1_ok.lus}
 PASS: ./lus2lic {-ec -o lustre_test1_ok.ec lustre_test1_ok.lus}
 PASS: ./myec2c {-o lustre_test1_ok.c lustre_test1_ok.ec}
@@ -1088,7 +1097,7 @@ PASS: ./myec2c {-o map.c map.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node map.lus {}
 PASS: ./lus2lic {-o map_red_iter.lic map_red_iter.lus}
 PASS: ./lus2lic {-ec -o map_red_iter.ec map_red_iter.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o map_red_iter.c map_red_iter.ec}
+PASS: ./myec2c {-o map_red_iter.c map_red_iter.ec}
 PASS: ./lus2lic {-o mapdeRed.lic mapdeRed.lus}
 PASS: ./lus2lic {-ec -o mapdeRed.ec mapdeRed.lus}
 PASS: ./myec2c {-o mapdeRed.c mapdeRed.ec}
@@ -1165,10 +1174,10 @@ PASS: ./myec2c {-o mm3.c mm3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mm3.lus {}
 PASS: ./lus2lic {-o model.lic model.lus}
 PASS: ./lus2lic {-ec -o model.ec model.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o model.c model.ec}
+PASS: ./myec2c {-o model.c model.ec}
 PASS: ./lus2lic {-o model2.lic model2.lus}
 PASS: ./lus2lic {-ec -o model2.ec model2.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o model2.c model2.ec}
+PASS: ./myec2c {-o model2.c model2.ec}
 PASS: ./lus2lic {-o modelInst.lic modelInst.lus}
 PASS: ./lus2lic {-ec -o modelInst.ec modelInst.lus}
 PASS: ./myec2c {-o modelInst.c modelInst.ec}
@@ -1230,7 +1239,7 @@ PASS: ./myec2c {-o multipar.c multipar.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
 
 ==> lus2lic4.sum <==
-Test Run By jahier on Tue Jun 23 10:51:01 
+Test Run By jahier on Tue Jun 23 17:06:21 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1336,7 +1345,8 @@ PASS: ./lus2lic {-ec -o newpacks.ec newpacks.lus}
 PASS: ./myec2c {-o newpacks.c newpacks.ec}
 PASS: ./lus2lic {-o noAlarm.lic noAlarm.lus}
 PASS: ./lus2lic {-ec -o noAlarm.ec noAlarm.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o noAlarm.c noAlarm.ec}
+PASS: ./myec2c {-o noAlarm.c noAlarm.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node noAlarm.lus {}
 PASS: ./lus2lic {-o node_caller1.lic node_caller1.lus}
 PASS: ./lus2lic {-ec -o node_caller1.ec node_caller1.lus}
 PASS: ./myec2c {-o node_caller1.c node_caller1.ec}
@@ -1347,7 +1357,8 @@ PASS: ./myec2c {-o nodeparam.c nodeparam.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nodeparam.lus {}
 PASS: ./lus2lic {-o noeudsIndependants.lic noeudsIndependants.lus}
 PASS: ./lus2lic {-ec -o noeudsIndependants.ec noeudsIndependants.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o noeudsIndependants.c noeudsIndependants.ec}
+PASS: ./myec2c {-o noeudsIndependants.c noeudsIndependants.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node noeudsIndependants.lus {}
 PASS: ./lus2lic {-o normal.lic normal.lus}
 PASS: ./lus2lic {-ec -o normal.ec normal.lus}
 PASS: ./myec2c {-o normal.c normal.ec}
@@ -1361,7 +1372,7 @@ PASS: ./myec2c {-o o2l_feux_compl.c o2l_feux_compl.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node o2l_feux_compl.lus {}
 PASS: ./lus2lic {-o oneq.lic oneq.lus}
 PASS: ./lus2lic {-ec -o oneq.ec oneq.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o oneq.c oneq.ec}
+PASS: ./myec2c {-o oneq.c oneq.ec}
 PASS: ./lus2lic {-o onlyroll.lic onlyroll.lus}
 PASS: ./lus2lic {-ec -o onlyroll.ec onlyroll.lus}
 PASS: ./myec2c {-o onlyroll.c onlyroll.ec}
@@ -1387,10 +1398,10 @@ PASS: ./lus2lic {-ec -o p.ec p.lus}
 PASS: ./myec2c {-o p.c p.ec}
 PASS: ./lus2lic {-o pack1.lic pack1.lus}
 PASS: ./lus2lic {-ec -o pack1.ec pack1.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o pack1.c pack1.ec}
+PASS: ./myec2c {-o pack1.c pack1.ec}
 PASS: ./lus2lic {-o packageTableau.lic packageTableau.lus}
 PASS: ./lus2lic {-ec -o packageTableau.ec packageTableau.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o packageTableau.c packageTableau.ec}
+PASS: ./myec2c {-o packageTableau.c packageTableau.ec}
 PASS: ./lus2lic {-o packed_cst.lic packed_cst.lus}
 PASS: ./lus2lic {-ec -o packed_cst.ec packed_cst.lus}
 PASS: ./myec2c {-o packed_cst.c packed_cst.ec}
@@ -1403,7 +1414,8 @@ PASS: ./myec2c {-o param_node.c param_node.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node param_node.lus {}
 PASS: ./lus2lic {-o param_node2.lic param_node2.lus}
 PASS: ./lus2lic {-ec -o param_node2.ec param_node2.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o param_node2.c param_node2.ec}
+PASS: ./myec2c {-o param_node2.c param_node2.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node param_node2.lus {}
 PASS: ./lus2lic {-o param_node3.lic param_node3.lus}
 PASS: ./lus2lic {-ec -o param_node3.ec param_node3.lus}
 PASS: ./myec2c {-o param_node3.c param_node3.ec}
@@ -1441,14 +1453,15 @@ PASS: ./myec2c {-o ply03.c ply03.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ply03.lus {}
 PASS: ./lus2lic {-o polymorphic_pack.lic polymorphic_pack.lus}
 PASS: ./lus2lic {-ec -o polymorphic_pack.ec polymorphic_pack.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o polymorphic_pack.c polymorphic_pack.ec}
+PASS: ./myec2c {-o polymorphic_pack.c polymorphic_pack.ec}
 PASS: ./lus2lic {-o poussoir.lic poussoir.lus}
 PASS: ./lus2lic {-ec -o poussoir.ec poussoir.lus}
 PASS: ./myec2c {-o poussoir.c poussoir.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node poussoir.lus {}
 PASS: ./lus2lic {-o pplus.lic pplus.lus}
 PASS: ./lus2lic {-ec -o pplus.ec pplus.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o pplus.c pplus.ec}
+PASS: ./myec2c {-o pplus.c pplus.ec}
+FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node pplus.lus {}
 PASS: ./lus2lic {-o pre_x.lic pre_x.lus}
 PASS: ./lus2lic {-ec -o pre_x.ec pre_x.lus}
 PASS: ./myec2c {-o pre_x.c pre_x.ec}
@@ -1529,7 +1542,8 @@ PASS: ./myec2c {-o stopwatch.c stopwatch.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node stopwatch.lus {}
 PASS: ./lus2lic {-o struct0.lic struct0.lus}
 PASS: ./lus2lic {-ec -o struct0.ec struct0.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o struct0.c struct0.ec}
+PASS: ./myec2c {-o struct0.c struct0.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node struct0.lus {}
 PASS: ./lus2lic {-o struct_with.lic struct_with.lus}
 PASS: ./lus2lic {-ec -o struct_with.ec struct_with.lus}
 PASS: ./myec2c {-o struct_with.c struct_with.ec}
@@ -1572,13 +1586,15 @@ PASS: ./myec2c {-o test_boolred.c test_boolred.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_boolred.lus {}
 PASS: ./lus2lic {-o test_clash.lic test_clash.lus}
 PASS: ./lus2lic {-ec -o test_clash.ec test_clash.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o test_clash.c test_clash.ec}
+PASS: ./myec2c {-o test_clash.c test_clash.ec}
 PASS: ./lus2lic {-o test_condact.lic test_condact.lus}
 PASS: ./lus2lic {-ec -o test_condact.ec test_condact.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o test_condact.c test_condact.ec}
+PASS: ./myec2c {-o test_condact.c test_condact.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_condact.lus {}
 PASS: ./lus2lic {-o test_const.lic test_const.lus}
 PASS: ./lus2lic {-ec -o test_const.ec test_const.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o test_const.c test_const.ec}
+PASS: ./myec2c {-o test_const.c test_const.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_const.lus {}
 PASS: ./lus2lic {-o test_diese.lic test_diese.lus}
 PASS: ./lus2lic {-ec -o test_diese.ec test_diese.lus}
 PASS: ./myec2c {-o test_diese.c test_diese.ec}
@@ -1588,7 +1604,7 @@ PASS: ./lus2lic {-ec -o test_enum.ec test_enum.lus}
 PASS: ./myec2c {-o test_enum.c test_enum.ec}
 PASS: ./lus2lic {-o test_extern.lic test_extern.lus}
 PASS: ./lus2lic {-ec -o test_extern.ec test_extern.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o test_extern.c test_extern.ec}
+PASS: ./myec2c {-o test_extern.c test_extern.ec}
 PASS: ./lus2lic {-o test_map.lic test_map.lus}
 PASS: ./lus2lic {-ec -o test_map.ec test_map.lus}
 PASS: ./myec2c {-o test_map.c test_map.ec}
@@ -1646,16 +1662,19 @@ PASS: ./myec2c {-o trivial_array.c trivial_array.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node trivial_array.lus {}
 PASS: ./lus2lic {-o ts01.lic ts01.lus}
 PASS: ./lus2lic {-ec -o ts01.ec ts01.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o ts01.c ts01.ec}
+PASS: ./myec2c {-o ts01.c ts01.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ts01.lus {}
 PASS: ./lus2lic {-o ts04.lic ts04.lus}
 PASS: ./lus2lic {-ec -o ts04.ec ts04.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o ts04.c ts04.ec}
+PASS: ./myec2c {-o ts04.c ts04.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ts04.lus {}
 PASS: ./lus2lic {-o tuple.lic tuple.lus}
 PASS: ./lus2lic {-ec -o tuple.ec tuple.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o tuple.c tuple.ec}
+PASS: ./myec2c {-o tuple.c tuple.ec}
+PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node tuple.lus {}
 PASS: ./lus2lic {-o type_decl.lic type_decl.lus}
 PASS: ./lus2lic {-ec -o type_decl.ec type_decl.lus}
-FAIL: Try ec2c on the result: ./myec2c {-o type_decl.c type_decl.ec}
+PASS: ./myec2c {-o type_decl.c type_decl.ec}
 PASS: ./lus2lic {-o uu.lic uu.lus}
 PASS: ./lus2lic {-ec -o uu.ec uu.lus}
 PASS: ./myec2c {-o uu.c uu.ec}
@@ -1712,25 +1731,25 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 
 		=== lus2lic3 Summary ===
 
-# of expected passes		460
-# of unexpected failures	26
+# of expected passes		488
+# of unexpected failures	7
 
 ==> lus2lic4.sum <==
 
 		=== lus2lic4 Summary ===
 
-# of expected passes		427
-# of unexpected failures	20
+# of expected passes		453
+# of unexpected failures	4
 ===============================
-# Total number of failures: 53
+# Total number of failures: 18
 lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds
 lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 15 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 45 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 44 seconds
 lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 13 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 48 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 46 seconds
 * Ref time: 
-0.05user 0.02system 2:01.52elapsed 0%CPU (0avgtext+0avgdata 5068maxresident)k
-32inputs+0outputs (0major+5533minor)pagefaults 0swaps
+0.04user 0.02system 1:59.60elapsed 0%CPU (0avgtext+0avgdata 5064maxresident)k
+96inputs+0outputs (0major+5518minor)pagefaults 0swaps
 * Quick time (-j 4):
-0.03user 0.02system 0:52.62elapsed 0%CPU (0avgtext+0avgdata 5080maxresident)k
-64inputs+0outputs (0major+5579minor)pagefaults 0swaps
+0.03user 0.03system 0:51.33elapsed 0%CPU (0avgtext+0avgdata 5108maxresident)k
+32inputs+0outputs (0major+5566minor)pagefaults 0swaps
diff --git a/test/lus2lic.time b/test/lus2lic.time
index df57a141..1f7e5468 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,11 +1,11 @@
 lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds
 lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 15 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 45 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 44 seconds
 lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 13 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 48 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 46 seconds
 * Ref time: 
-0.05user 0.02system 2:01.52elapsed 0%CPU (0avgtext+0avgdata 5068maxresident)k
-32inputs+0outputs (0major+5533minor)pagefaults 0swaps
+0.04user 0.02system 1:59.60elapsed 0%CPU (0avgtext+0avgdata 5064maxresident)k
+96inputs+0outputs (0major+5518minor)pagefaults 0swaps
 * Quick time (-j 4):
-0.03user 0.02system 0:52.62elapsed 0%CPU (0avgtext+0avgdata 5080maxresident)k
-64inputs+0outputs (0major+5579minor)pagefaults 0swaps
+0.03user 0.03system 0:51.33elapsed 0%CPU (0avgtext+0avgdata 5108maxresident)k
+32inputs+0outputs (0major+5566minor)pagefaults 0swaps
-- 
GitLab