From e5d26516e95681e93586c652c6fd4013e2daab1e Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Fri, 6 Jun 2014 10:44:57 +0200
Subject: [PATCH] Soc2c : fix a couple of issues in struct printing.

of expected passes		1073 -> 1116
of unexpected failures	325 -> 282
---
 src/soc2c.ml                   | 23 +++++----
 src/soc2cIdent.ml              |  6 +--
 src/socUtils.ml                | 13 +++--
 test/lus2lic.sum               | 94 +++++++++++++++++-----------------
 test/lus2lic.tests/non-reg.exp |  2 +-
 test/lus2lic.time              |  2 +-
 6 files changed, 70 insertions(+), 70 deletions(-)

diff --git a/src/soc2c.ml b/src/soc2c.ml
index 76f2aedd..dd6126ee 100644
--- a/src/soc2c.ml
+++ b/src/soc2c.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 06/06/2014 (at 09:43) by Erwan Jahier> *)
+(* Time-stamp: <modified the 06/06/2014 (at 10:41) by Erwan Jahier> *)
 
 
 (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
@@ -14,11 +14,11 @@ let rec (type_to_string : Data.t -> string) =
         | Bool -> "_boolean"
         | Int -> "_integer"
         | Real-> "_real"
-        | Extern s -> s ^ "(*extern*)"
+        | Extern s -> s ^ "/* extern */"
         | Enum  (s, sl) -> id2s s 
-        | Struct (sid,_) -> (id2s sid) ^ "(*struct*)"
+        | Struct (sid,_) -> (id2s sid) ^ "/* struct */"
         | Array (ty, sz) -> Printf.sprintf "%s^%d" (type_to_string ty) sz 
-        | Alpha nb -> assert false
+        | Alpha nb -> "alpha_"^(string_of_int nb)
     in
     str
 
@@ -144,9 +144,10 @@ let (gao2c : Soc.tbl -> 'a soc_pp -> Soc.gao -> unit) =
     in
     sp.cput (gao2str gao)
 
+
 let (step2c : Soc.tbl -> 'a soc_pp -> Soc.step_method -> unit) =
   fun stbl sp sm -> 
-    let sm_str = SocUtils.string_of_method sp.soc sm in
+    let sm_str = sm.name in
     let sname = step_name sp.soc.key sm.name in
     let ctx = if is_memory_less sp.soc then "" else
         Printf.sprintf "%s_type* ctx" (get_ctx_name sp.soc.key)
@@ -164,9 +165,9 @@ let (step2c : Soc.tbl -> 'a soc_pp -> Soc.step_method -> unit) =
         sp.cput "\n"; 
         List.iter (gao2c stbl sp) gaol
       )
-      | Iterator(it,it_soc,s) -> assert false
-      | Boolred(i,j,k) -> assert false
-      | Condact(k,el) -> assert false
+      | Iterator(it,it_soc,s) -> sp.cput (Printf.sprintf "%s /* XXX iterator */" it)
+      | Boolred(i,j,k) -> sp.cput (Printf.sprintf "boolred(%i,%i,%i) /* XXX boolred */" i j k)
+      | Condact(k,el) -> sp.cput (Printf.sprintf "condact() /* XXX condact */")
     );
     sp.cput (sprintf "\n} // End of %s\n\n" sname)
 
@@ -230,11 +231,11 @@ let rec (lic_type_to_c: Lic.type_ -> string) =
       Printf.sprintf "%s [%d]" (lic_type_to_c ty) sz
     | Struct_type_eff (name, fl) ->
       let field_to_c (id,(tf,_opt)) = 
-        Printf.sprintf "%s %s" (id2s id) (lic_type_to_c tf)
+        Printf.sprintf "  %s %s;\n" (lic_type_to_c tf)  (id2s id)
       in
-      Printf.sprintf "struct %s { %s };" 
+      Printf.sprintf "struct %s { \n    %s }" 
         (long2s name) 
-        (String.concat ";\n" (List.map field_to_c fl))
+        (String.concat "" (List.map field_to_c fl))
     | TypeVar Any -> assert false
     | (TypeVar AnyNum) -> assert false
 
diff --git a/src/soc2cIdent.ml b/src/soc2cIdent.ml
index e2c938c9..54d7eef4 100644
--- a/src/soc2cIdent.ml
+++ b/src/soc2cIdent.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 02/06/2014 (at 14:55) by Erwan Jahier> *)
+(* Time-stamp: <modified the 06/06/2014 (at 10:32) by Erwan Jahier> *)
 
 let colcol = Str.regexp "::"
 let id2s id = (* XXX Refuser les noms de module à la con plutot *)
@@ -31,9 +31,9 @@ let rec (type_to_short_string : Data.t -> string) =
           let z_value = Char.code('z') in
           let str =
             if (nb >= 0 && nb <= (z_value - a_value)) then
-              ("'" ^ (Char.escaped (Char.chr(a_value + nb))))
+              ((Char.escaped (Char.chr(a_value + nb))))
             else
-              ("'a" ^ (string_of_int nb))
+              ("a" ^ (string_of_int nb))
           in
           str
     in
diff --git a/src/socUtils.ml b/src/socUtils.ml
index f7a0f3ec..91bcc07a 100644
--- a/src/socUtils.ml
+++ b/src/socUtils.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 16/05/2014 (at 11:21) by Erwan Jahier> *)
+(** Time-stamp: <modified the 06/06/2014 (at 10:08) by Erwan Jahier> *)
 
 
 open Soc
@@ -155,16 +155,15 @@ let string_interface_of_method: (Soc.t -> step_method -> string) = fun c m ->
 
 
 (* Méthode complète *)
-let string_of_method_ff: (Soc.t -> step_method -> Format.formatter -> unit) = fun c m ff ->
-
+let string_of_method_ff: (Soc.t -> step_method -> Format.formatter -> unit) = 
+fun c m ff ->
   fprintf ff "@[<v>@[<v 2>";
   string_interface_of_method_ff c m ff;
-
   match m.impl with
     | Predef -> fprintf ff "@]@]"
-    | Boolred _ -> assert false (* todo *)
-    | Iterator _ -> assert false (* todo *)
-    | Condact _ -> assert false (* todo *)
+    | Boolred(i,j,k) -> assert false (* todo *)
+    | Iterator (id,key,size) -> fprintf ff "" (* todo *)
+    | Condact(key,_) -> assert false (* todo *)
     | Gaol (locals, gaos) ->
           fprintf ff ": {@;";
           fprintf ff "@[<v>-- locals vars@;";
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index c2c11026..829d7662 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Fri Jun  6 09:44:19 2014
+Test Run By jahier on Fri Jun  6 10:41:47 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -87,7 +87,7 @@ PASS: ./lus2lic {-o /tmp/redIf.lic should_work/redIf.lus}
 PASS: ./lus2lic {-ec -o /tmp/redIf.ec should_work/redIf.lus}
 PASS: ./myec2c {-o /tmp/redIf.c /tmp/redIf.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/redIf.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/redIf.lus -n redIf}
+PASS: ./lus2lic {-2c should_work/redIf.lus -n redIf}
 FAIL: Check that the generated C code compiles  : gcc redIf_redIf.c redIf_redIf_loop.c 
 PASS: ./lus2lic {-o /tmp/t0.lic should_work/t0.lus}
 PASS: ./lus2lic {-ec -o /tmp/t0.ec should_work/t0.lus}
@@ -147,7 +147,7 @@ PASS: ./lus2lic {-o /tmp/mappredef.lic should_work/mappredef.lus}
 PASS: ./lus2lic {-ec -o /tmp/mappredef.ec should_work/mappredef.lus}
 PASS: ./myec2c {-o /tmp/mappredef.c /tmp/mappredef.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mappredef.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/mappredef.lus -n mappredef}
+PASS: ./lus2lic {-2c should_work/mappredef.lus -n mappredef}
 FAIL: Check that the generated C code compiles  : gcc mappredef_mappredef.c mappredef_mappredef_loop.c 
 PASS: ./lus2lic {-o /tmp/call06.lic should_work/call06.lus}
 PASS: ./lus2lic {-ec -o /tmp/call06.ec should_work/call06.lus}
@@ -158,7 +158,7 @@ PASS: ./lus2lic {-o /tmp/deSimone.lic should_work/deSimone.lus}
 PASS: ./lus2lic {-ec -o /tmp/deSimone.ec should_work/deSimone.lus}
 PASS: ./myec2c {-o /tmp/deSimone.c /tmp/deSimone.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/deSimone.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/deSimone.lus -n deSimone}
+PASS: ./lus2lic {-2c should_work/deSimone.lus -n deSimone}
 FAIL: Check that the generated C code compiles  : gcc deSimone_deSimone.c deSimone_deSimone_loop.c 
 PASS: ./lus2lic {-o /tmp/bug2.lic should_work/bug2.lus}
 PASS: ./lus2lic {-ec -o /tmp/bug2.ec should_work/bug2.lus}
@@ -176,7 +176,7 @@ PASS: ./lus2lic {-o /tmp/yyy.lic should_work/yyy.lus}
 PASS: ./lus2lic {-ec -o /tmp/yyy.ec should_work/yyy.lus}
 PASS: ./myec2c {-o /tmp/yyy.c /tmp/yyy.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/yyy.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/yyy.lus -n yyy}
+PASS: ./lus2lic {-2c should_work/yyy.lus -n yyy}
 FAIL: Check that the generated C code compiles  : gcc yyy_yyy.c yyy_yyy_loop.c 
 PASS: ./lus2lic {-o /tmp/toolate.lic should_work/toolate.lus}
 PASS: ./lus2lic {-ec -o /tmp/toolate.ec should_work/toolate.lus}
@@ -200,7 +200,7 @@ PASS: ./lus2lic {-o /tmp/predefOp.lic should_work/predefOp.lus}
 PASS: ./lus2lic {-ec -o /tmp/predefOp.ec should_work/predefOp.lus}
 PASS: ./myec2c {-o /tmp/predefOp.c /tmp/predefOp.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predefOp.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/predefOp.lus -n predefOp}
+PASS: ./lus2lic {-2c should_work/predefOp.lus -n predefOp}
 FAIL: Check that the generated C code compiles  : gcc predefOp_predefOp.c predefOp_predefOp_loop.c 
 PASS: ./lus2lic {-o /tmp/t1.lic should_work/t1.lus}
 PASS: ./lus2lic {-ec -o /tmp/t1.ec should_work/t1.lus}
@@ -235,12 +235,12 @@ PASS: ./lus2lic {-ec -o /tmp/mm1.ec should_work/mm1.lus}
 PASS: ./myec2c {-o /tmp/mm1.c /tmp/mm1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mm1.lus
 PASS: ./lus2lic {-2c should_work/mm1.lus -n mm1}
-FAIL: Check that the generated C code compiles  : gcc mm1_mm1.c mm1_mm1_loop.c 
+PASS: gcc mm1_mm1.c mm1_mm1_loop.c 
 PASS: ./lus2lic {-o /tmp/predef03.lic should_work/predef03.lus}
 PASS: ./lus2lic {-ec -o /tmp/predef03.ec should_work/predef03.lus}
 PASS: ./myec2c {-o /tmp/predef03.c /tmp/predef03.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predef03.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/predef03.lus -n predef03}
+PASS: ./lus2lic {-2c should_work/predef03.lus -n predef03}
 FAIL: Check that the generated C code compiles  : gcc predef03_predef03.c predef03_predef03_loop.c 
 PASS: ./lus2lic {-o /tmp/iter.lic should_work/iter.lus}
 PASS: ./lus2lic {-ec -o /tmp/iter.ec should_work/iter.lus}
@@ -328,7 +328,7 @@ PASS: ./lus2lic {-o /tmp/call04.lic should_work/call04.lus}
 PASS: ./lus2lic {-ec -o /tmp/call04.ec should_work/call04.lus}
 PASS: ./myec2c {-o /tmp/call04.c /tmp/call04.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call04.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/call04.lus -n call04}
+PASS: ./lus2lic {-2c should_work/call04.lus -n call04}
 FAIL: Check that the generated C code compiles  : gcc call04_call04.c call04_call04_loop.c 
 PASS: ./lus2lic {-o /tmp/bascule.lic should_work/bascule.lus}
 PASS: ./lus2lic {-ec -o /tmp/bascule.ec should_work/bascule.lus}
@@ -364,7 +364,7 @@ PASS: ./lus2lic {-ec -o /tmp/mm22.ec should_work/mm22.lus}
 PASS: ./myec2c {-o /tmp/mm22.c /tmp/mm22.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mm22.lus
 PASS: ./lus2lic {-2c should_work/mm22.lus -n mm22}
-FAIL: Check that the generated C code compiles  : gcc mm22_mm22.c mm22_mm22_loop.c 
+PASS: gcc mm22_mm22.c mm22_mm22_loop.c 
 PASS: ./lus2lic {-o /tmp/is_stable.lic should_work/is_stable.lus}
 PASS: ./lus2lic {-ec -o /tmp/is_stable.ec should_work/is_stable.lus}
 PASS: ./myec2c {-o /tmp/is_stable.c /tmp/is_stable.ec}
@@ -467,7 +467,7 @@ PASS: ./lus2lic {-o /tmp/xx.lic should_work/xx.lus}
 PASS: ./lus2lic {-ec -o /tmp/xx.ec should_work/xx.lus}
 PASS: ./myec2c {-o /tmp/xx.c /tmp/xx.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/xx.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/xx.lus -n xx}
+PASS: ./lus2lic {-2c should_work/xx.lus -n xx}
 FAIL: Check that the generated C code compiles  : gcc xx_xx.c xx_xx_loop.c 
 PASS: ./lus2lic {-o /tmp/call07.lic should_work/call07.lus}
 PASS: ./lus2lic {-ec -o /tmp/call07.ec should_work/call07.lus}
@@ -479,7 +479,7 @@ PASS: ./lus2lic {-o /tmp/shift_ludic.lic should_work/shift_ludic.lus}
 PASS: ./lus2lic {-ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus}
 PASS: ./myec2c {-o /tmp/shift_ludic.c /tmp/shift_ludic.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/shift_ludic.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/shift_ludic.lus -n shift_ludic}
+PASS: ./lus2lic {-2c should_work/shift_ludic.lus -n shift_ludic}
 FAIL: Check that the generated C code compiles  : gcc shift_ludic_shift_ludic.c shift_ludic_shift_ludic_loop.c 
 PASS: ./lus2lic {-o /tmp/pilote-1.0.lic should_work/pilote-1.0.lus}
 PASS: ./lus2lic {-ec -o /tmp/pilote-1.0.ec should_work/pilote-1.0.lus}
@@ -518,7 +518,7 @@ PASS: ./lus2lic {-o /tmp/bred.lic should_work/bred.lus}
 PASS: ./lus2lic {-ec -o /tmp/bred.ec should_work/bred.lus}
 PASS: ./myec2c {-o /tmp/bred.c /tmp/bred.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bred.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/bred.lus -n bred}
+PASS: ./lus2lic {-2c should_work/bred.lus -n bred}
 FAIL: Check that the generated C code compiles  : gcc bred_bred.c bred_bred_loop.c 
 PASS: ./lus2lic {-o /tmp/test_diese.lic should_work/test_diese.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_diese.ec should_work/test_diese.lus}
@@ -536,7 +536,7 @@ PASS: ./lus2lic {-o /tmp/calculs_max.lic should_work/calculs_max.lus}
 PASS: ./lus2lic {-ec -o /tmp/calculs_max.ec should_work/calculs_max.lus}
 PASS: ./myec2c {-o /tmp/calculs_max.c /tmp/calculs_max.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/calculs_max.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/calculs_max.lus -n calculs_max}
+PASS: ./lus2lic {-2c should_work/calculs_max.lus -n calculs_max}
 FAIL: Check that the generated C code compiles  : gcc calculs_max_calculs_max.c calculs_max_calculs_max_loop.c 
 PASS: ./lus2lic {-o /tmp/testCA.lic should_work/testCA.lus}
 PASS: ./lus2lic {-ec -o /tmp/testCA.ec should_work/testCA.lus}
@@ -575,7 +575,7 @@ PASS: ./lus2lic {-o /tmp/bad_call03.lic should_work/bad_call03.lus}
 PASS: ./lus2lic {-ec -o /tmp/bad_call03.ec should_work/bad_call03.lus}
 PASS: ./myec2c {-o /tmp/bad_call03.c /tmp/bad_call03.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bad_call03.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/bad_call03.lus -n bad_call03}
+PASS: ./lus2lic {-2c should_work/bad_call03.lus -n bad_call03}
 FAIL: Check that the generated C code compiles  : gcc bad_call03_bad_call03.c bad_call03_bad_call03_loop.c 
 PASS: ./lus2lic {-o /tmp/onlyroll.lic should_work/onlyroll.lus}
 PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus}
@@ -611,13 +611,13 @@ PASS: ./lus2lic {-o /tmp/pipeline.lic should_work/pipeline.lus}
 PASS: ./lus2lic {-ec -o /tmp/pipeline.ec should_work/pipeline.lus}
 PASS: ./myec2c {-o /tmp/pipeline.c /tmp/pipeline.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pipeline.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/pipeline.lus -n pipeline}
+PASS: ./lus2lic {-2c should_work/pipeline.lus -n pipeline}
 FAIL: Check that the generated C code compiles  : gcc pipeline_pipeline.c pipeline_pipeline_loop.c 
 PASS: ./lus2lic {-o /tmp/mapinf.lic should_work/mapinf.lus}
 PASS: ./lus2lic {-ec -o /tmp/mapinf.ec should_work/mapinf.lus}
 PASS: ./myec2c {-o /tmp/mapinf.c /tmp/mapinf.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mapinf.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/mapinf.lus -n mapinf}
+PASS: ./lus2lic {-2c should_work/mapinf.lus -n mapinf}
 FAIL: Check that the generated C code compiles  : gcc mapinf_mapinf.c mapinf_mapinf_loop.c 
 PASS: ./lus2lic {-o /tmp/integrator.lic should_work/integrator.lus}
 PASS: ./lus2lic {-ec -o /tmp/integrator.ec should_work/integrator.lus}
@@ -641,13 +641,13 @@ PASS: ./lus2lic {-o /tmp/over2.lic should_work/over2.lus}
 PASS: ./lus2lic {-ec -o /tmp/over2.ec should_work/over2.lus}
 PASS: ./myec2c {-o /tmp/over2.c /tmp/over2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/over2.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/over2.lus -n over2}
+PASS: ./lus2lic {-2c should_work/over2.lus -n over2}
 FAIL: Check that the generated C code compiles  : gcc over2_over2.c over2_over2_loop.c 
 PASS: ./lus2lic {-o /tmp/over3.lic should_work/over3.lus}
 PASS: ./lus2lic {-ec -o /tmp/over3.ec should_work/over3.lus}
 PASS: ./myec2c {-o /tmp/over3.c /tmp/over3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/over3.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/over3.lus -n over3}
+PASS: ./lus2lic {-2c should_work/over3.lus -n over3}
 FAIL: Check that the generated C code compiles  : gcc over3_over3.c over3_over3_loop.c 
 PASS: ./lus2lic {-o /tmp/complex.lic should_work/complex.lus}
 PASS: ./lus2lic {-ec -o /tmp/complex.ec should_work/complex.lus}
@@ -744,7 +744,7 @@ PASS: ./lus2lic {-o /tmp/FillFollowedByRed.lic should_work/FillFollowedByRed.lus
 PASS: ./lus2lic {-ec -o /tmp/FillFollowedByRed.ec should_work/FillFollowedByRed.lus}
 PASS: ./myec2c {-o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/FillFollowedByRed.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/FillFollowedByRed.lus -n FillFollowedByRed}
+PASS: ./lus2lic {-2c should_work/FillFollowedByRed.lus -n FillFollowedByRed}
 FAIL: Check that the generated C code compiles  : gcc FillFollowedByRed_FillFollowedByRed.c FillFollowedByRed_FillFollowedByRed_loop.c 
 PASS: ./lus2lic {-o /tmp/sample_time_change.lic should_work/sample_time_change.lus}
 PASS: ./lus2lic {-ec -o /tmp/sample_time_change.ec should_work/sample_time_change.lus}
@@ -762,7 +762,7 @@ PASS: ./lus2lic {-o /tmp/predef01.lic should_work/predef01.lus}
 PASS: ./lus2lic {-ec -o /tmp/predef01.ec should_work/predef01.lus}
 PASS: ./myec2c {-o /tmp/predef01.c /tmp/predef01.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predef01.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/predef01.lus -n predef01}
+PASS: ./lus2lic {-2c should_work/predef01.lus -n predef01}
 FAIL: Check that the generated C code compiles  : gcc predef01_predef01.c predef01_predef01_loop.c 
 PASS: ./lus2lic {-o /tmp/long_et_stupide_nom_de_noeud.lic should_work/long_et_stupide_nom_de_noeud.lus}
 PASS: ./lus2lic {-ec -o /tmp/long_et_stupide_nom_de_noeud.ec should_work/long_et_stupide_nom_de_noeud.lus}
@@ -877,7 +877,7 @@ PASS: ./lus2lic {-o /tmp/ply01.lic should_work/ply01.lus}
 PASS: ./lus2lic {-ec -o /tmp/ply01.ec should_work/ply01.lus}
 PASS: ./myec2c {-o /tmp/ply01.c /tmp/ply01.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ply01.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/ply01.lus -n ply01}
+PASS: ./lus2lic {-2c should_work/ply01.lus -n ply01}
 FAIL: Check that the generated C code compiles  : gcc ply01_ply01.c ply01_ply01_loop.c 
 PASS: ./lus2lic {-o /tmp/consensus.lic should_work/consensus.lus}
 PASS: ./lus2lic {-ec -o /tmp/consensus.ec should_work/consensus.lus}
@@ -895,7 +895,7 @@ PASS: ./lus2lic {-ec -o /tmp/type_decl.ec should_work/type_decl.lus}
 PASS: ./myec2c {-o /tmp/type_decl.c /tmp/type_decl.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/type_decl.lus
 PASS: ./lus2lic {-2c should_work/type_decl.lus -n type_decl}
-FAIL: Check that the generated C code compiles  : gcc type_decl_type_decl.c type_decl_type_decl_loop.c 
+PASS: gcc type_decl_type_decl.c type_decl_type_decl_loop.c 
 PASS: ./lus2lic {-o /tmp/import1.lic should_work/import1.lus}
 PASS: ./lus2lic {-ec -o /tmp/import1.ec should_work/import1.lus}
 PASS: ./myec2c {-o /tmp/import1.c /tmp/import1.ec}
@@ -929,7 +929,7 @@ PASS: ./lus2lic {-o /tmp/test_condact.lic should_work/test_condact.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_condact.ec should_work/test_condact.lus}
 PASS: ./myec2c {-o /tmp/test_condact.c /tmp/test_condact.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_condact.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/test_condact.lus -n test_condact}
+PASS: ./lus2lic {-2c should_work/test_condact.lus -n test_condact}
 FAIL: Check that the generated C code compiles  : gcc test_condact_test_condact.c test_condact_test_condact_loop.c 
 PASS: ./lus2lic {-o /tmp/contractForElementSelectionInArray.lic should_work/contractForElementSelectionInArray.lus}
 PASS: ./lus2lic {-ec -o /tmp/contractForElementSelectionInArray.ec should_work/contractForElementSelectionInArray.lus}
@@ -983,7 +983,7 @@ PASS: ./lus2lic {-o /tmp/moyenne.lic should_work/moyenne.lus}
 PASS: ./lus2lic {-ec -o /tmp/moyenne.ec should_work/moyenne.lus}
 PASS: ./myec2c {-o /tmp/moyenne.c /tmp/moyenne.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/moyenne.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/moyenne.lus -n moyenne}
+PASS: ./lus2lic {-2c should_work/moyenne.lus -n moyenne}
 FAIL: Check that the generated C code compiles  : gcc moyenne_moyenne.c moyenne_moyenne_loop.c 
 PASS: ./lus2lic {-o /tmp/activation1.lic should_work/activation1.lus}
 PASS: ./lus2lic {-ec -o /tmp/activation1.ec should_work/activation1.lus}
@@ -1012,7 +1012,7 @@ PASS: ./lus2lic {-o /tmp/map_red_iter.lic should_work/map_red_iter.lus}
 PASS: ./lus2lic {-ec -o /tmp/map_red_iter.ec should_work/map_red_iter.lus}
 PASS: ./myec2c {-o /tmp/map_red_iter.c /tmp/map_red_iter.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/map_red_iter.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/map_red_iter.lus -n map_red_iter}
+PASS: ./lus2lic {-2c should_work/map_red_iter.lus -n map_red_iter}
 FAIL: Check that the generated C code compiles  : gcc map_red_iter_map_red_iter.c map_red_iter_map_red_iter_loop.c 
 PASS: ./lus2lic {-o /tmp/p.lic should_work/p.lus}
 PASS: ./lus2lic {-ec -o /tmp/p.ec should_work/p.lus}
@@ -1024,7 +1024,7 @@ PASS: ./lus2lic {-ec -o /tmp/struct0.ec should_work/struct0.lus}
 PASS: ./myec2c {-o /tmp/struct0.c /tmp/struct0.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/struct0.lus
 PASS: ./lus2lic {-2c should_work/struct0.lus -n struct0}
-FAIL: Check that the generated C code compiles  : gcc struct0_struct0.c struct0_struct0_loop.c 
+PASS: gcc struct0_struct0.c struct0_struct0_loop.c 
 PASS: ./lus2lic {-o /tmp/filliter.lic should_work/filliter.lus}
 PASS: ./lus2lic {-ec -o /tmp/filliter.ec should_work/filliter.lus}
 PASS: ./myec2c {-o /tmp/filliter.c /tmp/filliter.ec}
@@ -1041,7 +1041,7 @@ PASS: ./lus2lic {-o /tmp/nested.lic should_work/nested.lus}
 PASS: ./lus2lic {-ec -o /tmp/nested.ec should_work/nested.lus}
 PASS: ./myec2c {-o /tmp/nested.c /tmp/nested.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nested.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/nested.lus -n nested}
+PASS: ./lus2lic {-2c should_work/nested.lus -n nested}
 FAIL: Check that the generated C code compiles  : gcc nested_nested.c nested_nested_loop.c 
 PASS: ./lus2lic {-o /tmp/Gyroscope.lic should_work/Gyroscope.lus}
 PASS: ./lus2lic {-ec -o /tmp/Gyroscope.ec should_work/Gyroscope.lus}
@@ -1064,13 +1064,13 @@ PASS: ./lus2lic {-o /tmp/rediter.lic should_work/rediter.lus}
 PASS: ./lus2lic {-ec -o /tmp/rediter.ec should_work/rediter.lus}
 PASS: ./myec2c {-o /tmp/rediter.c /tmp/rediter.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/rediter.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/rediter.lus -n rediter}
+PASS: ./lus2lic {-2c should_work/rediter.lus -n rediter}
 FAIL: Check that the generated C code compiles  : gcc rediter_rediter.c rediter_rediter_loop.c 
 PASS: ./lus2lic {-o /tmp/mapdeRed.lic should_work/mapdeRed.lus}
 PASS: ./lus2lic {-ec -o /tmp/mapdeRed.ec should_work/mapdeRed.lus}
 PASS: ./myec2c {-o /tmp/mapdeRed.c /tmp/mapdeRed.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mapdeRed.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/mapdeRed.lus -n mapdeRed}
+PASS: ./lus2lic {-2c should_work/mapdeRed.lus -n mapdeRed}
 FAIL: Check that the generated C code compiles  : gcc mapdeRed_mapdeRed.c mapdeRed_mapdeRed_loop.c 
 PASS: ./lus2lic {-o /tmp/modelInst.lic should_work/modelInst.lus}
 PASS: ./lus2lic {-ec -o /tmp/modelInst.ec should_work/modelInst.lus}
@@ -1082,7 +1082,7 @@ PASS: ./lus2lic {-ec -o /tmp/dependeur_struct.ec should_work/dependeur_struct.lu
 PASS: ./myec2c {-o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/dependeur_struct.lus
 PASS: ./lus2lic {-2c should_work/dependeur_struct.lus -n dependeur_struct}
-FAIL: Check that the generated C code compiles  : gcc dependeur_struct_dependeur_struct.c dependeur_struct_dependeur_struct_loop.c 
+PASS: gcc dependeur_struct_dependeur_struct.c dependeur_struct_dependeur_struct_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax4_bis.lic should_work/minmax4_bis.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax4_bis.ec should_work/minmax4_bis.lus}
 PASS: ./myec2c {-o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec}
@@ -1111,7 +1111,7 @@ PASS: ./lus2lic {-o /tmp/map.lic should_work/map.lus}
 PASS: ./lus2lic {-ec -o /tmp/map.ec should_work/map.lus}
 PASS: ./myec2c {-o /tmp/map.c /tmp/map.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/map.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/map.lus -n map}
+PASS: ./lus2lic {-2c should_work/map.lus -n map}
 FAIL: Check that the generated C code compiles  : gcc map_map.c map_map_loop.c 
 PASS: ./lus2lic {-o /tmp/pre_x.lic should_work/pre_x.lus}
 PASS: ./lus2lic {-ec -o /tmp/pre_x.ec should_work/pre_x.lus}
@@ -1163,7 +1163,7 @@ PASS: ./lus2lic {-o /tmp/predef02.lic should_work/predef02.lus}
 PASS: ./lus2lic {-ec -o /tmp/predef02.ec should_work/predef02.lus}
 PASS: ./myec2c {-o /tmp/predef02.c /tmp/predef02.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predef02.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/predef02.lus -n predef02}
+PASS: ./lus2lic {-2c should_work/predef02.lus -n predef02}
 FAIL: Check that the generated C code compiles  : gcc predef02_predef02.c predef02_predef02_loop.c 
 PASS: ./lus2lic {-o /tmp/toto.lic should_work/toto.lus}
 PASS: ./lus2lic {-ec -o /tmp/toto.ec should_work/toto.lus}
@@ -1199,7 +1199,7 @@ PASS: ./lus2lic {-o /tmp/mapiter.lic should_work/mapiter.lus}
 PASS: ./lus2lic {-ec -o /tmp/mapiter.ec should_work/mapiter.lus}
 PASS: ./myec2c {-o /tmp/mapiter.c /tmp/mapiter.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mapiter.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/mapiter.lus -n mapiter}
+PASS: ./lus2lic {-2c should_work/mapiter.lus -n mapiter}
 FAIL: Check that the generated C code compiles  : gcc mapiter_mapiter.c mapiter_mapiter_loop.c 
 PASS: ./lus2lic {-o /tmp/tuple.lic should_work/tuple.lus}
 PASS: ./lus2lic {-ec -o /tmp/tuple.ec should_work/tuple.lus}
@@ -1229,13 +1229,13 @@ PASS: ./lus2lic {-o /tmp/triSel.lic should_work/triSel.lus}
 PASS: ./lus2lic {-ec -o /tmp/triSel.ec should_work/triSel.lus}
 PASS: ./myec2c {-o /tmp/triSel.c /tmp/triSel.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/triSel.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/triSel.lus -n triSel}
+PASS: ./lus2lic {-2c should_work/triSel.lus -n triSel}
 FAIL: Check that the generated C code compiles  : gcc triSel_triSel.c triSel_triSel_loop.c 
 PASS: ./lus2lic {-o /tmp/redoptest.lic should_work/redoptest.lus}
 PASS: ./lus2lic {-ec -o /tmp/redoptest.ec should_work/redoptest.lus}
 PASS: ./myec2c {-o /tmp/redoptest.c /tmp/redoptest.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/redoptest.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/redoptest.lus -n redoptest}
+PASS: ./lus2lic {-2c should_work/redoptest.lus -n redoptest}
 FAIL: Check that the generated C code compiles  : gcc redoptest_redoptest.c redoptest_redoptest_loop.c 
 PASS: ./lus2lic {-o /tmp/flo.lic should_work/flo.lus}
 PASS: ./lus2lic {-ec -o /tmp/flo.ec should_work/flo.lus}
@@ -1247,13 +1247,13 @@ PASS: ./lus2lic {-o /tmp/cond01.lic should_work/cond01.lus}
 PASS: ./lus2lic {-ec -o /tmp/cond01.ec should_work/cond01.lus}
 PASS: ./myec2c {-o /tmp/cond01.c /tmp/cond01.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/cond01.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/cond01.lus -n cond01}
+PASS: ./lus2lic {-2c should_work/cond01.lus -n cond01}
 FAIL: Check that the generated C code compiles  : gcc cond01_cond01.c cond01_cond01_loop.c 
 PASS: ./lus2lic {-o /tmp/shiftFill_ludic.lic should_work/shiftFill_ludic.lus}
 PASS: ./lus2lic {-ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus}
 PASS: ./myec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/shiftFill_ludic.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/shiftFill_ludic.lus -n shiftFill_ludic}
+PASS: ./lus2lic {-2c should_work/shiftFill_ludic.lus -n shiftFill_ludic}
 FAIL: Check that the generated C code compiles  : gcc shiftFill_ludic_shiftFill_ludic.c shiftFill_ludic_shiftFill_ludic_loop.c 
 PASS: ./lus2lic {-o /tmp/after.lic should_work/after.lus}
 PASS: ./lus2lic {-ec -o /tmp/after.ec should_work/after.lus}
@@ -1265,7 +1265,7 @@ PASS: ./lus2lic {-o /tmp/arrays.lic should_work/arrays.lus}
 PASS: ./lus2lic {-ec -o /tmp/arrays.ec should_work/arrays.lus}
 PASS: ./myec2c {-o /tmp/arrays.c /tmp/arrays.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/arrays.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/arrays.lus -n arrays}
+PASS: ./lus2lic {-2c should_work/arrays.lus -n arrays}
 FAIL: Check that the generated C code compiles  : gcc arrays_arrays.c arrays_arrays_loop.c 
 PASS: ./lus2lic {-o /tmp/nc3.lic should_work/nc3.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc3.ec should_work/nc3.lus}
@@ -1282,13 +1282,13 @@ PASS: ./lus2lic {-o /tmp/iterate.lic should_work/iterate.lus}
 PASS: ./lus2lic {-ec -o /tmp/iterate.ec should_work/iterate.lus}
 PASS: ./myec2c {-o /tmp/iterate.c /tmp/iterate.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/iterate.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/iterate.lus -n iterate}
+PASS: ./lus2lic {-2c should_work/iterate.lus -n iterate}
 FAIL: Check that the generated C code compiles  : gcc iterate_iterate.c iterate_iterate_loop.c 
 PASS: ./lus2lic {-o /tmp/overload.lic should_work/overload.lus}
 PASS: ./lus2lic {-ec -o /tmp/overload.ec should_work/overload.lus}
 PASS: ./myec2c {-o /tmp/overload.c /tmp/overload.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/overload.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/overload.lus -n overload}
+PASS: ./lus2lic {-2c should_work/overload.lus -n overload}
 FAIL: Check that the generated C code compiles  : gcc overload_overload.c overload_overload_loop.c 
 PASS: ./lus2lic {-o /tmp/PCOND.lic should_work/PCOND.lus}
 PASS: ./lus2lic {-ec -o /tmp/PCOND.ec should_work/PCOND.lus}
@@ -1306,7 +1306,7 @@ PASS: ./lus2lic {-o /tmp/call03.lic should_work/call03.lus}
 PASS: ./lus2lic {-ec -o /tmp/call03.ec should_work/call03.lus}
 PASS: ./myec2c {-o /tmp/call03.c /tmp/call03.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call03.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/call03.lus -n call03}
+PASS: ./lus2lic {-2c should_work/call03.lus -n call03}
 FAIL: Check that the generated C code compiles  : gcc call03_call03.c call03_call03_loop.c 
 PASS: ./lus2lic {-o /tmp/modes3x2-simu.lic should_work/modes3x2-simu.lus}
 PASS: ./lus2lic {-ec -o /tmp/modes3x2-simu.ec should_work/modes3x2-simu.lus}
@@ -1361,7 +1361,7 @@ PASS: ./lus2lic {-o /tmp/bred_lv4.lic should_work/bred_lv4.lus}
 PASS: ./lus2lic {-ec -o /tmp/bred_lv4.ec should_work/bred_lv4.lus}
 PASS: ./myec2c {-o /tmp/bred_lv4.c /tmp/bred_lv4.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bred_lv4.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/bred_lv4.lus -n bred_lv4}
+PASS: ./lus2lic {-2c should_work/bred_lv4.lus -n bred_lv4}
 FAIL: Check that the generated C code compiles  : gcc bred_lv4_bred_lv4.c bred_lv4_bred_lv4_loop.c 
 PASS: ./lus2lic {-o /tmp/trivial2.lic should_work/trivial2.lus}
 PASS: ./lus2lic {-ec -o /tmp/trivial2.ec should_work/trivial2.lus}
@@ -1391,7 +1391,7 @@ PASS: ./lus2lic {-o /tmp/minus.lic should_work/minus.lus}
 PASS: ./lus2lic {-ec -o /tmp/minus.ec should_work/minus.lus}
 PASS: ./myec2c {-o /tmp/minus.c /tmp/minus.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minus.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/minus.lus -n minus}
+PASS: ./lus2lic {-2c should_work/minus.lus -n minus}
 FAIL: Check that the generated C code compiles  : gcc minus_minus.c minus_minus_loop.c 
 PASS: ./lus2lic {-o /tmp/remplissage-1.0.lic should_work/remplissage-1.0.lus}
 PASS: ./lus2lic {-ec -o /tmp/remplissage-1.0.ec should_work/remplissage-1.0.lus}
@@ -1468,9 +1468,9 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		1073
-# of unexpected failures	325
+# of expected passes		1116
+# of unexpected failures	282
 # of unexpected successes	21
 # of expected failures		37
-testcase ./lus2lic.tests/non-reg.exp completed in 118 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 113 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/lus2lic.tests/non-reg.exp b/test/lus2lic.tests/non-reg.exp
index c990b92b..12eac416 100644
--- a/test/lus2lic.tests/non-reg.exp
+++ b/test/lus2lic.tests/non-reg.exp
@@ -31,7 +31,7 @@ foreach f $ok_files {
         set id5 [should_work "Generate c code  " "$lus2lic" "-2c $f -n $basef"]
         wait -i $id5
 
-        if { [emptyfile "${basef}_${basef}_loop.c"] } {
+        if { [emptyfile "${basef}_${basef}.c"] } {
         set id6 [should_work "Check that the generated C code compiles  " "gcc ${basef}_${basef}.c ${basef}_${basef}_loop.c"]
             wait -i $id6
             catch { exp_close -i $id6 }
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 8501891b..68f66339 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +1,2 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 118 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 113 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
-- 
GitLab