diff --git a/lib/licDump.ml b/lib/licDump.ml
index 23af80744a3095b1d0fe4616cb8fcb3dbf7bc99f..0ddf41a48057609659a7c53169c7a00378ba5f91 100644
--- a/lib/licDump.ml
+++ b/lib/licDump.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 19/04/2024 (at 10:25) by Erwan Jahier> *)
+(* Time-stamp: <modified the 29/05/2024 (at 08:47) by Erwan Jahier> *)
 (*
 
 This module is used both for
@@ -594,7 +594,7 @@ and (string_of_by_pos_op_eff:
     | CURRENT Some _,_ -> (* transform to merge in kcg mode *)
       if global_opt.kcg then assert false
       else
-	"current " ^ tuple_par (if global_opt.ec then List.tl vel else vel)
+	"current " ^ tuple_par (List.tl vel)
     | CURRENT None,_ -> "current " ^ tuple_par vel
     | TUPLE,_ -> (tuple vel)
     | CONCAT, [ve1; ve2] ->
diff --git a/lib/lv6MainArgs.ml b/lib/lv6MainArgs.ml
index 57040bfa45ecada2f85bb4b28fec8f627800e14a..af1ad568101fe95beea162676be96dcf9b0a91aa 100644
--- a/lib/lv6MainArgs.ml
+++ b/lib/lv6MainArgs.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 19/04/2024 (at 10:01) by Erwan Jahier> *)
+(* Time-stamp: <modified the 29/05/2024 (at 10:05) by Erwan Jahier> *)
 (*
 Le manager d'argument adapté de celui de lutin, plus joli
 N.B. solution un peu batarde : les options sont stockées, comme avant, dans Global,
@@ -91,8 +91,8 @@ let (global_opt:global_opt) =
     ec =  false;
     one_op_per_equation = true;
     one_op_per_equation_set = false;
-    one_user_op_per_equation = true;
-    one_user_op_per_equation_set = false;
+    one_user_op_per_equation = true; (* if you change that, change the nonreg test too!*)
+    one_user_op_per_equation_set = false; (* ditto *)
     inline_iterator =  false;
     when_on_ident =  false;
     no_when_not = false;
@@ -353,17 +353,15 @@ let mkoptab (opt:t) : unit = (
      "from ocaml with the current set of arguments (with Lv6Run.make)"]
   ;
 
-  mkopt opt ~doc_level:Dev
+  mkopt opt ~doc_level:Advanced
     ["-knc"; "--keep-nested-calls"]
     (Arg.Unit (fun _ -> global_opt.one_op_per_equation_set <- true; global_opt.one_op_per_equation <- false))
-    ["Keep nested calls (use with care: it breaks some programs with";
-     "some options combination)"]
+    ["Keep nested calls. Useful when generating Lustre code, but incompatible -exec or -2c"]
   ;
-  mkopt opt ~doc_level:Dev
+  mkopt opt ~doc_level:Advanced
     ["-knpc"; "--keep-nested-predef-calls"]
     (Arg.Unit (fun _ -> global_opt.one_user_op_per_equation_set <- true; global_opt.one_user_op_per_equation <- false))
-    ["Keep nested calls for predefined operators (use with care: it breaks some programs with";
-     "some options combination)"]
+    ["Keep nested calls for predefined operators. Useful when generating Lustre code, but incompatible -exec or -2c"]
   ;
   mkopt opt ~doc_level:Dev
     ["-rnc"; "--remove-nested-calls"]
@@ -664,6 +662,16 @@ let first_line b = (
 
 let current = ref 0;;
 
+
+let check_options_compatibility opt =
+  if (opt.gen_c || opt.exec)
+  && ((not global_opt.one_op_per_equation) || (not global_opt.one_user_op_per_equation)) then (
+    Printf.fprintf stderr "Incompatible options: the -knc and -knpc options are meant to be used for generating
+Lustre code, not to be executed (and are thus incompatible with -exec and -2c)\n";
+    exit 2
+  )
+
+
 (* La ``méthode'' principale *)
 let parse argv = (
   let opt = make_opt() in
@@ -681,6 +689,7 @@ let parse argv = (
        )
        opt.others
     );
+    check_options_compatibility opt;
     opt.infiles <- (List.rev opt.others);
     if opt.main_node = "" &&
        (opt.gen_c || opt.exec  || opt.gen_lic )
diff --git a/test/Makefile b/test/Makefile
index f6358f47aeadddb9b647e6a9e3520fb33ee577bd..d3cd51448a0c3fe047ba169232074e23d3182806 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -63,7 +63,8 @@ utest:
 valgrind.res:
 	grep -n ERROR tmp1/*.log | grep -v ' 0 errors' > $@;  [ ! -s $@ ]
 
-# reftest isslower than qtest, but less sensible to the load of the machine (which is better wrt time measurements)
+# reftest is slower than qtest (less proc are used), but less sensible
+# to the load of the machine (which is better wrt time measurements)
 reftest:
 	rm -f $(LOG)
 	$(TEST_MACHINE) "cd $(testdir); make tmpdirs"
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 2f4289580b47998e637af9b82180d84b63e1972d..52842504cb978c2c27ffd48ca2f18265731ac235 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test run by jahier on Tue Feb 27 15:23:31 
+Test run by jahier on Wed May 29 10:06:48 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic0 tests ===
@@ -66,7 +66,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 Feb 27 15:23:33 
+Test run by jahier on Wed May 29 10:06:52 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -631,7 +631,7 @@ PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en multipar.lus {}
 
 ==> lus2lic2.sum <==
-Test run by jahier on Tue Feb 27 15:27:19 
+Test run by jahier on Wed May 29 10:12:41 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -1177,7 +1177,7 @@ PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en zzz2.lus {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang zzz2.lus {}
 
 ==> lus2lic3.sum <==
-Test run by jahier on Tue Feb 27 15:31:32 
+Test run by jahier on Wed May 29 10:19:01 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -1191,10 +1191,13 @@ PASS: ./lus2lic {} {-lic -o COUNTER.lic COUNTER.lus -n COUNTER}
 PASS: ./lus2lic {-ec -o COUNTER.ec COUNTER.lus -n COUNTER}
 PASS: ./myec2c {-o COUNTER.c COUNTER.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node COUNTER.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc COUNTER.lus {}
 PASS: ./lus2lic {} {-lic -o CURRENT.lic CURRENT.lus -n CURRENT}
 PASS: ./lus2lic {-ec -o CURRENT.ec CURRENT.lus -n CURRENT}
 PASS: ./myec2c {-o CURRENT.c CURRENT.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node CURRENT.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc CURRENT.lus {}
+FAIL: without any option: ./lus2lic {} {-lic -o CURRENT_knc.lic CURRENT_knc.lus -n CURRENT_knc}
 PASS: ./lus2lic {} {-lic -o Condact.lic Condact.lus -n Condact}
 PASS: ./lus2lic {-ec -o Condact.ec Condact.lus -n Condact}
 PASS: ./myec2c {-o Condact.c Condact.ec}
@@ -1202,6 +1205,7 @@ PASS: ./lus2lic {} {-lic -o EDGE.lic EDGE.lus -n EDGE}
 PASS: ./lus2lic {-ec -o EDGE.ec EDGE.lus -n EDGE}
 PASS: ./myec2c {-o EDGE.c EDGE.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node EDGE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc EDGE.lus {}
 PASS: ./lus2lic {} {-lic -o ELMU.lic ELMU.lus -n ELMU}
 PASS: ./lus2lic {-ec -o ELMU.ec ELMU.lus -n ELMU}
 PASS: ./myec2c {-o ELMU.c ELMU.ec}
@@ -1209,50 +1213,62 @@ PASS: ./lus2lic {} {-lic -o FALLING_EDGE.lic FALLING_EDGE.lus -n FALLING_EDGE}
 PASS: ./lus2lic {-ec -o FALLING_EDGE.ec FALLING_EDGE.lus -n FALLING_EDGE}
 PASS: ./myec2c {-o FALLING_EDGE.c FALLING_EDGE.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node FALLING_EDGE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc FALLING_EDGE.lus {}
 PASS: ./lus2lic {} {-lic -o FillFollowedByRed.lic FillFollowedByRed.lus -n FillFollowedByRed}
 PASS: ./lus2lic {-ec -o FillFollowedByRed.ec FillFollowedByRed.lus -n FillFollowedByRed}
 PASS: ./myec2c {-o FillFollowedByRed.c FillFollowedByRed.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node FillFollowedByRed.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc FillFollowedByRed.lus {}
 PASS: ./lus2lic {} {-lic -o Gyroscope.lic Gyroscope.lus -n Gyroscope}
 PASS: ./lus2lic {-ec -o Gyroscope.ec Gyroscope.lus -n Gyroscope}
 PASS: ./myec2c {-o Gyroscope.c Gyroscope.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node Gyroscope.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc Gyroscope.lus {}
 PASS: ./lus2lic {} {-lic -o Gyroscope2.lic Gyroscope2.lus -n Gyroscope2}
 PASS: ./lus2lic {-ec -o Gyroscope2.ec Gyroscope2.lus -n Gyroscope2}
 PASS: ./myec2c {-o Gyroscope2.c Gyroscope2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node Gyroscope2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc Gyroscope2.lus {}
 PASS: ./lus2lic {} {-lic -o aa.lic aa.lus -n aa}
 PASS: ./lus2lic {-ec -o aa.ec aa.lus -n aa}
 PASS: ./myec2c {-o aa.c aa.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node aa.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc aa.lus {}
 PASS: ./lus2lic {} {-lic -o access.lic access.lus -n access}
 PASS: ./lus2lic {-ec -o access.ec access.lus -n access}
 PASS: ./myec2c {-o access.c access.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node access.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc access.lus {}
 PASS: ./lus2lic { --expand-nodes} {-lic -o activation1.lic activation1.lus -n activation1}
 PASS: ./lus2lic {-ec -o activation1.ec activation1.lus -n activation1}
 PASS: ./myec2c {-o activation1.c activation1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node activation1.lus { --expand-nodes}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc activation1.lus { --expand-nodes}
 PASS: ./lus2lic { --expand-nodes} {-lic -o activation2.lic activation2.lus -n activation2}
 PASS: ./lus2lic {-ec -o activation2.ec activation2.lus -n activation2}
 PASS: ./myec2c {-o activation2.c activation2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node activation2.lus { --expand-nodes}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc activation2.lus { --expand-nodes}
 PASS: ./lus2lic {} {-lic -o activation_ec.lic activation_ec.lus -n activation_ec}
 PASS: ./lus2lic {-ec -o activation_ec.ec activation_ec.lus -n activation_ec}
 PASS: ./myec2c {-o activation_ec.c activation_ec.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node activation_ec.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc activation_ec.lus {}
 PASS: ./lus2lic {} {-lic -o after.lic after.lus -n after}
 PASS: ./lus2lic {-ec -o after.ec after.lus -n after}
 PASS: ./myec2c {-o after.c after.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node after.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc after.lus {}
 PASS: ./lus2lic {} {-lic -o alias.lic alias.lus -n alias}
 PASS: ./lus2lic {-ec -o alias.ec alias.lus -n alias}
 PASS: ./myec2c {-o alias.c alias.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node alias.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc alias.lus {}
 PASS: ./lus2lic {} {-lic -o amaury.lic amaury.lus -n amaury}
 PASS: ./lus2lic {-ec -o amaury.ec amaury.lus -n amaury}
 PASS: ./myec2c {-o amaury.c amaury.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node amaury.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc amaury.lus {}
 PASS: ./lus2lic {} {-lic -o arbitre.lic arbitre.lus -n arbitre}
 PASS: ./lus2lic {-ec -o arbitre.ec arbitre.lus -n arbitre}
 PASS: ./myec2c {-o arbitre.c arbitre.ec}
@@ -1260,22 +1276,27 @@ PASS: ./lus2lic {} {-lic -o argos.lic argos.lus -n argos}
 PASS: ./lus2lic {-ec -o argos.ec argos.lus -n argos}
 PASS: ./myec2c {-o argos.c argos.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node argos.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc argos.lus {}
 PASS: ./lus2lic {} {-lic -o array_concat.lic array_concat.lus -n array_concat}
 PASS: ./lus2lic {-ec -o array_concat.ec array_concat.lus -n array_concat}
 PASS: ./myec2c {-o array_concat.c array_concat.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node array_concat.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc array_concat.lus {}
 PASS: ./lus2lic {} {-lic -o array_concat2.lic array_concat2.lus -n array_concat2}
 PASS: ./lus2lic {-ec -o array_concat2.ec array_concat2.lus -n array_concat2}
 PASS: ./myec2c {-o array_concat2.c array_concat2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node array_concat2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc array_concat2.lus {}
 PASS: ./lus2lic {} {-lic -o array_equals.lic array_equals.lus -n array_equals}
 PASS: ./lus2lic {-ec -o array_equals.ec array_equals.lus -n array_equals}
 PASS: ./myec2c {-o array_equals.c array_equals.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node array_equals.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc array_equals.lus {}
 PASS: ./lus2lic {} {-lic -o arrays.lic arrays.lus -n arrays}
 PASS: ./lus2lic {-ec -o arrays.ec arrays.lus -n arrays}
 PASS: ./myec2c {-o arrays.c arrays.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node arrays.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc arrays.lus {}
 PASS: ./lus2lic { --expand-nodes} {-lic -o asservi.lic asservi.lus -n asservi}
 PASS: ./lus2lic {-ec -o asservi.ec asservi.lus -n asservi}
 PASS: ./myec2c {-o asservi.c asservi.ec}
@@ -1283,35 +1304,43 @@ PASS: ./lus2lic {} {-lic -o bad_call03.lic bad_call03.lus -n bad_call03}
 PASS: ./lus2lic {-ec -o bad_call03.ec bad_call03.lus -n bad_call03}
 PASS: ./myec2c {-o bad_call03.c bad_call03.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bad_call03.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc bad_call03.lus {}
 PASS: ./lus2lic {} {-lic -o bascule.lic bascule.lus -n bascule}
 PASS: ./lus2lic {-ec -o bascule.ec bascule.lus -n bascule}
 PASS: ./myec2c {-o bascule.c bascule.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bascule.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc bascule.lus {}
 PASS: ./lus2lic {} {-lic -o bob.lic bob.lus -n bob}
 PASS: ./lus2lic {-ec -o bob.ec bob.lus -n bob}
 PASS: ./myec2c {-o bob.c bob.ec}
 UNRESOLVED: Time out: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bob.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc bob.lus {}
 PASS: ./lus2lic {} {-lic -o bred.lic bred.lus -n bred}
 PASS: ./lus2lic {-ec -o bred.ec bred.lus -n bred}
 PASS: ./myec2c {-o bred.c bred.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bred.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc bred.lus {}
 PASS: ./lus2lic {} {-lic -o bred_lv4.lic bred_lv4.lus -n bred_lv4}
 PASS: ./lus2lic {-ec -o bred_lv4.ec bred_lv4.lus -n bred_lv4}
 PASS: ./myec2c {-o bred_lv4.c bred_lv4.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bred_lv4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc bred_lv4.lus {}
 PASS: ./lus2lic {} {-lic -o bug.lic bug.lus -n bug}
 PASS: ./lus2lic {-ec -o bug.ec bug.lus -n bug}
 PASS: ./myec2c {-o bug.c bug.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bug.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc bug.lus {}
 PASS: ./lus2lic {} {-lic -o bug2.lic bug2.lus -n bug2}
 PASS: ./lus2lic {-ec -o bug2.ec bug2.lus -n bug2}
 PASS: ./myec2c {-o bug2.c bug2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node bug2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc bug2.lus {}
 FAIL: without any option: ./lus2lic {} {-lic -o bug_map_fby.lic bug_map_fby.lus -n bug_map_fby}
 PASS: ./lus2lic {} {-lic -o calculs_max.lic calculs_max.lus -n calculs_max}
 PASS: ./lus2lic {-ec -o calculs_max.ec calculs_max.lus -n calculs_max}
 PASS: ./myec2c {-o calculs_max.c calculs_max.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node calculs_max.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc calculs_max.lus {}
 PASS: ./lus2lic {} {-lic -o call.lic call.lus -n call}
 PASS: ./lus2lic {-ec -o call.ec call.lus -n call}
 PASS: ./myec2c {-o call.c call.ec}
@@ -1322,6 +1351,7 @@ PASS: ./lus2lic {} {-lic -o call02.lic call02.lus -n call02}
 PASS: ./lus2lic {-ec -o call02.ec call02.lus -n call02}
 PASS: ./myec2c {-o call02.c call02.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node call02.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc call02.lus {}
 PASS: ./lus2lic {} {-lic -o call03.lic call03.lus -n call03}
 PASS: ./lus2lic {-ec -o call03.ec call03.lus -n call03}
 PASS: ./myec2c {-o call03.c call03.ec}
@@ -1329,6 +1359,7 @@ PASS: ./lus2lic {} {-lic -o call04.lic call04.lus -n call04}
 PASS: ./lus2lic {-ec -o call04.ec call04.lus -n call04}
 PASS: ./myec2c {-o call04.c call04.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node call04.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc call04.lus {}
 PASS: ./lus2lic {} {-lic -o call05.lic call05.lus -n call05}
 PASS: ./lus2lic {-ec -o call05.ec call05.lus -n call05}
 PASS: ./myec2c {-o call05.c call05.ec}
@@ -1339,6 +1370,7 @@ PASS: ./lus2lic {} {-lic -o call07.lic call07.lus -n call07}
 PASS: ./lus2lic {-ec -o call07.ec call07.lus -n call07}
 PASS: ./myec2c {-o call07.c call07.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node call07.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc call07.lus {}
 PASS: ./lus2lic {} {-lic -o carV2.lic carV2.lus -n carV2}
 PASS: ./lus2lic {-ec -o carV2.ec carV2.lus -n carV2}
 PASS: ./myec2c {-o carV2.c carV2.ec}
@@ -1346,39 +1378,48 @@ PASS: ./lus2lic {} {-lic -o carligths.lic carligths.lus -n carligths}
 PASS: ./lus2lic {-ec -o carligths.ec carligths.lus -n carligths}
 PASS: ./myec2c {-o carligths.c carligths.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node carligths.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc carligths.lus {}
 PASS: ./lus2lic {} {-lic -o ck2.lic ck2.lus -n ck2}
 PASS: ./lus2lic {-ec -o ck2.ec ck2.lus -n ck2}
 PASS: ./myec2c {-o ck2.c ck2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ck2.lus {}
 PASS: ./lus2lic {} {-lic -o ck3.lic ck3.lus -n ck3}
 PASS: ./lus2lic {-ec -o ck3.ec ck3.lus -n ck3}
 PASS: ./myec2c {-o ck3.c ck3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ck3.lus {}
 PASS: ./lus2lic {} {-lic -o ck4.lic ck4.lus -n ck4}
 PASS: ./lus2lic {-ec -o ck4.ec ck4.lus -n ck4}
 PASS: ./myec2c {-o ck4.c ck4.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ck4.lus {}
 PASS: ./lus2lic {} {-lic -o ck5.lic ck5.lus -n ck5}
 PASS: ./lus2lic {-ec -o ck5.ec ck5.lus -n ck5}
 PASS: ./myec2c {-o ck5.c ck5.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck5.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ck5.lus {}
 FAIL: without any option: ./lus2lic {} {-lic -o ck6.lic ck6.lus -n ck6}
 PASS: ./lus2lic {} {-lic -o ck7.lic ck7.lus -n ck7}
 PASS: ./lus2lic {-ec -o ck7.ec ck7.lus -n ck7}
 PASS: ./myec2c {-o ck7.c ck7.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck7.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ck7.lus {}
 PASS: ./lus2lic {} {-lic -o clock1_2ms.lic clock1_2ms.lus -n clock1_2ms}
 PASS: ./lus2lic {-ec -o clock1_2ms.ec clock1_2ms.lus -n clock1_2ms}
 PASS: ./myec2c {-o clock1_2ms.c clock1_2ms.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node clock1_2ms.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc clock1_2ms.lus {}
 PASS: ./lus2lic {} {-lic -o clock_ite.lic clock_ite.lus -n clock_ite}
 PASS: ./lus2lic {-ec -o clock_ite.ec clock_ite.lus -n clock_ite}
 PASS: ./myec2c {-o clock_ite.c clock_ite.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node clock_ite.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc clock_ite.lus {}
 PASS: ./lus2lic {} {-lic -o cminus.lic cminus.lus -n cminus}
 PASS: ./lus2lic {-ec -o cminus.ec cminus.lus -n cminus}
 PASS: ./myec2c {-o cminus.c cminus.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node cminus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc cminus.lus {}
 PASS: ./lus2lic {} {-lic -o complex.lic complex.lus -n complex}
 PASS: ./lus2lic {-ec -o complex.ec complex.lus -n complex}
 PASS: ./myec2c {-o complex.c complex.ec}
@@ -1386,38 +1427,47 @@ PASS: ./lus2lic {} {-lic -o compteur.lic compteur.lus -n compteur}
 PASS: ./lus2lic {-ec -o compteur.ec compteur.lus -n compteur}
 PASS: ./myec2c {-o compteur.c compteur.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node compteur.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc compteur.lus {}
 PASS: ./lus2lic {} {-lic -o cond01.lic cond01.lus -n cond01}
 PASS: ./lus2lic {-ec -o cond01.ec cond01.lus -n cond01}
 PASS: ./myec2c {-o cond01.c cond01.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node cond01.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc cond01.lus {}
 PASS: ./lus2lic {} {-lic -o consensus.lic consensus.lus -n consensus}
 PASS: ./lus2lic {-ec -o consensus.ec consensus.lus -n consensus}
 PASS: ./myec2c {-o consensus.c consensus.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node consensus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc consensus.lus {}
 PASS: ./lus2lic {} {-lic -o consensus2.lic consensus2.lus -n consensus2}
 PASS: ./lus2lic {-ec -o consensus2.ec consensus2.lus -n consensus2}
 PASS: ./myec2c {-o consensus2.c consensus2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node consensus2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc consensus2.lus {}
 PASS: ./lus2lic {} {-lic -o contractForElementSelectionInArray.lic contractForElementSelectionInArray.lus -n contractForElementSelectionInArray}
 PASS: ./lus2lic {-ec -o contractForElementSelectionInArray.ec contractForElementSelectionInArray.lus -n contractForElementSelectionInArray}
 PASS: ./myec2c {-o contractForElementSelectionInArray.c contractForElementSelectionInArray.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node contractForElementSelectionInArray.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc contractForElementSelectionInArray.lus {}
 PASS: ./lus2lic {} {-lic -o convert.lic convert.lus -n convert}
 PASS: ./lus2lic {-ec -o convert.ec convert.lus -n convert}
 PASS: ./myec2c {-o convert.c convert.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node convert.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc convert.lus {}
 PASS: ./lus2lic {} {-lic -o count.lic count.lus -n count}
 PASS: ./lus2lic {-ec -o count.ec count.lus -n count}
 PASS: ./myec2c {-o count.c count.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node count.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc count.lus {}
 PASS: ./lus2lic {} {-lic -o cpt.lic cpt.lus -n cpt}
 PASS: ./lus2lic {-ec -o cpt.ec cpt.lus -n cpt}
 PASS: ./myec2c {-o cpt.c cpt.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node cpt.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc cpt.lus {}
 PASS: ./lus2lic {} {-lic -o cst.lic cst.lus -n cst}
 PASS: ./lus2lic {-ec -o cst.ec cst.lus -n cst}
 PASS: ./myec2c {-o cst.c cst.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node cst.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc cst.lus {}
 PASS: ./lus2lic {} {-lic -o dadic.lic dadic.lus -n dadic}
 PASS: ./lus2lic {-ec -o dadic.ec dadic.lus -n dadic}
 PASS: ./myec2c {-o dadic.c dadic.ec}
@@ -1426,6 +1476,7 @@ PASS: ./lus2lic {} {-lic -o deSimone.lic deSimone.lus -n deSimone}
 PASS: ./lus2lic {-ec -o deSimone.ec deSimone.lus -n deSimone}
 PASS: ./myec2c {-o deSimone.c deSimone.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node deSimone.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc deSimone.lus {}
 PASS: ./lus2lic {} {-lic -o decl.lic decl.lus -n decl}
 PASS: ./lus2lic {-ec -o decl.ec decl.lus -n decl}
 PASS: ./myec2c {-o decl.c decl.ec}
@@ -1439,26 +1490,32 @@ PASS: ./lus2lic {} {-lic -o dep.lic dep.lus -n dep}
 PASS: ./lus2lic {-ec -o dep.ec dep.lus -n dep}
 PASS: ./myec2c {-o dep.c dep.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node dep.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc dep.lus {}
 PASS: ./lus2lic {} {-lic -o depend.lic depend.lus -n depend}
 PASS: ./lus2lic {-ec -o depend.ec depend.lus -n depend}
 PASS: ./myec2c {-o depend.c depend.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node depend.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc depend.lus {}
 PASS: ./lus2lic {} {-lic -o dependeur.lic dependeur.lus -n dependeur}
 PASS: ./lus2lic {-ec -o dependeur.ec dependeur.lus -n dependeur}
 PASS: ./myec2c {-o dependeur.c dependeur.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node dependeur.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc dependeur.lus {}
 PASS: ./lus2lic {} {-lic -o dependeur_struct.lic dependeur_struct.lus -n dependeur_struct}
 PASS: ./lus2lic {-ec -o dependeur_struct.ec dependeur_struct.lus -n dependeur_struct}
 PASS: ./myec2c {-o dependeur_struct.c dependeur_struct.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node dependeur_struct.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc dependeur_struct.lus {}
 PASS: ./lus2lic {} {-lic -o double_delay.lic double_delay.lus -n double_delay}
 PASS: ./lus2lic {-ec -o double_delay.ec double_delay.lus -n double_delay}
 PASS: ./myec2c {-o double_delay.c double_delay.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node double_delay.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc double_delay.lus {}
 PASS: ./lus2lic {} {-lic -o ec.lic ec.lus -n ec}
 PASS: ./lus2lic {-ec -o ec.ec ec.lus -n ec}
 PASS: ./myec2c {-o ec.c ec.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ec.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ec.lus {}
 PASS: ./lus2lic {} {-lic -o enum0.lic enum0.lus -n enum0}
 PASS: ./lus2lic {-ec -o enum0.ec enum0.lus -n enum0}
 PASS: ./myec2c {-o enum0.c enum0.ec}
@@ -1466,34 +1523,42 @@ PASS: ./lus2lic {} {-lic -o ex.lic ex.lus -n ex}
 PASS: ./lus2lic {-ec -o ex.ec ex.lus -n ex}
 PASS: ./myec2c {-o ex.c ex.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ex.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ex.lus {}
 PASS: ./lus2lic {} {-lic -o exclusion.lic exclusion.lus -n exclusion}
 PASS: ./lus2lic {-ec -o exclusion.ec exclusion.lus -n exclusion}
 PASS: ./myec2c {-o exclusion.c exclusion.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node exclusion.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc exclusion.lus {}
 PASS: ./lus2lic {} {-lic -o filliter.lic filliter.lus -n filliter}
 PASS: ./lus2lic {-ec -o filliter.ec filliter.lus -n filliter}
 PASS: ./myec2c {-o filliter.c filliter.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node filliter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc filliter.lus {}
 PASS: ./lus2lic {} {-lic -o filter.lic filter.lus -n filter}
 PASS: ./lus2lic {-ec -o filter.ec filter.lus -n filter}
 PASS: ./myec2c {-o filter.c filter.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node filter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc filter.lus {}
 PASS: ./lus2lic {} {-lic -o flo.lic flo.lus -n flo}
 PASS: ./lus2lic {-ec -o flo.ec flo.lus -n flo}
 PASS: ./myec2c {-o flo.c flo.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node flo.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc flo.lus {}
 PASS: ./lus2lic {} {-lic -o followed_by.lic followed_by.lus -n followed_by}
 PASS: ./lus2lic {-ec -o followed_by.ec followed_by.lus -n followed_by}
 PASS: ./myec2c {-o followed_by.c followed_by.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node followed_by.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc followed_by.lus {}
 PASS: ./lus2lic {} {-lic -o foo.lic foo.lus -n foo}
 PASS: ./lus2lic {-ec -o foo.ec foo.lus -n foo}
 PASS: ./myec2c {-o foo.c foo.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node foo.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc foo.lus {}
 PASS: ./lus2lic {} {-lic -o fresh_name.lic fresh_name.lus -n fresh_name}
 PASS: ./lus2lic {-ec -o fresh_name.ec fresh_name.lus -n fresh_name}
 PASS: ./myec2c {-o fresh_name.c fresh_name.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node fresh_name.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc fresh_name.lus {}
 PASS: ./lus2lic {} {-lic -o func_with_body.lic func_with_body.lus -n func_with_body}
 PASS: ./lus2lic {-ec -o func_with_body.ec func_with_body.lus -n func_with_body}
 PASS: ./myec2c {-o func_with_body.c func_with_body.ec}
@@ -1501,14 +1566,17 @@ PASS: ./lus2lic {} {-lic -o hanane.lic hanane.lus -n hanane}
 PASS: ./lus2lic {-ec -o hanane.ec hanane.lus -n hanane}
 PASS: ./myec2c {-o hanane.c hanane.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node hanane.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc hanane.lus {}
 PASS: ./lus2lic {} {-lic -o heater_control.lic heater_control.lus -n heater_control}
 PASS: ./lus2lic {-ec -o heater_control.ec heater_control.lus -n heater_control}
 PASS: ./myec2c {-o heater_control.c heater_control.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node heater_control.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc heater_control.lus {}
 PASS: ./lus2lic {} {-lic -o impl_priority.lic impl_priority.lus -n impl_priority}
 PASS: ./lus2lic {-ec -o impl_priority.ec impl_priority.lus -n impl_priority}
 PASS: ./myec2c {-o impl_priority.c impl_priority.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node impl_priority.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc impl_priority.lus {}
 PASS: ./lus2lic {} {-lic -o import1.lic import1.lus -n import1}
 PASS: ./lus2lic {-ec -o import1.ec import1.lus -n import1}
 PASS: ./myec2c {-o import1.c import1.ec}
@@ -1516,43 +1584,53 @@ PASS: ./lus2lic {} {-lic -o initial.lic initial.lus -n initial}
 PASS: ./lus2lic {-ec -o initial.ec initial.lus -n initial}
 PASS: ./myec2c {-o initial.c initial.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node initial.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc initial.lus {}
 PASS: ./lus2lic {} {-lic -o integrator.lic integrator.lus -n integrator}
 PASS: ./lus2lic {-ec -o integrator.ec integrator.lus -n integrator}
 PASS: ./myec2c {-o integrator.c integrator.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node integrator.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc integrator.lus {}
 PASS: ./lus2lic {} {-lic -o is_stable.lic is_stable.lus -n is_stable}
 PASS: ./lus2lic {-ec -o is_stable.ec is_stable.lus -n is_stable}
 PASS: ./myec2c {-o is_stable.c is_stable.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node is_stable.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc is_stable.lus {}
 PASS: ./lus2lic {} {-lic -o iter.lic iter.lus -n iter}
 PASS: ./lus2lic {-ec -o iter.ec iter.lus -n iter}
 PASS: ./myec2c {-o iter.c iter.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node iter.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc iter.lus {}
 PASS: ./lus2lic {} {-lic -o iterFibo.lic iterFibo.lus -n iterFibo}
 PASS: ./lus2lic {-ec -o iterFibo.ec iterFibo.lus -n iterFibo}
 PASS: ./myec2c {-o iterFibo.c iterFibo.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node iterFibo.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc iterFibo.lus {}
 PASS: ./lus2lic {} {-lic -o iterate.lic iterate.lus -n iterate}
 PASS: ./lus2lic {-ec -o iterate.ec iterate.lus -n iterate}
 PASS: ./myec2c {-o iterate.c iterate.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node iterate.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc iterate.lus {}
 PASS: ./lus2lic { "--expand-nodes -esa"} {-lic -o iterate_on_plus.lic iterate_on_plus.lus -n iterate_on_plus}
 PASS: ./lus2lic {} {-lic -o left.lic left.lus -n left}
 PASS: ./lus2lic {-ec -o left.ec left.lus -n left}
 PASS: ./myec2c {-o left.c left.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node left.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc left.lus {}
 PASS: ./lus2lic {} {-lic -o long_et_stupide_nom_de_noeud.lic long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud}
 PASS: ./lus2lic {-ec -o long_et_stupide_nom_de_noeud.ec long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud}
 PASS: ./myec2c {-o long_et_stupide_nom_de_noeud.c long_et_stupide_nom_de_noeud.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node long_et_stupide_nom_de_noeud.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc long_et_stupide_nom_de_noeud.lus {}
 PASS: ./lus2lic {} {-lic -o lucky.lic lucky.lus -n lucky}
 PASS: ./lus2lic {-ec -o lucky.ec lucky.lus -n lucky}
 PASS: ./myec2c {-o lucky.c lucky.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node lucky.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc lucky.lus {}
 PASS: ./lus2lic {} {-lic -o lustre_test1_ok.lic lustre_test1_ok.lus -n lustre_test1_ok}
 PASS: ./lus2lic {-ec -o lustre_test1_ok.ec lustre_test1_ok.lus -n lustre_test1_ok}
 PASS: ./myec2c {-o lustre_test1_ok.c lustre_test1_ok.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node lustre_test1_ok.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc lustre_test1_ok.lus {}
 PASS: ./lus2lic {} {-lic -o map_red_iter.lic map_red_iter.lus -n map_red_iter}
 PASS: ./lus2lic {-ec -o map_red_iter.ec map_red_iter.lus -n map_red_iter}
 PASS: ./myec2c {-o map_red_iter.c map_red_iter.ec}
@@ -1560,50 +1638,62 @@ PASS: ./lus2lic {} {-lic -o mapdeRed.lic mapdeRed.lus -n mapdeRed}
 PASS: ./lus2lic {-ec -o mapdeRed.ec mapdeRed.lus -n mapdeRed}
 PASS: ./myec2c {-o mapdeRed.c mapdeRed.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mapdeRed.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc mapdeRed.lus {}
 PASS: ./lus2lic {} {-lic -o mapinf.lic mapinf.lus -n mapinf}
 PASS: ./lus2lic {-ec -o mapinf.ec mapinf.lus -n mapinf}
 PASS: ./myec2c {-o mapinf.c mapinf.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mapinf.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mapinf.lus {}
 PASS: ./lus2lic {} {-lic -o mapiter.lic mapiter.lus -n mapiter}
 PASS: ./lus2lic {-ec -o mapiter.ec mapiter.lus -n mapiter}
 PASS: ./myec2c {-o mapiter.c mapiter.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mapiter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mapiter.lus {}
 PASS: ./lus2lic {} {-lic -o mappredef.lic mappredef.lus -n mappredef}
 PASS: ./lus2lic {-ec -o mappredef.ec mappredef.lus -n mappredef}
 PASS: ./myec2c {-o mappredef.c mappredef.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mappredef.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mappredef.lus {}
 PASS: ./lus2lic {} {-lic -o matrice.lic matrice.lus -n matrice}
 PASS: ./lus2lic {-ec -o matrice.ec matrice.lus -n matrice}
 PASS: ./myec2c {-o matrice.c matrice.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node matrice.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc matrice.lus {}
 PASS: ./lus2lic {} {-lic -o matrice2.lic matrice2.lus -n matrice2}
 PASS: ./lus2lic {-ec -o matrice2.ec matrice2.lus -n matrice2}
 PASS: ./myec2c {-o matrice2.c matrice2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node matrice2.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc matrice2.lus {}
 PASS: ./lus2lic {} {-lic -o matrix_constant.lic matrix_constant.lus -n matrix_constant}
 PASS: ./lus2lic {-ec -o matrix_constant.ec matrix_constant.lus -n matrix_constant}
 PASS: ./myec2c {-o matrix_constant.c matrix_constant.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node matrix_constant.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc matrix_constant.lus {}
 PASS: ./lus2lic {} {-lic -o minmax1.lic minmax1.lus -n minmax1}
 PASS: ./lus2lic {-ec -o minmax1.ec minmax1.lus -n minmax1}
 PASS: ./myec2c {-o minmax1.c minmax1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node minmax1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc minmax1.lus {}
 PASS: ./lus2lic {} {-lic -o minmax2.lic minmax2.lus -n minmax2}
 PASS: ./lus2lic {-ec -o minmax2.ec minmax2.lus -n minmax2}
 PASS: ./myec2c {-o minmax2.c minmax2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node minmax2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc minmax2.lus {}
 PASS: ./lus2lic {} {-lic -o minmax3.lic minmax3.lus -n minmax3}
 PASS: ./lus2lic {-ec -o minmax3.ec minmax3.lus -n minmax3}
 PASS: ./myec2c {-o minmax3.c minmax3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node minmax3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc minmax3.lus {}
 PASS: ./lus2lic {} {-lic -o minmax4.lic minmax4.lus -n minmax4}
 PASS: ./lus2lic {-ec -o minmax4.ec minmax4.lus -n minmax4}
 PASS: ./myec2c {-o minmax4.c minmax4.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node minmax4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc minmax4.lus {}
 PASS: ./lus2lic {} {-lic -o minmax4_bis.lic minmax4_bis.lus -n minmax4_bis}
 PASS: ./lus2lic {-ec -o minmax4_bis.ec minmax4_bis.lus -n minmax4_bis}
 PASS: ./myec2c {-o minmax4_bis.c minmax4_bis.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node minmax4_bis.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc minmax4_bis.lus {}
 PASS: ./lus2lic {} {-lic -o minmax5.lic minmax5.lus -n minmax5}
 PASS: ./lus2lic {-ec -o minmax5.ec minmax5.lus -n minmax5}
 PASS: ./myec2c {-o minmax5.c minmax5.ec}
@@ -1614,26 +1704,32 @@ PASS: ./lus2lic {} {-lic -o minmax6.lic minmax6.lus -n minmax6}
 PASS: ./lus2lic {-ec -o minmax6.ec minmax6.lus -n minmax6}
 PASS: ./myec2c {-o minmax6.c minmax6.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node minmax6.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc minmax6.lus {}
 PASS: ./lus2lic {} {-lic -o minus.lic minus.lus -n minus}
 PASS: ./lus2lic {-ec -o minus.ec minus.lus -n minus}
 PASS: ./myec2c {-o minus.c minus.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node minus.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc minus.lus {}
 PASS: ./lus2lic {} {-lic -o mm.lic mm.lus -n mm}
 PASS: ./lus2lic {-ec -o mm.ec mm.lus -n mm}
 PASS: ./myec2c {-o mm.c mm.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mm.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mm.lus {}
 PASS: ./lus2lic {} {-lic -o mm1.lic mm1.lus -n mm1}
 PASS: ./lus2lic {-ec -o mm1.ec mm1.lus -n mm1}
 PASS: ./myec2c {-o mm1.c mm1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mm1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mm1.lus {}
 PASS: ./lus2lic {} {-lic -o mm22.lic mm22.lus -n mm22}
 PASS: ./lus2lic {-ec -o mm22.ec mm22.lus -n mm22}
 PASS: ./myec2c {-o mm22.c mm22.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mm22.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mm22.lus {}
 PASS: ./lus2lic {} {-lic -o mm3.lic mm3.lus -n mm3}
 PASS: ./lus2lic {-ec -o mm3.ec mm3.lus -n mm3}
 PASS: ./myec2c {-o mm3.c mm3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mm3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mm3.lus {}
 PASS: ./lus2lic {} {-lic -o modelInst.lic modelInst.lus -n modelInst}
 PASS: ./lus2lic {-ec -o modelInst.ec modelInst.lus -n modelInst}
 PASS: ./myec2c {-o modelInst.c modelInst.ec}
@@ -1641,6 +1737,7 @@ PASS: ./lus2lic {} {-lic -o modes3x2_v2.lic modes3x2_v2.lus -n modes3x2_v2}
 PASS: ./lus2lic {-ec -o modes3x2_v2.ec modes3x2_v2.lus -n modes3x2_v2}
 PASS: ./myec2c {-o modes3x2_v2.c modes3x2_v2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node modes3x2_v2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc modes3x2_v2.lus {}
 PASS: ./lus2lic {} {-lic -o modes3x2_v3.lic modes3x2_v3.lus -n modes3x2_v3}
 PASS: ./lus2lic {-ec -o modes3x2_v3.ec modes3x2_v3.lus -n modes3x2_v3}
 PASS: ./lus2lic {} {-lic -o modes3x2_v4.lic modes3x2_v4.lus -n modes3x2_v4}
@@ -1649,54 +1746,66 @@ PASS: ./lus2lic {} {-lic -o morel.lic morel.lus -n morel}
 PASS: ./lus2lic {-ec -o morel.ec morel.lus -n morel}
 PASS: ./myec2c {-o morel.c morel.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node morel.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc morel.lus {}
 PASS: ./lus2lic {} {-lic -o morel2.lic morel2.lus -n morel2}
 PASS: ./lus2lic {-ec -o morel2.ec morel2.lus -n morel2}
 PASS: ./myec2c {-o morel2.c morel2.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node morel2.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc morel2.lus {}
 PASS: ./lus2lic {} {-lic -o morel3.lic morel3.lus -n morel3}
 PASS: ./lus2lic {-ec -o morel3.ec morel3.lus -n morel3}
 PASS: ./myec2c {-o morel3.c morel3.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node morel3.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc morel3.lus {}
 PASS: ./lus2lic {} {-lic -o morel4.lic morel4.lus -n morel4}
 PASS: ./lus2lic {-ec -o morel4.ec morel4.lus -n morel4}
 PASS: ./myec2c {-o morel4.c morel4.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node morel4.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc morel4.lus {}
 PASS: ./lus2lic {} {-lic -o morel5.lic morel5.lus -n morel5}
 PASS: ./lus2lic {-ec -o morel5.ec morel5.lus -n morel5}
 PASS: ./myec2c {-o morel5.c morel5.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node morel5.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc morel5.lus {}
 PASS: ./lus2lic {} {-lic -o mouse.lic mouse.lus -n mouse}
 PASS: ./lus2lic {-ec -o mouse.ec mouse.lus -n mouse}
 PASS: ./myec2c {-o mouse.c mouse.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mouse.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mouse.lus {}
 PASS: ./lus2lic {} {-lic -o mouse1.lic mouse1.lus -n mouse1}
 PASS: ./lus2lic {-ec -o mouse1.ec mouse1.lus -n mouse1}
 PASS: ./myec2c {-o mouse1.c mouse1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mouse1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mouse1.lus {}
 PASS: ./lus2lic {} {-lic -o mouse2.lic mouse2.lus -n mouse2}
 PASS: ./lus2lic {-ec -o mouse2.ec mouse2.lus -n mouse2}
 PASS: ./myec2c {-o mouse2.c mouse2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mouse2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mouse2.lus {}
 PASS: ./lus2lic {} {-lic -o mouse3.lic mouse3.lus -n mouse3}
 PASS: ./lus2lic {-ec -o mouse3.ec mouse3.lus -n mouse3}
 PASS: ./myec2c {-o mouse3.c mouse3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node mouse3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc mouse3.lus {}
 PASS: ./lus2lic {} {-lic -o moyenne.lic moyenne.lus -n moyenne}
 PASS: ./lus2lic {-ec -o moyenne.ec moyenne.lus -n moyenne}
 PASS: ./myec2c {-o moyenne.c moyenne.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node moyenne.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc moyenne.lus {}
 PASS: ./lus2lic {} {-lic -o multiclock.lic multiclock.lus -n multiclock}
 PASS: ./lus2lic {-ec -o multiclock.ec multiclock.lus -n multiclock}
 PASS: ./myec2c {-o multiclock.c multiclock.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multiclock.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc multiclock.lus {}
 PASS: ./lus2lic {} {-lic -o multipar.lic multipar.lus -n multipar}
 PASS: ./lus2lic {-ec -o multipar.ec multipar.lus -n multipar}
 PASS: ./myec2c {-o multipar.c multipar.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc multipar.lus {}
 
 
 ==> lus2lic4.sum <==
-Test run by jahier on Tue Feb 27 15:32:45 
+Test run by jahier on Wed May 29 10:21:18 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1712,26 +1821,32 @@ PASS: ./lus2lic {} {-lic -o SOURIS.lic SOURIS.lus -n SOURIS}
 PASS: ./lus2lic {-ec -o SOURIS.ec SOURIS.lus -n SOURIS}
 PASS: ./myec2c {-o SOURIS.c SOURIS.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node SOURIS.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc SOURIS.lus {}
 PASS: ./lus2lic {} {-lic -o STABLE.lic STABLE.lus -n STABLE}
 PASS: ./lus2lic {-ec -o STABLE.ec STABLE.lus -n STABLE}
 PASS: ./myec2c {-o STABLE.c STABLE.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node STABLE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc STABLE.lus {}
 PASS: ./lus2lic {} {-lic -o SWITCH.lic SWITCH.lus -n SWITCH}
 PASS: ./lus2lic {-ec -o SWITCH.ec SWITCH.lus -n SWITCH}
 PASS: ./myec2c {-o SWITCH.c SWITCH.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node SWITCH.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc SWITCH.lus {}
 PASS: ./lus2lic {} {-lic -o SWITCH1.lic SWITCH1.lus -n SWITCH1}
 PASS: ./lus2lic {-ec -o SWITCH1.ec SWITCH1.lus -n SWITCH1}
 PASS: ./myec2c {-o SWITCH1.c SWITCH1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node SWITCH1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc SWITCH1.lus {}
 PASS: ./lus2lic {} {-lic -o TIME_STABLE.lic TIME_STABLE.lus -n TIME_STABLE}
 PASS: ./lus2lic {-ec -o TIME_STABLE.ec TIME_STABLE.lus -n TIME_STABLE}
 PASS: ./myec2c {-o TIME_STABLE.c TIME_STABLE.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node TIME_STABLE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc TIME_STABLE.lus {}
 PASS: ./lus2lic {} {-lic -o TIME_STABLE1.lic TIME_STABLE1.lus -n TIME_STABLE1}
 PASS: ./lus2lic {-ec -o TIME_STABLE1.ec TIME_STABLE1.lus -n TIME_STABLE1}
 PASS: ./myec2c {-o TIME_STABLE1.c TIME_STABLE1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node TIME_STABLE1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc TIME_STABLE1.lus {}
 PASS: ./lus2lic {} {-lic -o Watch.lic Watch.lus -n Watch}
 PASS: ./lus2lic {-ec -o Watch.ec Watch.lus -n Watch}
 PASS: ./myec2c {-o Watch.c Watch.ec}
@@ -1739,59 +1854,73 @@ PASS: ./lus2lic {} {-lic -o X.lic X.lus -n X}
 PASS: ./lus2lic {-ec -o X.ec X.lus -n X}
 PASS: ./myec2c {-o X.c X.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node X.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc X.lus {}
 PASS: ./lus2lic {} {-lic -o X2.lic X2.lus -n X2}
 PASS: ./lus2lic {-ec -o X2.ec X2.lus -n X2}
 PASS: ./myec2c {-o X2.c X2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node X2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc X2.lus {}
 FAIL: without any option: ./lus2lic {} {-lic -o X6.lic X6.lus -n X6}
 PASS: ./lus2lic {} {-lic -o Xr.lic Xr.lus -n Xr}
 PASS: ./lus2lic {-ec -o Xr.ec Xr.lus -n Xr}
 PASS: ./myec2c {-o Xr.c Xr.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node Xr.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc Xr.lus {}
 PASS: ./lus2lic {} {-lic -o nc1.lic nc1.lus -n nc1}
 PASS: ./lus2lic {-ec -o nc1.ec nc1.lus -n nc1}
 PASS: ./myec2c {-o nc1.c nc1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc1.lus {}
 PASS: ./lus2lic {} {-lic -o nc10.lic nc10.lus -n nc10}
 PASS: ./lus2lic {-ec -o nc10.ec nc10.lus -n nc10}
 PASS: ./myec2c {-o nc10.c nc10.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc10.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc10.lus {}
 PASS: ./lus2lic {} {-lic -o nc2.lic nc2.lus -n nc2}
 PASS: ./lus2lic {-ec -o nc2.ec nc2.lus -n nc2}
 PASS: ./myec2c {-o nc2.c nc2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc2.lus {}
 PASS: ./lus2lic {} {-lic -o nc3.lic nc3.lus -n nc3}
 PASS: ./lus2lic {-ec -o nc3.ec nc3.lus -n nc3}
 PASS: ./myec2c {-o nc3.c nc3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc3.lus {}
 PASS: ./lus2lic {} {-lic -o nc4.lic nc4.lus -n nc4}
 PASS: ./lus2lic {-ec -o nc4.ec nc4.lus -n nc4}
 PASS: ./myec2c {-o nc4.c nc4.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc4.lus {}
 PASS: ./lus2lic {} {-lic -o nc5.lic nc5.lus -n nc5}
 PASS: ./lus2lic {-ec -o nc5.ec nc5.lus -n nc5}
 PASS: ./myec2c {-o nc5.c nc5.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc5.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc5.lus {}
 PASS: ./lus2lic {} {-lic -o nc6.lic nc6.lus -n nc6}
 PASS: ./lus2lic {-ec -o nc6.ec nc6.lus -n nc6}
 PASS: ./myec2c {-o nc6.c nc6.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc6.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc6.lus {}
 PASS: ./lus2lic {} {-lic -o nc7.lic nc7.lus -n nc7}
 PASS: ./lus2lic {-ec -o nc7.ec nc7.lus -n nc7}
 PASS: ./myec2c {-o nc7.c nc7.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc7.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc7.lus {}
 PASS: ./lus2lic {} {-lic -o nc8.lic nc8.lus -n nc8}
 PASS: ./lus2lic {-ec -o nc8.ec nc8.lus -n nc8}
 PASS: ./myec2c {-o nc8.c nc8.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc8.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc8.lus {}
 PASS: ./lus2lic {} {-lic -o nc9.lic nc9.lus -n nc9}
 PASS: ./lus2lic {-ec -o nc9.ec nc9.lus -n nc9}
 PASS: ./myec2c {-o nc9.c nc9.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nc9.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nc9.lus {}
 PASS: ./lus2lic {} {-lic -o nested.lic nested.lus -n nested}
 PASS: ./lus2lic {-ec -o nested.ec nested.lus -n nested}
 PASS: ./myec2c {-o nested.c nested.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nested.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nested.lus {}
 PASS: ./lus2lic {} {-lic -o newpacks.lic newpacks.lus -n newpacks}
 PASS: ./lus2lic {-ec -o newpacks.ec newpacks.lus -n newpacks}
 PASS: ./myec2c {-o newpacks.c newpacks.ec}
@@ -1799,22 +1928,27 @@ PASS: ./lus2lic {} {-lic -o noAlarm.lic noAlarm.lus -n noAlarm}
 PASS: ./lus2lic {-ec -o noAlarm.ec noAlarm.lus -n noAlarm}
 PASS: ./myec2c {-o noAlarm.c noAlarm.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node noAlarm.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc noAlarm.lus {}
 PASS: ./lus2lic {} {-lic -o node_caller1.lic node_caller1.lus -n node_caller1}
 PASS: ./lus2lic {-ec -o node_caller1.ec node_caller1.lus -n node_caller1}
 PASS: ./myec2c {-o node_caller1.c node_caller1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node node_caller1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc node_caller1.lus {}
 PASS: ./lus2lic {} {-lic -o nodeparam.lic nodeparam.lus -n nodeparam}
 PASS: ./lus2lic {-ec -o nodeparam.ec nodeparam.lus -n nodeparam}
 PASS: ./myec2c {-o nodeparam.c nodeparam.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node nodeparam.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc nodeparam.lus {}
 PASS: ./lus2lic {} {-lic -o noeudsIndependants.lic noeudsIndependants.lus -n noeudsIndependants}
 PASS: ./lus2lic {-ec -o noeudsIndependants.ec noeudsIndependants.lus -n noeudsIndependants}
 PASS: ./myec2c {-o noeudsIndependants.c noeudsIndependants.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node noeudsIndependants.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc noeudsIndependants.lus {}
 PASS: ./lus2lic {} {-lic -o noinput.lic noinput.lus -n noinput}
 PASS: ./lus2lic {-ec -o noinput.ec noinput.lus -n noinput}
 PASS: ./myec2c {-o noinput.c noinput.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node noinput.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc noinput.lus {}
 PASS: ./lus2lic {} {-lic -o normal.lic normal.lus -n normal}
 PASS: ./lus2lic {-ec -o normal.ec normal.lus -n normal}
 PASS: ./myec2c {-o normal.c normal.ec}
@@ -1822,10 +1956,12 @@ PASS: ./lus2lic {} {-lic -o notTwo.lic notTwo.lus -n notTwo}
 PASS: ./lus2lic {-ec -o notTwo.ec notTwo.lus -n notTwo}
 PASS: ./myec2c {-o notTwo.c notTwo.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node notTwo.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc notTwo.lus {}
 PASS: ./lus2lic {} {-lic -o o2l_feux_compl.lic o2l_feux_compl.lus -n o2l_feux_compl}
 PASS: ./lus2lic {-ec -o o2l_feux_compl.ec o2l_feux_compl.lus -n o2l_feux_compl}
 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: /home/jahier/lus2lic/test/../utils/check_knc o2l_feux_compl.lus {}
 PASS: ./lus2lic {} {-lic -o oneq.lic oneq.lus -n oneq}
 PASS: ./lus2lic {-ec -o oneq.ec oneq.lus -n oneq}
 PASS: ./myec2c {-o oneq.c oneq.ec}
@@ -1833,22 +1969,27 @@ PASS: ./lus2lic {} {-lic -o onlyroll.lic onlyroll.lus -n onlyroll}
 PASS: ./lus2lic {-ec -o onlyroll.ec onlyroll.lus -n onlyroll}
 PASS: ./myec2c {-o onlyroll.c onlyroll.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node onlyroll.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc onlyroll.lus {}
 PASS: ./lus2lic {} {-lic -o onlyroll2.lic onlyroll2.lus -n onlyroll2}
 PASS: ./lus2lic {-ec -o onlyroll2.ec onlyroll2.lus -n onlyroll2}
 PASS: ./myec2c {-o onlyroll2.c onlyroll2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node onlyroll2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc onlyroll2.lus {}
 PASS: ./lus2lic {} {-lic -o over2.lic over2.lus -n over2}
 PASS: ./lus2lic {-ec -o over2.ec over2.lus -n over2}
 PASS: ./myec2c {-o over2.c over2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node over2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc over2.lus {}
 PASS: ./lus2lic {} {-lic -o over3.lic over3.lus -n over3}
 PASS: ./lus2lic {-ec -o over3.ec over3.lus -n over3}
 PASS: ./myec2c {-o over3.c over3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node over3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc over3.lus {}
 PASS: ./lus2lic {} {-lic -o overload.lic overload.lus -n overload}
 PASS: ./lus2lic {-ec -o overload.ec overload.lus -n overload}
 PASS: ./myec2c {-o overload.c overload.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node overload.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc overload.lus {}
 PASS: ./lus2lic {} {-lic -o p.lic p.lus -n p}
 PASS: ./lus2lic {-ec -o p.ec p.lus -n p}
 PASS: ./myec2c {-o p.c p.ec}
@@ -1868,22 +2009,27 @@ PASS: ./lus2lic {} {-lic -o param_node.lic param_node.lus -n param_node}
 PASS: ./lus2lic {-ec -o param_node.ec param_node.lus -n param_node}
 PASS: ./myec2c {-o param_node.c param_node.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node param_node.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc param_node.lus {}
 PASS: ./lus2lic {} {-lic -o param_node2.lic param_node2.lus -n param_node2}
 PASS: ./lus2lic {-ec -o param_node2.ec param_node2.lus -n param_node2}
 PASS: ./myec2c {-o param_node2.c param_node2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node param_node2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc param_node2.lus {}
 PASS: ./lus2lic {} {-lic -o param_node3.lic param_node3.lus -n param_node3}
 PASS: ./lus2lic {-ec -o param_node3.ec param_node3.lus -n param_node3}
 PASS: ./myec2c {-o param_node3.c param_node3.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node param_node3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc param_node3.lus {}
 PASS: ./lus2lic {} {-lic -o param_node4.lic param_node4.lus -n param_node4}
 PASS: ./lus2lic {-ec -o param_node4.ec param_node4.lus -n param_node4}
 PASS: ./myec2c {-o param_node4.c param_node4.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node param_node4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc param_node4.lus {}
 PASS: ./lus2lic {} {-lic -o param_struct.lic param_struct.lus -n param_struct}
 PASS: ./lus2lic {-ec -o param_struct.ec param_struct.lus -n param_struct}
 PASS: ./myec2c {-o param_struct.c param_struct.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node param_struct.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc param_struct.lus {}
 PASS: ./lus2lic { --expand-nodes} {-lic -o pilote.lic pilote.lus -n pilote}
 PASS: ./lus2lic {-ec -o pilote.ec pilote.lus -n pilote}
 PASS: ./myec2c {-o pilote.c pilote.ec}
@@ -1891,22 +2037,27 @@ PASS: ./lus2lic {} {-lic -o pipeline.lic pipeline.lus -n pipeline}
 PASS: ./lus2lic {-ec -o pipeline.ec pipeline.lus -n pipeline}
 PASS: ./myec2c {-o pipeline.c pipeline.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node pipeline.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc pipeline.lus {}
 PASS: ./lus2lic {} {-lic -o plus.lic plus.lus -n plus}
 PASS: ./lus2lic {-ec -o plus.ec plus.lus -n plus}
 PASS: ./myec2c {-o plus.c plus.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node plus.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc plus.lus {}
 PASS: ./lus2lic {} {-lic -o ply01.lic ply01.lus -n ply01}
 PASS: ./lus2lic {-ec -o ply01.ec ply01.lus -n ply01}
 PASS: ./myec2c {-o ply01.c ply01.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ply01.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ply01.lus {}
 PASS: ./lus2lic { -rnc} {-lic -o ply02.lic ply02.lus -n ply02}
 PASS: ./lus2lic {-ec -o ply02.ec ply02.lus -n ply02}
 PASS: ./myec2c {-o ply02.c ply02.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ply02.lus { -rnc}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ply02.lus { -rnc}
 PASS: ./lus2lic { -rnc} {-lic -o ply03.lic ply03.lus -n ply03}
 PASS: ./lus2lic {-ec -o ply03.ec ply03.lus -n ply03}
 PASS: ./myec2c {-o ply03.c ply03.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ply03.lus { -rnc}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ply03.lus { -rnc}
 PASS: ./lus2lic {} {-lic -o polymorphic_pack.lic polymorphic_pack.lus -n polymorphic_pack}
 PASS: ./lus2lic {-ec -o polymorphic_pack.ec polymorphic_pack.lus -n polymorphic_pack}
 PASS: ./myec2c {-o polymorphic_pack.c polymorphic_pack.ec}
@@ -1914,34 +2065,42 @@ PASS: ./lus2lic {} {-lic -o poussoir.lic poussoir.lus -n poussoir}
 PASS: ./lus2lic {-ec -o poussoir.ec poussoir.lus -n poussoir}
 PASS: ./myec2c {-o poussoir.c poussoir.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node poussoir.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc poussoir.lus {}
 PASS: ./lus2lic {} {-lic -o pplus.lic pplus.lus -n pplus}
 PASS: ./lus2lic {-ec -o pplus.ec pplus.lus -n pplus}
 PASS: ./myec2c {-o pplus.c pplus.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node pplus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc pplus.lus {}
 PASS: ./lus2lic {} {-lic -o pre_x.lic pre_x.lus -n pre_x}
 PASS: ./lus2lic {-ec -o pre_x.ec pre_x.lus -n pre_x}
 PASS: ./myec2c {-o pre_x.c pre_x.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node pre_x.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc pre_x.lus {}
 PASS: ./lus2lic {} {-lic -o predef01.lic predef01.lus -n predef01}
 PASS: ./lus2lic {-ec -o predef01.ec predef01.lus -n predef01}
 PASS: ./myec2c {-o predef01.c predef01.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node predef01.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc predef01.lus {}
 PASS: ./lus2lic {} {-lic -o predef02.lic predef02.lus -n predef02}
 PASS: ./lus2lic {-ec -o predef02.ec predef02.lus -n predef02}
 PASS: ./myec2c {-o predef02.c predef02.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node predef02.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc predef02.lus {}
 PASS: ./lus2lic {} {-lic -o predef03.lic predef03.lus -n predef03}
 PASS: ./lus2lic {-ec -o predef03.ec predef03.lus -n predef03}
 PASS: ./myec2c {-o predef03.c predef03.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node predef03.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc predef03.lus {}
 PASS: ./lus2lic {} {-lic -o predefOp.lic predefOp.lus -n predefOp}
 PASS: ./lus2lic {-ec -o predefOp.ec predefOp.lus -n predefOp}
 PASS: ./myec2c {-o predefOp.c predefOp.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node predefOp.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc predefOp.lus {}
 PASS: ./lus2lic {} {-lic -o produitBool.lic produitBool.lus -n produitBool}
 PASS: ./lus2lic {-ec -o produitBool.ec produitBool.lus -n produitBool}
 PASS: ./myec2c {-o produitBool.c produitBool.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node produitBool.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc produitBool.lus {}
 PASS: ./lus2lic {} {-lic -o random.lic random.lus -n random}
 PASS: ./lus2lic {-ec -o random.ec random.lus -n random}
 FAIL: Try ec2c on the result: ./myec2c {-o random.c random.ec}
@@ -1949,18 +2108,22 @@ PASS: ./lus2lic {} {-lic -o real_ex.lic real_ex.lus -n real_ex}
 PASS: ./lus2lic {-ec -o real_ex.ec real_ex.lus -n real_ex}
 PASS: ./myec2c {-o real_ex.c real_ex.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node real_ex.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc real_ex.lus {}
 PASS: ./lus2lic {} {-lic -o redIf.lic redIf.lus -n redIf}
 PASS: ./lus2lic {-ec -o redIf.ec redIf.lus -n redIf}
 PASS: ./myec2c {-o redIf.c redIf.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node redIf.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc redIf.lus {}
 PASS: ./lus2lic {} {-lic -o rediter.lic rediter.lus -n rediter}
 PASS: ./lus2lic {-ec -o rediter.ec rediter.lus -n rediter}
 PASS: ./myec2c {-o rediter.c rediter.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node rediter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc rediter.lus {}
 PASS: ./lus2lic {} {-lic -o redoptest.lic redoptest.lus -n redoptest}
 PASS: ./lus2lic {-ec -o redoptest.ec redoptest.lus -n redoptest}
 PASS: ./myec2c {-o redoptest.c redoptest.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node redoptest.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc redoptest.lus {}
 PASS: ./lus2lic {} {-lic -o remplissage.lic remplissage.lus -n remplissage}
 PASS: ./lus2lic {-ec -o remplissage.ec remplissage.lus -n remplissage}
 PASS: ./myec2c {-o remplissage.c remplissage.ec}
@@ -1968,22 +2131,27 @@ PASS: ./lus2lic {} {-lic -o rs.lic rs.lus -n rs}
 PASS: ./lus2lic {-ec -o rs.ec rs.lus -n rs}
 PASS: ./myec2c {-o rs.c rs.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node rs.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc rs.lus {}
 PASS: ./lus2lic {} {-lic -o sample_time_change.lic sample_time_change.lus -n sample_time_change}
 PASS: ./lus2lic {-ec -o sample_time_change.ec sample_time_change.lus -n sample_time_change}
 PASS: ./myec2c {-o sample_time_change.c sample_time_change.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node sample_time_change.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc sample_time_change.lus {}
 PASS: ./lus2lic {} {-lic -o sample_time_change_MainNode.lic sample_time_change_MainNode.lus -n sample_time_change_MainNode}
 PASS: ./lus2lic {-ec -o sample_time_change_MainNode.ec sample_time_change_MainNode.lus -n sample_time_change_MainNode}
 PASS: ./myec2c {-o sample_time_change_MainNode.c sample_time_change_MainNode.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node sample_time_change_MainNode.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc sample_time_change_MainNode.lus {}
 PASS: ./lus2lic {} {-lic -o shiftFill_ludic.lic shiftFill_ludic.lus -n shiftFill_ludic}
 PASS: ./lus2lic {-ec -o shiftFill_ludic.ec shiftFill_ludic.lus -n shiftFill_ludic}
 PASS: ./myec2c {-o shiftFill_ludic.c shiftFill_ludic.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node shiftFill_ludic.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc shiftFill_ludic.lus {}
 PASS: ./lus2lic {} {-lic -o shift_ludic.lic shift_ludic.lus -n shift_ludic}
 PASS: ./lus2lic {-ec -o shift_ludic.ec shift_ludic.lus -n shift_ludic}
 PASS: ./myec2c {-o shift_ludic.c shift_ludic.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node shift_ludic.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc shift_ludic.lus {}
 PASS: ./lus2lic {} {-lic -o simple.lic simple.lus -n simple}
 PASS: ./lus2lic {-ec -o simple.ec simple.lus -n simple}
 PASS: ./myec2c {-o simple.c simple.ec}
@@ -1991,30 +2159,37 @@ PASS: ./lus2lic {} {-lic -o simpleRed.lic simpleRed.lus -n simpleRed}
 PASS: ./lus2lic {-ec -o simpleRed.ec simpleRed.lus -n simpleRed}
 PASS: ./myec2c {-o simpleRed.c simpleRed.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node simpleRed.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc simpleRed.lus {}
 PASS: ./lus2lic {} {-lic -o sincos.lic sincos.lus -n sincos}
 PASS: ./lus2lic {-ec -o sincos.ec sincos.lus -n sincos}
 PASS: ./myec2c {-o sincos.c sincos.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node sincos.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc sincos.lus {}
 PASS: ./lus2lic { --expand-nodes} {-lic -o speedcontrol.lic speedcontrol.lus -n speedcontrol}
 PASS: ./lus2lic {-ec -o speedcontrol.ec speedcontrol.lus -n speedcontrol}
 PASS: ./myec2c {-o speedcontrol.c speedcontrol.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node speedcontrol.lus { --expand-nodes}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc speedcontrol.lus { --expand-nodes}
 PASS: ./lus2lic {} {-lic -o stopwatch.lic stopwatch.lus -n stopwatch}
 PASS: ./lus2lic {-ec -o stopwatch.ec stopwatch.lus -n stopwatch}
 PASS: ./myec2c {-o stopwatch.c stopwatch.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node stopwatch.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc stopwatch.lus {}
 PASS: ./lus2lic {} {-lic -o struct0.lic struct0.lus -n struct0}
 PASS: ./lus2lic {-ec -o struct0.ec struct0.lus -n struct0}
 PASS: ./myec2c {-o struct0.c struct0.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node struct0.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc struct0.lus {}
 PASS: ./lus2lic {} {-lic -o struct_equality.lic struct_equality.lus -n struct_equality}
 PASS: ./lus2lic {-ec -o struct_equality.ec struct_equality.lus -n struct_equality}
 PASS: ./myec2c {-o struct_equality.c struct_equality.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node struct_equality.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc struct_equality.lus {}
 PASS: ./lus2lic {} {-lic -o struct_with.lic struct_with.lus -n struct_with}
 PASS: ./lus2lic {-ec -o struct_with.ec struct_with.lus -n struct_with}
 PASS: ./myec2c {-o struct_with.c struct_with.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node struct_with.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc struct_with.lus {}
 PASS: ./lus2lic {} {-lic -o t0.lic t0.lus -n t0}
 PASS: ./lus2lic {-ec -o t0.ec t0.lus -n t0}
 PASS: ./myec2c {-o t0.c t0.ec}
@@ -2022,14 +2197,17 @@ PASS: ./lus2lic {} {-lic -o t1.lic t1.lus -n t1}
 PASS: ./lus2lic {-ec -o t1.ec t1.lus -n t1}
 PASS: ./myec2c {-o t1.c t1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node t1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc t1.lus {}
 PASS: ./lus2lic {} {-lic -o t2.lic t2.lus -n t2}
 PASS: ./lus2lic {-ec -o t2.ec t2.lus -n t2}
 PASS: ./myec2c {-o t2.c t2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node t2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc t2.lus {}
 PASS: ./lus2lic {} {-lic -o test.lic test.lus -n test}
 PASS: ./lus2lic {-ec -o test.ec test.lus -n test}
 PASS: ./myec2c {-o test.c test.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test.lus {}
 PASS: ./lus2lic {} {-lic -o testBoite.lic testBoite.lus -n testBoite}
 PASS: ./lus2lic {-ec -o testBoite.ec testBoite.lus -n testBoite}
 PASS: ./myec2c {-o testBoite.c testBoite.ec}
@@ -2037,6 +2215,7 @@ PASS: ./lus2lic {} {-lic -o testCA.lic testCA.lus -n testCA}
 PASS: ./lus2lic {-ec -o testCA.ec testCA.lus -n testCA}
 PASS: ./myec2c {-o testCA.c testCA.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node testCA.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc testCA.lus {}
 PASS: ./lus2lic {} {-lic -o testCapt.lic testCapt.lus -n testCapt}
 PASS: ./lus2lic {-ec -o testCapt.ec testCapt.lus -n testCapt}
 PASS: ./myec2c {-o testCapt.c testCapt.ec}
@@ -2050,10 +2229,12 @@ PASS: ./lus2lic {} {-lic -o test_arrow.lic test_arrow.lus -n test_arrow}
 PASS: ./lus2lic {-ec -o test_arrow.ec test_arrow.lus -n test_arrow}
 PASS: ./myec2c {-o test_arrow.c test_arrow.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_arrow.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_arrow.lus {}
 PASS: ./lus2lic {} {-lic -o test_boolred.lic test_boolred.lus -n test_boolred}
 PASS: ./lus2lic {-ec -o test_boolred.ec test_boolred.lus -n test_boolred}
 PASS: ./myec2c {-o test_boolred.c test_boolred.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_boolred.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_boolred.lus {}
 PASS: ./lus2lic {} {-lic -o test_clash.lic test_clash.lus -n test_clash}
 PASS: ./lus2lic {-ec -o test_clash.ec test_clash.lus -n test_clash}
 PASS: ./myec2c {-o test_clash.c test_clash.ec}
@@ -2061,14 +2242,17 @@ PASS: ./lus2lic {} {-lic -o test_condact.lic test_condact.lus -n test_condact}
 PASS: ./lus2lic {-ec -o test_condact.ec test_condact.lus -n test_condact}
 PASS: ./myec2c {-o test_condact.c test_condact.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_condact.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_condact.lus {}
 PASS: ./lus2lic {} {-lic -o test_const.lic test_const.lus -n test_const}
 PASS: ./lus2lic {-ec -o test_const.ec test_const.lus -n test_const}
 PASS: ./myec2c {-o test_const.c test_const.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_const.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_const.lus {}
 PASS: ./lus2lic {} {-lic -o test_diese.lic test_diese.lus -n test_diese}
 PASS: ./lus2lic {-ec -o test_diese.ec test_diese.lus -n test_diese}
 PASS: ./myec2c {-o test_diese.c test_diese.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_diese.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_diese.lus {}
 PASS: ./lus2lic {} {-lic -o test_enum.lic test_enum.lus -n test_enum}
 PASS: ./lus2lic {-ec -o test_enum.ec test_enum.lus -n test_enum}
 PASS: ./myec2c {-o test_enum.c test_enum.ec}
@@ -2082,6 +2266,7 @@ PASS: ./lus2lic {} {-lic -o test_map.lic test_map.lus -n test_map}
 PASS: ./lus2lic {-ec -o test_map.ec test_map.lus -n test_map}
 PASS: ./myec2c {-o test_map.c test_map.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_map.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc test_map.lus {}
 PASS: ./lus2lic {} {-lic -o test_merge.lic test_merge.lus -n test_merge}
 PASS: ./lus2lic {-ec -o test_merge.ec test_merge.lus -n test_merge}
 PASS: ./lus2lic {} {-lic -o test_model.lic test_model.lus -n test_model}
@@ -2094,14 +2279,17 @@ PASS: ./lus2lic {} {-lic -o test_node_expand.lic test_node_expand.lus -n test_no
 PASS: ./lus2lic {-ec -o test_node_expand.ec test_node_expand.lus -n test_node_expand}
 PASS: ./myec2c {-o test_node_expand.c test_node_expand.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_node_expand.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_node_expand.lus {}
 PASS: ./lus2lic {} {-lic -o test_node_expand2.lic test_node_expand2.lus -n test_node_expand2}
 PASS: ./lus2lic {-ec -o test_node_expand2.ec test_node_expand2.lus -n test_node_expand2}
 PASS: ./myec2c {-o test_node_expand2.c test_node_expand2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_node_expand2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_node_expand2.lus {}
 PASS: ./lus2lic { -rnc} {-lic -o test_poly.lic test_poly.lus -n test_poly}
 PASS: ./lus2lic {-ec -o test_poly.ec test_poly.lus -n test_poly}
 PASS: ./myec2c {-o test_poly.c test_poly.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_poly.lus { -rnc}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_poly.lus { -rnc}
 PASS: ./lus2lic {} {-lic -o test_sqrt.lic test_sqrt.lus -n test_sqrt}
 PASS: ./lus2lic {-ec -o test_sqrt.ec test_sqrt.lus -n test_sqrt}
 PASS: ./myec2c {-o test_sqrt.c test_sqrt.ec}
@@ -2109,54 +2297,67 @@ PASS: ./lus2lic {} {-lic -o test_struct.lic test_struct.lus -n test_struct}
 PASS: ./lus2lic {-ec -o test_struct.ec test_struct.lus -n test_struct}
 PASS: ./myec2c {-o test_struct.c test_struct.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node test_struct.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc test_struct.lus {}
 PASS: ./lus2lic {} {-lic -o titi.lic titi.lus -n titi}
 PASS: ./lus2lic {-ec -o titi.ec titi.lus -n titi}
 PASS: ./myec2c {-o titi.c titi.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node titi.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc titi.lus {}
 PASS: ./lus2lic {} {-lic -o toolate.lic toolate.lus -n toolate}
 PASS: ./lus2lic {-ec -o toolate.ec toolate.lus -n toolate}
 PASS: ./myec2c {-o toolate.c toolate.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node toolate.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc toolate.lus {}
 PASS: ./lus2lic {} {-lic -o toto.lic toto.lus -n toto}
 PASS: ./lus2lic {-ec -o toto.ec toto.lus -n toto}
 PASS: ./myec2c {-o toto.c toto.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node toto.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc toto.lus {}
 PASS: ./lus2lic {} {-lic -o tranche.lic tranche.lus -n tranche}
 PASS: ./lus2lic {-ec -o tranche.ec tranche.lus -n tranche}
 PASS: ./myec2c {-o tranche.c tranche.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node tranche.lus {}
+FAIL: Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c: /home/jahier/lus2lic/test/../utils/check_knc tranche.lus {}
 PASS: ./lus2lic {} {-lic -o tri.lic tri.lus -n tri}
 PASS: ./lus2lic {-ec -o tri.ec tri.lus -n tri}
 PASS: ./myec2c {-o tri.c tri.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node tri.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc tri.lus {}
 PASS: ./lus2lic {} {-lic -o triSel.lic triSel.lus -n triSel}
 PASS: ./lus2lic {-ec -o triSel.ec triSel.lus -n triSel}
 PASS: ./myec2c {-o triSel.c triSel.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node triSel.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc triSel.lus {}
 PASS: ./lus2lic {} {-lic -o trivial.lic trivial.lus -n trivial}
 PASS: ./lus2lic {-ec -o trivial.ec trivial.lus -n trivial}
 PASS: ./myec2c {-o trivial.c trivial.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node trivial.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc trivial.lus {}
 PASS: ./lus2lic {} {-lic -o trivial2.lic trivial2.lus -n trivial2}
 PASS: ./lus2lic {-ec -o trivial2.ec trivial2.lus -n trivial2}
 PASS: ./myec2c {-o trivial2.c trivial2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node trivial2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc trivial2.lus {}
 PASS: ./lus2lic {} {-lic -o trivial_array.lic trivial_array.lus -n trivial_array}
 PASS: ./lus2lic {-ec -o trivial_array.ec trivial_array.lus -n trivial_array}
 PASS: ./myec2c {-o trivial_array.c trivial_array.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node trivial_array.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc trivial_array.lus {}
 PASS: ./lus2lic {} {-lic -o ts01.lic ts01.lus -n ts01}
 PASS: ./lus2lic {-ec -o ts01.ec ts01.lus -n ts01}
 PASS: ./myec2c {-o ts01.c ts01.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ts01.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ts01.lus {}
 PASS: ./lus2lic {} {-lic -o ts04.lic ts04.lus -n ts04}
 PASS: ./lus2lic {-ec -o ts04.ec ts04.lus -n ts04}
 PASS: ./myec2c {-o ts04.c ts04.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ts04.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc ts04.lus {}
 PASS: ./lus2lic {} {-lic -o tuple.lic tuple.lus -n tuple}
 PASS: ./lus2lic {-ec -o tuple.ec tuple.lus -n tuple}
 PASS: ./myec2c {-o tuple.c tuple.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node tuple.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc tuple.lus {}
 PASS: ./lus2lic {} {-lic -o type_decl.lic type_decl.lus -n type_decl}
 PASS: ./lus2lic {-ec -o type_decl.ec type_decl.lus -n type_decl}
 PASS: ./myec2c {-o type_decl.c type_decl.ec}
@@ -2164,10 +2365,12 @@ PASS: ./lus2lic {} {-lic -o uu.lic uu.lus -n uu}
 PASS: ./lus2lic {-ec -o uu.ec uu.lus -n uu}
 PASS: ./myec2c {-o uu.c uu.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node uu.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc uu.lus {}
 PASS: ./lus2lic {} {-lic -o v1.lic v1.lus -n v1}
 PASS: ./lus2lic {-ec -o v1.ec v1.lus -n v1}
 PASS: ./myec2c {-o v1.c v1.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node v1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc v1.lus {}
 PASS: ./lus2lic {} {-lic -o when_tuple.lic when_tuple.lus -n when_tuple}
 PASS: ./lus2lic {-ec -o when_tuple.ec when_tuple.lus -n when_tuple}
 PASS: ./myec2c {-o when_tuple.c when_tuple.ec}
@@ -2175,18 +2378,22 @@ PASS: ./lus2lic {} {-lic -o xx.lic xx.lus -n xx}
 PASS: ./lus2lic {-ec -o xx.ec xx.lus -n xx}
 PASS: ./myec2c {-o xx.c xx.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node xx.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc xx.lus {}
 PASS: ./lus2lic {} {-lic -o yyy.lic yyy.lus -n yyy}
 PASS: ./lus2lic {-ec -o yyy.ec yyy.lus -n yyy}
 PASS: ./myec2c {-o yyy.c yyy.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node yyy.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc yyy.lus {}
 PASS: ./lus2lic {} {-lic -o zzz.lic zzz.lus -n zzz}
 PASS: ./lus2lic {-ec -o zzz.ec zzz.lus -n zzz}
 PASS: ./myec2c {-o zzz.c zzz.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc zzz.lus {}
 PASS: ./lus2lic {} {-lic -o zzz2.lic zzz2.lus -n zzz2}
 PASS: ./lus2lic {-ec -o zzz2.ec zzz2.lus -n zzz2}
 PASS: ./myec2c {-o zzz2.c zzz2.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/check_knc zzz2.lus {}
 ==> lus2lic0.sum <==
 
 		=== lus2lic0 Summary ===
@@ -2211,24 +2418,24 @@ PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang multipar.lus {}
 ==> lus2lic3.sum <==
 		=== lus2lic3 Summary ===
 
-# of expected passes		497
-# of unexpected failures	8
+# of expected passes		587
+# of unexpected failures	27
 # of unresolved testcases	1
 
 ==> lus2lic4.sum <==
 
 		=== lus2lic4 Summary ===
 
-# of expected passes		475
-# of unexpected failures	6
+# of expected passes		567
+# of unexpected failures	12
 ===============================
-# Total number of failures: 17
-lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 2 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 226 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 253 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 73 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 54 seconds
+# Total number of failures: 42
+lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 3 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 349 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 379 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 137 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 146 seconds
 * Ref time: 
-216.58user 76.77system 10:08.93elapsed 48%CPU (0avgtext+0avgdata 99436maxresident)k
-91200inputs+573904outputs (501major+20940476minor)pagefaults 0swaps
+388.84user 129.85system 16:56.04elapsed 51%CPU (0avgtext+0avgdata 99624maxresident)k
+24712inputs+747336outputs (173major+28480167minor)pagefaults 0swaps
 * Quick time (-j 4):
diff --git a/test/lus2lic.tests/test1.exp b/test/lus2lic.tests/test1.exp
index e6ab88c3ee83575c761ea4cfba495378f2c62500..fccd8ff0e20b77eb615ee43d49e9a41ec824d0af 100644
--- a/test/lus2lic.tests/test1.exp
+++ b/test/lus2lic.tests/test1.exp
@@ -1,11 +1,12 @@
 
 set timeout 30
 
+# do half of the test (to be able to run the other half in parallel)
 # for some reason [glob should_work/[a-n]*.lus] does not work
 set ok_files [lsort [glob should_work/{a,b,c,d,e,f,g,h,i,j,k,l,m,A,B,C,D,E,F,G,H,I,J,K,L,M}*.lus]]
 
 # should be a fresh dir...
 set tmp [pwd]/tmp1/
 
-
-nonreg_exec_and_2c $ok_files $tmp
+# cf site.exp
+nonreg_pass1 $ok_files $tmp
diff --git a/test/lus2lic.tests/test2.exp b/test/lus2lic.tests/test2.exp
index 50db445da11dd186fb66f4dfb674c816ff93580b..3f10bad370b38d5c000572a7b50006644530c432 100644
--- a/test/lus2lic.tests/test2.exp
+++ b/test/lus2lic.tests/test2.exp
@@ -1,12 +1,12 @@
 
 set timeout 40
 
+# do half of the test (to be able to run the other half in parallel)
 # for some reason [glob should_work/[a-n]*.lus] does not work
 set ok_files [lsort [glob should_work/{n,o,p,q,r,s,t,u,v,w,x,y,z,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}*.lus]]
 
-
 # should be a fresh dir...
 set tmp ./tmp1/
 
-
-nonreg_exec_and_2c $ok_files $tmp
+# cf site.exp
+nonreg_pass1 $ok_files $tmp
diff --git a/test/lus2lic.tests/test3.exp b/test/lus2lic.tests/test3.exp
index 4d6f8b074b1b50af5f275f5e4222633232ae3279..7945e4067179d2beef6a45c6146306c8c99399c8 100644
--- a/test/lus2lic.tests/test3.exp
+++ b/test/lus2lic.tests/test3.exp
@@ -1,11 +1,12 @@
 
 set timeout 30
 
+# do half of the test (to be able to run the other half in parallel)
 # for some reason [glob should_work/[a-n]*.lus] does not work
 set ok_files [lsort [glob should_work/{a,b,c,d,e,f,g,h,i,j,k,l,m,A,B,C,D,E,F,G,H,I,J,K,L,M}*.lus]]
 
 # should be a fresh dir...
 set tmp ./tmp2/
 
-
-nonreg_exec_and_ecexe $ok_files $tmp 
+# cf site.exp
+nonreg_pass2 $ok_files $tmp
diff --git a/test/lus2lic.tests/test4.exp b/test/lus2lic.tests/test4.exp
index 63dfbfcef7be0fc69ece0c4fc964d6a5e7d0b09e..b55989c3127b69ff7d56d316f4288da67035dd4d 100644
--- a/test/lus2lic.tests/test4.exp
+++ b/test/lus2lic.tests/test4.exp
@@ -1,12 +1,12 @@
 
 set timeout 40
 
+# do half of the test (to be able to run the other half in parallel)
 # for some reason [glob should_work/[a-n]*.lus] does not work
 set ok_files [lsort [glob should_work/{n,o,p,q,r,s,t,u,v,w,x,y,z,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}*.lus]]
 
-
 # should be a fresh dir...
 set tmp ./tmp2/
 
-
-nonreg_exec_and_ecexe $ok_files $tmp 
+# cf site.exp
+nonreg_pass2 $ok_files $tmp
diff --git a/test/site.exp b/test/site.exp
index 2f58343f183836df69fb6aef365da791d2efa472..2b5fb4963b247d76b10f851b42fb60715464e8a4 100644
--- a/test/site.exp
+++ b/test/site.exp
@@ -1,5 +1,5 @@
-# Time-stamp: <modified the 23/03/2022 (at 09:47) by Erwan Jahier> 
-# 
+# Time-stamp: <modified the 29/05/2024 (at 10:15) by Erwan Jahier>
+#
 # (nonreg-)test harness main file
 
 set testdir [pwd]
@@ -11,6 +11,7 @@ set test_lus2lic_no_node "$testdir/../utils/test_lus2lic_no_node"
 set compare_exec_and_2c "$testdir/../utils/compare_exec_and_2c"
 set compare_lv6_and_lv6_en "$testdir/../utils/compare_lv6_and_lv6_en"
 set compare_gcc_and_clang "$testdir/../utils/compare_gcc_and_clang"
+set check_knc "$testdir/../utils/check_knc"
 set timeout 10
 
 proc should_work { test_name command_line args } {
@@ -26,7 +27,7 @@ proc should_work { test_name command_line args } {
         send_user "starting $command_line\n"
     }
     # Running the program.
-    eval spawn $command_line {*}$args  
+    eval spawn $command_line {*}$args
     set pid [exp_pid]
     puts "PID: $pid ($command_line $args)"
     expect {
@@ -80,7 +81,7 @@ proc should_work { test_name command_line args } {
             set failed 1
             exp_continue
         }
-        # to avoid that match_max (the expect buffer size) is reached 
+        # to avoid that match_max (the expect buffer size) is reached
         # which truncate the outputs
         "\n" {
             exp_continue
@@ -124,7 +125,7 @@ proc should_fail { test_name fail_kind command_line args } {
         }
         eof {
             if $failed {
-                xfail "$test_name ($fail_kind): $cl $args" 
+                xfail "$test_name ($fail_kind): $cl $args"
             } else {
                 xpass "$test_name ($fail_kind): $cl $args"
             }
@@ -154,7 +155,7 @@ proc does_not_contain_string {f str} {
 
 proc does_not_contain_left_slices {f} {
     set lines [fileutil::grep "\\.\\..*=" $f]
-    
+
     set occ  [llength $lines]
     if { ($occ == 1 ) } { puts " $f contains $occ occurence of left slices" }
     if { ($occ > 1 ) } { puts " $f contains $occ occurence(s) of left slices" }
@@ -166,24 +167,24 @@ proc does_not_contain_left_slices {f} {
 
 
 # do no try to use lurette on files that contains extern nodes or package.
-# Package won't work  because appending the tested lustre file with the 
+# Package won't work  because appending the tested lustre file with the
 # generated oracle as I do is wrong in presence of package (fixme)
 proc do_ecexe_vs_exec {f} {
-    if { 
+    if {
         [does_not_contain_string "$f" "enum "] &&
         [does_not_contain_string "$f" "extern"] &&
-        [does_not_contain_string "$f" "package"] 
-    } { 
+        [does_not_contain_string "$f" "package"]
+    } {
         return 1
     }
     return 0
 }
 
 proc do_2c {f} {
-    if { 
+    if {
         [does_not_contain_string "$f" "extern"] &&
-        [does_not_contain_string "$f" "package"] 
-    } { 
+        [does_not_contain_string "$f" "package"]
+    } {
         return 1
     }
     return 0
@@ -216,7 +217,7 @@ proc get_next_free_port {port} {
 # get the option (to pass to lus2lic) at the first line of the lustre file
 proc read_opt {f} {
     set oc [open $f]
-    set line [gets $oc]  
+    set line [gets $oc]
     set res ""
     if { [string range $line 0 9] == "-- nonreg:" } {
         set res [string range $line  10 end]
@@ -224,13 +225,16 @@ proc read_opt {f} {
     return $res
 }
 
-### Compare the result of lv6 -exec vs lv6 -2c, and the result of lv6 -2c with and without -en
-proc nonreg_exec_and_2c {files tmp} {
+### Compare the result of
+###     - lv6 -exec vs lv6 -2c
+###     - lv6 -2c with and without -en
+###     - lv6 -2  using clang or gcc
+proc nonreg_pass1 {files tmp} {
     global lus2lic
     global compare_exec_and_2c
     global compare_lv6_and_lv6_en
     global compare_gcc_and_clang
-    
+
     foreach f $files {
         eval spawn "cp -f $f $tmp"
     }
@@ -248,14 +252,14 @@ proc nonreg_exec_and_2c {files tmp} {
         if { [nonemptyfile "$bf.lic"] &&  [does_not_contain_left_slices "$f"] } {
             set id1 [should_work "Generate c code  " "$lus2lic $opt" "-2c $f -n $node"]
             wait -i $id1
-        
+
             if { [nonemptyfile "${node}_${node}.c"]  && [do_2c "$f"] } {
                 set id2 [should_work "Check that the generated C code compiles  " \
                              "sh ${node}.sh"]
                 wait -i $id2
                 catch { exp_close -i $id2 }
                 catch { exp_wait  -i $id2 } output
-            
+
                 if { [nonemptyfile "${node}.exec"] && [do_2c "$f"] } {
                     set id3 [should_work "Try to compare lus2lic -exec and -2c" \
                                  "$compare_exec_and_2c" "$f" "$port" "$opt"]
@@ -281,11 +285,19 @@ proc nonreg_exec_and_2c {files tmp} {
 }
 
 
-### Compare the result of lv6 -exec vs lv6 -ec+ecexe
-proc nonreg_exec_and_ecexe {files tmp} {
+### Check the generation of
+###  - lic
+###  - ec
+###  - c
+### Compare the result of
+###  - lv6 -exec vs lv6 -ec+ecexe
+###  - lv6 -exec vs lv6 -exec -knc
+###  - lv6 -exec vs lv6 -exec -knpc
+proc nonreg_pass2 {files tmp} {
     global lus2lic
     global ec2c
     global test_lus2lic_no_node
+    global check_knc
 
     foreach f $files {
         eval spawn "cp -f $f $tmp"
@@ -304,20 +316,27 @@ proc nonreg_exec_and_ecexe {files tmp} {
         if { [nonemptyfile "$bf.lic"] } {
             set id2 [should_work "Generate ec code  " "$lus2lic" "-ec -o $bf.ec $f -n $node"]
             wait -i $id2
-        
+
             if { [nonemptyfile "$bf.ec"] && [does_not_contain_string "$f" "merge"] } {
                 set id3 [should_work "Try ec2c on the result" "$ec2c" "-o $bf.c $bf.ec"]
                 wait -i $id3
                 catch { exp_close -i $id3 }
                 catch { exp_wait  -i $id3 } output
             }
-        
+
             if { [nonemptyfile "$bf.c"] && [do_ecexe_vs_exec "$f"] } {
                 set id4 [should_work "Try to compare lus2lic -exec and ecexe" \
                          "$test_lus2lic_no_node" "$f"  "$opt"]
                 catch { exp_close -i $id4 }
                 catch { exp_wait  -i $id4 } output
+
+		set id5 [should_work "Try to compare lv6 -2c vs lv6 -knc/-knpc -lv4 |lv6 -2c" \
+			     "$check_knc" "$f" "$opt"]
+		catch { exp_close -i $id5 }
+		catch { exp_wait  -i $id5 } output
+
             }
+
             catch { exp_close -i $id2 }
             catch { exp_wait  -i $id2 } output
         }
@@ -326,4 +345,3 @@ proc nonreg_exec_and_ecexe {files tmp} {
     }
     return 0
 }
-
diff --git a/utils/check_knc b/utils/check_knc
new file mode 100755
index 0000000000000000000000000000000000000000..38548d9c360ea17f0c9097dd840ce503d4f01234
--- /dev/null
+++ b/utils/check_knc
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+# compares with lurette the results of:
+#   lv6 -2c
+#   lv6 -knc  -lv4 | lv6 -2c
+#   lv6 -knpc -lv4 | lv6 -2c
+
+
+lustre_file=$1
+OPT=$2
+
+node=`basename $lustre_file .lus`
+_oracle=_"$node"_oracle.lus
+oracle="$node"_oracle
+lv4="$node"_lv4.lus
+ec="$node".ec
+lv4_node="$node__$node"
+env=_"$node"_env.lut
+env_node="$node"_env
+tmpdir=/tmp/lustre-test-$node
+v4_knc=$tmpdir/"$node"_knc
+v4_knpc=$tmpdir/"$node"_knpc
+
+. /home/jahier/.opam/opam-init/variables.sh
+set -x verbose #echo on
+
+# _$node_env.lut, $node.exec, etc have already been generated by compare_exec_and_2c
+
+if
+    [ -f $env_node ];
+then
+   echo "$env_node generated"
+
+else if
+     ./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
+     cat $lustre_file  >> $_oracle;
+then
+     echo "./lus2lic $OPT $lustre_file -n $node --gen-autotest -np: ok"
+else
+    echo "Error"
+    exit 2
+fi
+fi
+
+# generate oracle exec
+if
+    ./lus2lic -dir $tmpdir $OPT $_oracle -n $oracle  -np -2c -cc -o $tmpdir/$oracle.exec;
+then
+    echo "lus2lic -dir $tmpdir $OPT $_oracle -n $oracle  -np -2c -cc -o $tmpdir/$oracle.exec: done"
+else
+    echo "lus2lic -dir $tmpdir $OPT $_oracle -n $oracle  -np -2c -cc -o $tmpdir/$oracle.exec: Error"
+    exit 2
+fi
+
+# generate exec via -lv4 file using -knc
+if
+    ./lus2lic -dir $tmpdir $OPT $lustre_file -n $node -lv4 -knc -np -o $v4_knc.lus;
+then
+    echo "lus2lic -dir $tmpdir $OPT $lustre_file -n $node -lv4 -knc -np -o $v4_knc.lus:  done"
+else
+    echo "lus2lic -dir $tmpdir $OPT $lustre_file -n $node -lv4 -knc -np -o $v4_knc.lus: error"
+    exit 2
+fi
+if
+    ./lus2lic -dir $tmpdir $OPT $v4_knc.lus -n $node  -2c -cc -o $v4_knc.exec;
+then
+    echo "lus2lic -dir $tmpdir $OPT $v4_knc.lus -n $node -2c -cc -o $v4_knc.exec: done"
+else
+    echo "lus2lic -dir $tmpdir $OPT $v4_knc.lus -n $node -2c -cc -o $v4_knc.exec: error"
+    exit 2
+fi
+
+# generate exec via -lv4 file using -knpc
+if
+    ./lus2lic -dir $tmpdir $OPT $lustre_file -n $node -lv4 -knc -np -o $v4_knpc.lus;
+then
+    echo "lus2lic -dir $tmpdir $OPT $lustre_file -n $node -lv4 -knc -np -o $v4_knpc.lus: done"
+else
+    echo "lus2lic -dir $tmpdir $OPT $lustre_file -n $node -lv4 -knc -np -o $v4_knpc.lus: error"
+    exit 2
+fi
+if
+    ./lus2lic -dir $tmpdir $OPT $v4_knpc.lus -n $node  -2c -cc -o $v4_knpc.exec;
+then
+    echo "lus2lic -dir $tmpdir $OPT $v4_knpc.lus -n $node  -2c -cc -o $v4_knpc.exec: done"
+else
+    echo "lus2lic -dir $tmpdir $OPT $v4_knpc.lus -n $node  -2c -cc -o $v4_knpc.exec: error"
+    exit 2
+fi
+
+
+
+
+
+PRECISION=4
+if
+    lurette -l 10   \
+        -sut "$v4_knc.exec " \
+        -env "lutin $env -n $env_node -p $PRECISION -seed 42" \
+        -oracle "$tmpdir/$oracle.exec";
+then
+    echo "Comparison of 'lv6 -2c' and 'lv6 -lv4 -knc | lv6 -2c' with lurette on $lustre_file: ok"
+    echo "lurette ok"
+else
+    echo "error"
+     exit 2
+fi
+if
+    lurette -l 10   \
+        -sut "$v4_knpc.exec " \
+        -env "lutin $env -n $env_node -p $PRECISION -seed 42" \
+        -oracle "$tmpdir/$oracle.exec";
+then
+    echo "Comparison of  'lv6 -2c' and 'lv6 -lv4 -knpc | lv6 -2c' with lurette on $lustre_file: ok"
+    echo "lurette ok"
+else
+    echo "error"
+     exit 2
+fi
+exit 0
diff --git a/utils/compare_gcc_and_clang b/utils/compare_gcc_and_clang
index 35f5022b8c8fa3668fbafe2235acf4880bffd5b4..05e5f840ab992015a88286474864d703b1c5b426 100755
--- a/utils/compare_gcc_and_clang
+++ b/utils/compare_gcc_and_clang
@@ -32,13 +32,13 @@ set -x verbose #echo on
 if
     [ -f $env_node ];
 then
-   echo "$env_node generated" 
-    
+   echo "$env_node generated"
+
 else if
      ./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
      cat $lustre_file  >> $_oracle;
 then
-     echo "./lus2lic $OPT $lustre_file -n $node --gen-autotest -np: ok" 
+     echo "./lus2lic $OPT $lustre_file -n $node --gen-autotest -np: ok"
 else
     echo "Error"
     exit 2
@@ -46,7 +46,7 @@ fi
 fi
 
 if
-    export C_COMPILER="gcc -g -O -Wall"  && ./lus2lic -dir /tmp/lustre-test-gcc-$lustre_file-$node $OPT $lustre_file -n $node -en -2c -cc -o ${node}_gcc.exec;    
+    export C_COMPILER="gcc -g -O -Wall"  && ./lus2lic -dir /tmp/lustre-test-gcc-$lustre_file-$node $OPT $lustre_file -n $node -en -2c -cc -o ${node}_gcc.exec;
 then
     echo "lus2lic -2c done"
 else
@@ -71,7 +71,7 @@ if
         -env "lutin $env -n $env_node -p $PRECISION -seed 42" \
         -oracle "valgrind --log-file=${node}_oracle-clang-valgrind.log ./${node}_oracle_clang.exec";
 then
-    echo "Comparison of gcc and clangd with lurette on $lustre_file: ok"
+    echo "Comparison of gcc and clang with lurette on $lustre_file: ok"
     echo "lurette ok"
 else
     echo "error"