From 87b6229e6172f206cb233e55d3e2dc8ef458caf8 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Thu, 19 May 2011 16:49:41 +0200
Subject: [PATCH] When inventing name of nodes (during static arg
 instanciation), do not use the module name. Otherwise, names with "::" are
 created, and sometimes the lhs of the "::" does not even correpond to an
 existing module.

---
 release-lv6/Makefile      |   9 +-
 src/compile.ml            |  66 +++----
 src/licDump.ml            |  16 +-
 src/main.ml               |   5 +-
 src/name.ml               |   2 +-
 src/test/Makefile         |  46 ++---
 src/test/test.res.exp     | 356 ++++++++++++++++----------------------
 src/test/test_ec.res.exp  |   7 +-
 src/test/test_lv4.res.exp |  94 +++++-----
 9 files changed, 281 insertions(+), 320 deletions(-)

diff --git a/release-lv6/Makefile b/release-lv6/Makefile
index 493ddf11..1f416178 100644
--- a/release-lv6/Makefile
+++ b/release-lv6/Makefile
@@ -12,12 +12,17 @@ endif
 VERSION=R0.$(shell $(LUS2LIC) -version  | cut -d "." -f 2)
 
 RELNAME_PREFIX=lv6-alpha-$(VERSION)
-RELNAME=$(RELNAME_PREFIX)-$(shell date +%d-%m-%y)-$(shell uname)
+
+RELNAME=$(RELNAME_PREFIX)-$(shell date +%d-%m-%y)-$(HOSTTYPE)
 
 
 release: $(RELNAME) doc lus2lic test_files $(RELNAME).tgz
 rel:release
 
+xxx:
+	echo "RELNAME_PREFIX='$(RELNAME_PREFIX)'"
+
+
 .PHONY: $(RELNAME)
 $(RELNAME):
 	rm -rf $(RELNAME)  || true
@@ -51,7 +56,7 @@ test_files:
 
 
 $(RELNAME).tgz:
-	tar cvfz  $(RELNAME).tgz $(RELNAME) 
+	tar cvfz $(RELNAME).tgz $(RELNAME) 
 
 www:  $(RELNAME).tgz
 	cp $(RELNAME).tgz $(WWW_DIR)
diff --git a/src/compile.ml b/src/compile.ml
index 203a36fc..27557a13 100644
--- a/src/compile.ml
+++ b/src/compile.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 23/01/2009 (at 09:28) by Erwan Jahier> *)
+(** Time-stamp: <modified the 19/05/2011 (at 11:28) by Erwan Jahier> *)
 
 
 open Lxm
@@ -16,37 +16,37 @@ let rec first_pack_in =
 let (doit : SyntaxTree.pack_or_model list -> Ident.idref option -> unit) = 
   fun srclist main_node ->
 
-  let syntax_tab = SyntaxTab.create srclist in
-    (* Pour chaque package, on a un solveur de références
-       globales, pour les types, const et node :
-       - les références pointées (p::n) sont recherchées
-       directement dans la syntax_tab puisqu'il n'y a pas 
-       d'ambiguité
-       - les références simples sont recherchées :
-       . dans le pack lui-même
-       . dans un des packs déclarés "uses", avec
-       priorité dans l'ordre
-    *)
-  let lzcomp = LazyCompiler.create syntax_tab in
-    if Verbose.get_level () > 2 then SyntaxTab.dump syntax_tab;
-    Ident.set_dft_pack_name (first_pack_in srclist);
+    let syntax_tab = SyntaxTab.create srclist in
+      (* Pour chaque package, on a un solveur de références
+         globales, pour les types, const et node :
+         - les références pointées (p::n) sont recherchées
+         directement dans la syntax_tab puisqu'il n'y a pas 
+         d'ambiguité
+         - les références simples sont recherchées :
+         . dans le pack lui-même
+         . dans un des packs déclarés "uses", avec
+         priorité dans l'ordre
+      *)
+    let lzcomp = LazyCompiler.create syntax_tab in
+      if Verbose.get_level () > 2 then SyntaxTab.dump syntax_tab;
+      Ident.set_dft_pack_name (first_pack_in srclist);
 
-    match main_node with
-      | None -> LazyCompiler.compile_all lzcomp
-      | Some main_node -> 
-          (* la clée "absolue" du main node (pas d'args statiques) *)
-          let main_node_key = 
-            Eff.make_simple_node_key (Ident.long_of_idref main_node) 
-          in
-            Verbose.printf 
-              "-- MAIN NODE: \"%s\"\n" 
-              (LicDump.string_of_node_key_rec main_node_key);
-            
-            if !Global.compile_all_items then
-              LazyCompiler.compile_all lzcomp
-            else
-              ignore(LazyCompiler.node_check lzcomp main_node_key 
-                       (match Ident.pack_of_idref main_node with 
-                          | None -> Lxm.dummy "" 
-                          | Some pn  -> Lxm.dummy (Ident.pack_name_to_string pn)))
+      match main_node with
+        | None -> LazyCompiler.compile_all lzcomp
+        | Some main_node -> 
+            (* la clée "absolue" du main node (pas d'args statiques) *)
+            let main_node_key = 
+              Eff.make_simple_node_key (Ident.long_of_idref main_node) 
+            in
+              Verbose.printf 
+                "-- MAIN NODE: \"%s\"\n" 
+                (LicDump.string_of_node_key_rec main_node_key);
+              
+              if !Global.compile_all_items then
+                LazyCompiler.compile_all lzcomp
+              else
+                ignore(LazyCompiler.node_check lzcomp main_node_key 
+                         (match Ident.pack_of_idref main_node with 
+                            | None -> Lxm.dummy "" 
+                            | Some pn  -> Lxm.dummy (Ident.pack_name_to_string pn)))
                 
diff --git a/src/licDump.ml b/src/licDump.ml
index b113b6ac..df8f4593 100644
--- a/src/licDump.ml
+++ b/src/licDump.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 03/11/2010 (at 15:00) by Erwan Jahier> *)
+(** Time-stamp: <modified the 19/05/2011 (at 16:45) by Erwan Jahier> *)
 
 open Printf
 open Lxm
@@ -242,9 +242,9 @@ and string_of_node_key_rec (nkey: node_key) =
   match nkey with
     | (ik, []) -> dump_long ik
     | (ik, salst) ->
-        let astrings = List.map static_arg2string salst in
-	let name = sprintf "%s_%s" (dump_long ik) (String.concat "_" astrings) in
-          Name.node_key nkey name
+        let astrings = List.map static_arg2string_bis salst in
+	let name = sprintf "%s_%s" (Ident.no_pack_string_of_long ik) (String.concat "_" astrings) in
+          (Name.node_key nkey name)
 
 (* for printing iterators *)
 and string_of_node_key_iter lxm (nkey: node_key) = 
@@ -254,6 +254,14 @@ and string_of_node_key_iter lxm (nkey: node_key) =
 	let astrings = List.map (static_arg2string) salst in
 	  sprintf "%s<<%s>>" (dump_long ik) (String.concat ", " astrings)
 
+(* for inventing a name to parametrized nodes *)
+and static_arg2string_bis (sa : Eff.static_arg) =
+  match sa with
+    | ConstStaticArgEff (id, ceff) -> sprintf "%s" (string_ident_of_const_eff ceff)
+    | TypeStaticArgEff  (id, teff) -> sprintf "%s" (string_of_type_eff teff)
+    | NodeStaticArgEff  (id, (long, _, _)) ->
+	sprintf "%s" (Ident.no_pack_string_of_long long)
+
 (* for printing recursive node and iterators *)
 and static_arg2string (sa : Eff.static_arg) =
   match sa with
diff --git a/src/main.ml b/src/main.ml
index f866f575..897f154c 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 03/11/2010 (at 14:15) by Erwan Jahier> *)
+(** Time-stamp: <modified the 19/05/2011 (at 11:24) by Erwan Jahier> *)
 
 (** Here follows a description of the different modules used by this lus2lic compiler.
 
@@ -144,7 +144,7 @@ let rec arg_list = [
   );
   ( "-ec", Arg.Unit
       (fun _ -> set_ec_options ()),
-    "\n\t Generate ec (actually just an alias for '-en -lv4')."
+    "\n\t Generate ec (actually just an alias for '-en -lv4 --no-prefix')."
   );
 
   ( "--no-prefix", Arg.Unit
@@ -195,6 +195,7 @@ and set_v4_options () =
 and set_ec_options () =
   set_v4_options ();
   Global.ec := true;
+  Global.no_prefix := true;
   Global.expand_nodes := true
 
 and add_dont_expand_nodes str =
diff --git a/src/name.ml b/src/name.ml
index 24d8954a..daf5c935 100644
--- a/src/name.ml
+++ b/src/name.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 22/01/2010 (at 18:15) by Erwan Jahier> *)
+(** Time-stamp: <modified the 19/05/2011 (at 11:35) by Erwan Jahier> *)
 
 
 (* maps node_key to a string that won't clash *)
diff --git a/src/test/Makefile b/src/test/Makefile
index fe42c360..2002653a 100644
--- a/src/test/Makefile
+++ b/src/test/Makefile
@@ -24,23 +24,23 @@ tgz:
 
 
 lic:
-	echo "generate all possible lic files"
+	/bin/echo "generate all possible lic files"
 	for d in ${OK_LUS}; do \
-		echo -e "\n$(NL)====> $(LC2) $$d -o $$d.lic " ;\
+		/bin/echo -e "\n$(NL)====> $(LC2) $$d -o $$d.lic " ;\
 		$(LC2) $$d -o $$d.lic ;\
 	done
 
 xxx:
-	echo "reentrant ?"
+	/bin/echo "reentrant ?"
 	for d in ${LIC}; do \
-		echo -e "\n$(NL)====> $(LC2) $$d  " ;\
+		/bin/echo -e "\n$(NL)====> $(LC2) $$d  " ;\
 		$(LC2) $$d > /dev/null ;\
 	done
 
 
 begin:
-	echo "Non-regression tests" > test_ok.res
-	echo "Those tests are supposed to generate errors" > test_ko.res
+	/bin/echo "Non-regression tests" > test_ok.res
+	/bin/echo "Those tests are supposed to generate errors" > test_ko.res
 
 
 unit:
@@ -62,28 +62,28 @@ same_file:
 
 test_lic: begin unit help version do_not_exist same_file
 	for d in ${OK_LUS}; do \
-		echo -e "\n$(NL)====> $(LC) --nonreg-test $$d" >> test_ok.res; \
+		/bin/echo -e "\n$(NL)====> $(LC) --nonreg-test $$d" >> test_ok.res; \
 		$(LC)  --nonreg-test $$d >> test_ok.res 2>&1 ;\
 	done; \
 	for d in ${KO_LUS}; do \
-		echo -e  "\n$(NL)====> $(LC) --nonreg-test $$d" >> test_ko.res; \
+		/bin/echo -e  "\n$(NL)====> $(LC) --nonreg-test $$d" >> test_ko.res; \
 		$(LC)  --nonreg-test $$d >> test_ko.res 2>&1 ;\
 	done; \
 	rm -f test.res ; cat test_ok.res test_ko.res  | $(FILTER) > test.res ;\
 	diff -u test.res.exp test.res > test.diff || \
-		(cat test.diff ; echo "cf test.diff"; exit 1)
+		(cat test.diff ; /bin/echo "cf test.diff"; exit 1)
 utest_lic:
 	cp test.res test.res.exp 
 
 
 errors_nb:
-	echo -e "There were $(shell grep Error test_ok.res | wc -l) errors."
-	echo -e "There were $(shell grep Warning test_ok.res | wc -l) Warnings."
+	/bin/echo -e "There were $(shell grep Error test_ok.res | wc -l) errors."
+	/bin/echo -e "There were $(shell grep Warning test_ok.res | wc -l) Warnings."
 
 errors:errors_nb
-	echo -e "There were $(shell grep Warning test_ok.res | wc -l) Warnings."
+	/bin/echo -e "There were $(shell grep Warning test_ok.res | wc -l) Warnings."
 	grep Warning test_ok.res || true
-	echo -e "There were $(shell grep Error test_ok.res | wc -l) errors."
+	/bin/echo -e "There were $(shell grep Error test_ok.res | wc -l) errors."
 	grep "*** Error" test_ok.res
 
 
@@ -93,32 +93,32 @@ errors:errors_nb
 test_ec: 
 	rm -f test_ec.res
 	for d in ${OK_LUS}; do \
-		echo -e "\n$(NL)====> $(LC0) --nonreg-test -ec $$d -o /tmp/xx.ec" >> test_ec.res; \
+		/bin/echo -e "\n$(NL)====> $(LC0) --nonreg-test -ec $$d -o /tmp/xx.ec" >> test_ec.res; \
 		$(LC0) -ec --nonreg-test $$d -o /tmp/xx.ec >> test_ec.res 2>&1 ;\
-		echo -e "ec2c /tmp/xx.ec" >> test_ec.res; \
-		(ec2c /tmp/xx.ec >> test_ec.res 2>&1 && echo -n "ok ") || echo " KO ($$d)!";\
+		/bin/echo -e "ec2c /tmp/xx.ec" >> test_ec.res; \
+		(ec2c /tmp/xx.ec >> test_ec.res 2>&1 && /bin/echo -n "ok ") || /bin/echo " KO ($$d)!";\
 	done; \
 	diff -u test_ec.res.exp test_ec.res > test_ec.diff || \
-		(cat test_ec.diff ; echo "cf test_ec.diff"; exit 1)
+		(cat test_ec.diff ; /bin/echo "cf test_ec.diff"; exit 1)
 
 
 utest_ec:
 	cp test_ec.res test_ec.res.exp 
 
 test_lv4: 
-	rm test_lv4.res || echo "";
+	rm test_lv4.res || /bin/echo "";
 	for d in ${OK_LUS}; do \
-		echo -e "\n$(NL)====> $(LC0) --nonreg-test  -lv4 $$d -o /tmp/xx.lus" >> test_lv4.res; \
+		/bin/echo -e "\n$(NL)====> $(LC0) --nonreg-test  -lv4 $$d -o /tmp/xx.lus" >> test_lv4.res; \
 		$(LC0) --nonreg-test -lv4 $$d -o /tmp/xx.lus >> test_lv4.res 2>&1 ;\
 		for node in `lusinfo /tmp/xx.lus nodes`; do \
-			echo -e "lus2ec /tmp/xx.lus $$node" >> test_lv4.res; \
+			/bin/echo -e "lus2ec /tmp/xx.lus $$node" >> test_lv4.res; \
 			(lus2ec /tmp/xx.lus $$node >> \
-				test_lv4.res 2>&1 && echo -n "ok ") \
-			|| echo " KO ($$d)!";\
+				test_lv4.res 2>&1 && /bin/echo -n "ok ") \
+			|| /bin/echo " KO ($$d)!";\
 		done; \
 	done; \
 	diff -u test_lv4.res.exp test_lv4.res > test_lv4.diff || \
-		(cat test_lv4.diff ; echo "cf test_lv4.diff"; exit 1)
+		(cat test_lv4.diff ; /bin/echo  "cf test_lv4.diff"; exit 1)
 
 
 utest_lv4:
diff --git a/src/test/test.res.exp b/src/test/test.res.exp
index cb5acc63..a68eabb3 100644
--- a/src/test/test.res.exp
+++ b/src/test/test.res.exp
@@ -30,7 +30,7 @@ where [options] can be:
 	 Use Lustre V4 syntax (automatically impose '-ei -ee -esa').
   --expanded-code 
   -ec 
-	 Generate ec (actually just an alias for '-en -lv4').
+	 Generate ec (actually just an alias for '-en -lv4 --no-prefix').
   --no-prefix 
 	 Do not prefix variable names by their module (beware: variable names may clash with this option).
   --test-lexer Internal option used to test the lexer
@@ -7592,17 +7592,17 @@ tel
 ====> ../lus2lic -vl 2 --nonreg-test should_work/NONREG/param_node.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/NONREG/param_node.lus
 
-node n_param_node::toto_n_Lustre::iplus_3(a:int) returns (x:A_int_3);
+node n_toto_n_iplus_3(a:int) returns (x:A_int_3);
 var
    v:int;
 let
    v = Lustre::iplus(a, 1);
    x = v^3;
 tel
--- end of node n_param_node::toto_n_Lustre::iplus_3
+-- end of node n_toto_n_iplus_3
 node param_node::toto_3(a:int) returns (x:A_int_3);
 let
-   x = n_param_node::toto_n_Lustre::iplus_3(a);
+   x = n_toto_n_iplus_3(a);
 tel
 -- end of node param_node::toto_3
 -- automatically defined aliases:
@@ -7612,24 +7612,24 @@ type A_int_3 = int^3;
 ====> ../lus2lic -vl 2 --nonreg-test should_work/NONREG/param_node2.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/NONREG/param_node2.lus
 
-node n_param_node2::mk_tab_int_0_3(a:int) returns (res:A_int_3);
+node n_mk_tab_int_0_3(a:int) returns (res:A_int_3);
 let
    res = 0^3;
 tel
--- end of node n_param_node2::mk_tab_int_0_3
+-- end of node n_mk_tab_int_0_3
 node param_node2::tab_int3(a:int) returns (res:A_int_3);
 let
-   res = n_param_node2::mk_tab_int_0_3(a);
+   res = n_mk_tab_int_0_3(a);
 tel
 -- end of node param_node2::tab_int3
-node n_param_node2::mk_tab_bool_true_4(a:bool) returns (res:A_bool_4);
+node n_mk_tab_bool_true_4(a:bool) returns (res:A_bool_4);
 let
    res = true^4;
 tel
--- end of node n_param_node2::mk_tab_bool_true_4
+-- end of node n_mk_tab_bool_true_4
 node param_node2::tab_bool4(a:bool) returns (res:A_bool_4);
 let
-   res = n_param_node2::mk_tab_bool_true_4(a);
+   res = n_mk_tab_bool_true_4(a);
 tel
 -- end of node param_node2::tab_bool4
 -- automatically defined aliases:
@@ -7640,19 +7640,19 @@ type A_int_3 = int^3;
 ====> ../lus2lic -vl 2 --nonreg-test should_work/NONREG/param_node3.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/NONREG/param_node3.lus
 
-node n_param_node3::mk_tab_int_0_3(a:int) returns (res:A_int_3);
+node n_mk_tab_int_0_3(a:int) returns (res:A_int_3);
 let
    res = 0^3;
 tel
--- end of node n_param_node3::mk_tab_int_0_3
-node n_param_node3::titi_int(a:int) returns (res:A_int_3);
+-- end of node n_mk_tab_int_0_3
+node n_titi_int(a:int) returns (res:A_int_3);
 let
-   res = n_param_node3::mk_tab_int_0_3(a);
+   res = n_mk_tab_int_0_3(a);
 tel
--- end of node n_param_node3::titi_int
+-- end of node n_titi_int
 node param_node3::xxx(a:int) returns (res:A_int_3);
 let
-   res = n_param_node3::titi_int(a);
+   res = n_titi_int(a);
 tel
 -- end of node param_node3::xxx
 -- automatically defined aliases:
@@ -7667,21 +7667,17 @@ let
    o = Lustre::iplus(i1, i2);
 tel
 -- end of node param_node4::monplus
-
-node n_param_node4::toto_n_param_node4::monplus_3(
-	a:int) 
-returns (
-	x:A_int_3);
+node n_toto_n_monplus_3(a:int) returns (x:A_int_3);
 var
    v:int;
 let
    v = param_node4::monplus(a, 1);
    x = v^3;
 tel
--- end of node n_param_node4::toto_n_param_node4::monplus_3
+-- end of node n_toto_n_monplus_3
 node param_node4::toto_3(a:int) returns (x:A_int_3);
 let
-   x = n_param_node4::toto_n_param_node4::monplus_3(a);
+   x = n_toto_n_monplus_3(a);
 tel
 -- end of node param_node4::toto_3
 -- automatically defined aliases:
@@ -7694,7 +7690,7 @@ type A_int_3 = int^3;
 type _param_struct::toto = struct  {a : int; b : int};
 const param_struct::c = _param_struct::toto{a = 1; b = 1};
 
-node n_param_struct::mk_tab__param_struct::toto_param_struct::toto_3(
+node n_mk_tab__param_struct::toto_param_struct::toto_3(
 	a:_param_struct::toto) 
 returns (
 	res:A__param_struct::toto_3);
@@ -7704,14 +7700,14 @@ let
    res = _v_1^3;
    _v_1 = _param_struct::toto{a=1;b=1};
 tel
--- end of node n_param_struct::mk_tab__param_struct::toto_param_struct::toto_3
+-- end of node n_mk_tab__param_struct::toto_param_struct::toto_3
 
 node param_struct::tab_toto(
 	a:_param_struct::toto) 
 returns (
 	res:A__param_struct::toto_3);
 let
-   res = n_param_struct::mk_tab__param_struct::toto_param_struct::toto_3(a);
+   res = n_mk_tab__param_struct::toto_param_struct::toto_3(a);
 tel
 -- end of node param_struct::tab_toto
 -- automatically defined aliases:
@@ -8326,7 +8322,7 @@ tel
 --	 ../lus2lic -vl 2 --nonreg-test should_work/Pascal/access.lus
 
 
-node n_access::quick_access_real_1_m0d314ep1(
+node n_quick_access_real_1_m0d314ep1(
 	tab:A_real_1;
 	ix:int) 
 returns (
@@ -8341,9 +8337,9 @@ let
    _v_2 = tab[0];
    _v_3 =  if _v_1 then _v_2 else -0.314e+1;
 tel
--- end of node n_access::quick_access_real_1_m0d314ep1
+-- end of node n_quick_access_real_1_m0d314ep1
 
-node n_access::quick_access_real_2_m0d314ep1(
+node n_quick_access_real_2_m0d314ep1(
 	tab:A_real_2;
 	ix:int) 
 returns (
@@ -8360,15 +8356,15 @@ let
    res = _v_7;
    _v_1 = ix < 1;
    _v_2 = tab[0 .. 0];
-   _v_3 = n_access::quick_access_real_1_m0d314ep1(_v_2, ix);
+   _v_3 = n_quick_access_real_1_m0d314ep1(_v_2, ix);
    _v_4 = tab[1 .. 1];
    _v_5 = ix - 1;
-   _v_6 = n_access::quick_access_real_1_m0d314ep1(_v_4, _v_5);
+   _v_6 = n_quick_access_real_1_m0d314ep1(_v_4, _v_5);
    _v_7 =  if _v_1 then _v_3 else _v_6;
 tel
--- end of node n_access::quick_access_real_2_m0d314ep1
+-- end of node n_quick_access_real_2_m0d314ep1
 
-node n_access::quick_access_real_4_m0d314ep1(
+node n_quick_access_real_4_m0d314ep1(
 	tab:A_real_4;
 	ix:int) 
 returns (
@@ -8385,15 +8381,15 @@ let
    res = _v_7;
    _v_1 = ix < 2;
    _v_2 = tab[0 .. 1];
-   _v_3 = n_access::quick_access_real_2_m0d314ep1(_v_2, ix);
+   _v_3 = n_quick_access_real_2_m0d314ep1(_v_2, ix);
    _v_4 = tab[2 .. 3];
    _v_5 = ix - 2;
-   _v_6 = n_access::quick_access_real_2_m0d314ep1(_v_4, _v_5);
+   _v_6 = n_quick_access_real_2_m0d314ep1(_v_4, _v_5);
    _v_7 =  if _v_1 then _v_3 else _v_6;
 tel
--- end of node n_access::quick_access_real_4_m0d314ep1
+-- end of node n_quick_access_real_4_m0d314ep1
 
-node n_access::quick_access_real_8_m0d314ep1(
+node n_quick_access_real_8_m0d314ep1(
 	tab:A_real_8;
 	ix:int) 
 returns (
@@ -8410,24 +8406,19 @@ let
    res = _v_7;
    _v_1 = ix < 4;
    _v_2 = tab[0 .. 3];
-   _v_3 = n_access::quick_access_real_4_m0d314ep1(_v_2, ix);
+   _v_3 = n_quick_access_real_4_m0d314ep1(_v_2, ix);
    _v_4 = tab[4 .. 7];
    _v_5 = ix - 4;
-   _v_6 = n_access::quick_access_real_4_m0d314ep1(_v_4, _v_5);
+   _v_6 = n_quick_access_real_4_m0d314ep1(_v_4, _v_5);
    _v_7 =  if _v_1 then _v_3 else _v_6;
 tel
--- end of node n_access::quick_access_real_8_m0d314ep1
+-- end of node n_quick_access_real_8_m0d314ep1
 node access::quick_access_real8(tab:A_real_8; ix:int) returns (res:real);
 let
-   res = n_access::quick_access_real_8_m0d314ep1(tab, ix);
+   res = n_quick_access_real_8_m0d314ep1(tab, ix);
 tel
 -- end of node access::quick_access_real8
-
-node n_access::quick_access_int_1_m1(
-	tab:A_int_1;
-	ix:int) 
-returns (
-	res:int);
+node n_quick_access_int_1_m1(tab:A_int_1; ix:int) returns (res:int);
 var
    _v_1:bool;
    _v_2:int;
@@ -8438,13 +8429,8 @@ let
    _v_2 = tab[0];
    _v_3 =  if _v_1 then _v_2 else -1;
 tel
--- end of node n_access::quick_access_int_1_m1
-
-node n_access::quick_access_int_2_m1(
-	tab:A_int_2;
-	ix:int) 
-returns (
-	res:int);
+-- end of node n_quick_access_int_1_m1
+node n_quick_access_int_2_m1(tab:A_int_2; ix:int) returns (res:int);
 var
    _v_1:bool;
    _v_2:A_int_1;
@@ -8457,19 +8443,14 @@ let
    res = _v_7;
    _v_1 = ix < 1;
    _v_2 = tab[0 .. 0];
-   _v_3 = n_access::quick_access_int_1_m1(_v_2, ix);
+   _v_3 = n_quick_access_int_1_m1(_v_2, ix);
    _v_4 = tab[1 .. 1];
    _v_5 = ix - 1;
-   _v_6 = n_access::quick_access_int_1_m1(_v_4, _v_5);
+   _v_6 = n_quick_access_int_1_m1(_v_4, _v_5);
    _v_7 =  if _v_1 then _v_3 else _v_6;
 tel
--- end of node n_access::quick_access_int_2_m1
-
-node n_access::quick_access_int_4_m1(
-	tab:A_int_4;
-	ix:int) 
-returns (
-	res:int);
+-- end of node n_quick_access_int_2_m1
+node n_quick_access_int_4_m1(tab:A_int_4; ix:int) returns (res:int);
 var
    _v_1:bool;
    _v_2:A_int_2;
@@ -8482,19 +8463,14 @@ let
    res = _v_7;
    _v_1 = ix < 2;
    _v_2 = tab[0 .. 1];
-   _v_3 = n_access::quick_access_int_2_m1(_v_2, ix);
+   _v_3 = n_quick_access_int_2_m1(_v_2, ix);
    _v_4 = tab[2 .. 3];
    _v_5 = ix - 2;
-   _v_6 = n_access::quick_access_int_2_m1(_v_4, _v_5);
+   _v_6 = n_quick_access_int_2_m1(_v_4, _v_5);
    _v_7 =  if _v_1 then _v_3 else _v_6;
 tel
--- end of node n_access::quick_access_int_4_m1
-
-node n_access::quick_access_int_8_m1(
-	tab:A_int_8;
-	ix:int) 
-returns (
-	res:int);
+-- end of node n_quick_access_int_4_m1
+node n_quick_access_int_8_m1(tab:A_int_8; ix:int) returns (res:int);
 var
    _v_1:bool;
    _v_2:A_int_4;
@@ -8507,16 +8483,16 @@ let
    res = _v_7;
    _v_1 = ix < 4;
    _v_2 = tab[0 .. 3];
-   _v_3 = n_access::quick_access_int_4_m1(_v_2, ix);
+   _v_3 = n_quick_access_int_4_m1(_v_2, ix);
    _v_4 = tab[4 .. 7];
    _v_5 = ix - 4;
-   _v_6 = n_access::quick_access_int_4_m1(_v_4, _v_5);
+   _v_6 = n_quick_access_int_4_m1(_v_4, _v_5);
    _v_7 =  if _v_1 then _v_3 else _v_6;
 tel
--- end of node n_access::quick_access_int_8_m1
+-- end of node n_quick_access_int_8_m1
 node access::quick_access_int8(tab:A_int_8; ix:int) returns (res:int);
 let
-   res = n_access::quick_access_int_8_m1(tab, ix);
+   res = n_quick_access_int_8_m1(tab, ix);
 tel
 -- end of node access::quick_access_int8
 -- automatically defined aliases:
@@ -8533,15 +8509,15 @@ type A_real_2 = real^2;
 ====> ../lus2lic -vl 2 --nonreg-test should_work/Pascal/consensus.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/Pascal/consensus.lus
 
-node n_consensus::consensus_1(T:A_bool_1) returns (a:bool);
+node n_consensus_1(T:A_bool_1) returns (a:bool);
 var
    _v_1:bool;
 let
    a = _v_1;
    _v_1 = T[0];
 tel
--- end of node n_consensus::consensus_1
-node n_consensus::consensus_2(T:A_bool_2) returns (a:bool);
+-- end of node n_consensus_1
+node n_consensus_2(T:A_bool_2) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_1;
@@ -8551,11 +8527,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 1];
-   _v_3 = n_consensus::consensus_1(_v_2);
+   _v_3 = n_consensus_1(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_2
-node n_consensus::consensus_3(T:A_bool_3) returns (a:bool);
+-- end of node n_consensus_2
+node n_consensus_3(T:A_bool_3) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_2;
@@ -8565,11 +8541,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 2];
-   _v_3 = n_consensus::consensus_2(_v_2);
+   _v_3 = n_consensus_2(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_3
-node n_consensus::consensus_4(T:A_bool_4) returns (a:bool);
+-- end of node n_consensus_3
+node n_consensus_4(T:A_bool_4) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_3;
@@ -8579,16 +8555,16 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 3];
-   _v_3 = n_consensus::consensus_3(_v_2);
+   _v_3 = n_consensus_3(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_4
+-- end of node n_consensus_4
 node consensus::main(T:A_bool_4) returns (c:bool);
 let
-   c = n_consensus::consensus_4(T);
+   c = n_consensus_4(T);
 tel
 -- end of node consensus::main
-node n_consensus::consensus_5(T:A_bool_5) returns (a:bool);
+node n_consensus_5(T:A_bool_5) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_4;
@@ -8598,11 +8574,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 4];
-   _v_3 = n_consensus::consensus_4(_v_2);
+   _v_3 = n_consensus_4(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_5
-node n_consensus::consensus_6(T:A_bool_6) returns (a:bool);
+-- end of node n_consensus_5
+node n_consensus_6(T:A_bool_6) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_5;
@@ -8612,11 +8588,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 5];
-   _v_3 = n_consensus::consensus_5(_v_2);
+   _v_3 = n_consensus_5(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_6
-node n_consensus::consensus_7(T:A_bool_7) returns (a:bool);
+-- end of node n_consensus_6
+node n_consensus_7(T:A_bool_7) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_6;
@@ -8626,11 +8602,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 6];
-   _v_3 = n_consensus::consensus_6(_v_2);
+   _v_3 = n_consensus_6(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_7
-node n_consensus::consensus_8(T:A_bool_8) returns (a:bool);
+-- end of node n_consensus_7
+node n_consensus_8(T:A_bool_8) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_7;
@@ -8640,11 +8616,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 7];
-   _v_3 = n_consensus::consensus_7(_v_2);
+   _v_3 = n_consensus_7(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_8
-node n_consensus::consensus_9(T:A_bool_9) returns (a:bool);
+-- end of node n_consensus_8
+node n_consensus_9(T:A_bool_9) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_8;
@@ -8654,11 +8630,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 8];
-   _v_3 = n_consensus::consensus_8(_v_2);
+   _v_3 = n_consensus_8(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_9
-node n_consensus::consensus_10(T:A_bool_10) returns (a:bool);
+-- end of node n_consensus_9
+node n_consensus_10(T:A_bool_10) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_9;
@@ -8668,18 +8644,18 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 9];
-   _v_3 = n_consensus::consensus_9(_v_2);
+   _v_3 = n_consensus_9(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus::consensus_10
+-- end of node n_consensus_10
 node consensus::main2(T:A_bool_10) returns (a:bool);
 let
-   a = n_consensus::consensus_10(T);
+   a = n_consensus_10(T);
 tel
 -- end of node consensus::main2
 node consensus::c8(T:A_bool_8) returns (a:bool);
 let
-   a = n_consensus::consensus_8(T);
+   a = n_consensus_8(T);
 tel
 -- end of node consensus::c8
 -- automatically defined aliases:
@@ -8698,15 +8674,15 @@ type A_bool_3 = bool^3;
 ====> ../lus2lic -vl 2 --nonreg-test should_work/Pascal/consensus2.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/Pascal/consensus2.lus
 
-node n_consensus2::consensus_1(T:A_bool_1) returns (a:bool);
+node n_consensus_1(T:A_bool_1) returns (a:bool);
 var
    _v_1:bool;
 let
    a = _v_1;
    _v_1 = T[0];
 tel
--- end of node n_consensus2::consensus_1
-node n_consensus2::consensus_2(T:A_bool_2) returns (a:bool);
+-- end of node n_consensus_1
+node n_consensus_2(T:A_bool_2) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_1;
@@ -8716,11 +8692,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 1];
-   _v_3 = n_consensus2::consensus_1(_v_2);
+   _v_3 = n_consensus_1(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus2::consensus_2
-node n_consensus2::consensus_3(T:A_bool_3) returns (a:bool);
+-- end of node n_consensus_2
+node n_consensus_3(T:A_bool_3) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_2;
@@ -8730,11 +8706,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 2];
-   _v_3 = n_consensus2::consensus_2(_v_2);
+   _v_3 = n_consensus_2(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus2::consensus_3
-node n_consensus2::consensus_4(T:A_bool_4) returns (a:bool);
+-- end of node n_consensus_3
+node n_consensus_4(T:A_bool_4) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_3;
@@ -8744,11 +8720,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 3];
-   _v_3 = n_consensus2::consensus_3(_v_2);
+   _v_3 = n_consensus_3(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus2::consensus_4
-node n_consensus2::consensus_5(T:A_bool_5) returns (a:bool);
+-- end of node n_consensus_4
+node n_consensus_5(T:A_bool_5) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_4;
@@ -8758,11 +8734,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 4];
-   _v_3 = n_consensus2::consensus_4(_v_2);
+   _v_3 = n_consensus_4(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus2::consensus_5
-node n_consensus2::consensus_6(T:A_bool_6) returns (a:bool);
+-- end of node n_consensus_5
+node n_consensus_6(T:A_bool_6) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_5;
@@ -8772,11 +8748,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 5];
-   _v_3 = n_consensus2::consensus_5(_v_2);
+   _v_3 = n_consensus_5(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus2::consensus_6
-node n_consensus2::consensus_7(T:A_bool_7) returns (a:bool);
+-- end of node n_consensus_6
+node n_consensus_7(T:A_bool_7) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_6;
@@ -8786,11 +8762,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 6];
-   _v_3 = n_consensus2::consensus_6(_v_2);
+   _v_3 = n_consensus_6(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus2::consensus_7
-node n_consensus2::consensus_8(T:A_bool_8) returns (a:bool);
+-- end of node n_consensus_7
+node n_consensus_8(T:A_bool_8) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_7;
@@ -8800,13 +8776,13 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 7];
-   _v_3 = n_consensus2::consensus_7(_v_2);
+   _v_3 = n_consensus_7(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_consensus2::consensus_8
+-- end of node n_consensus_8
 node consensus2::main(T:A_bool_8) returns (a:bool);
 let
-   a = n_consensus2::consensus_8(T);
+   a = n_consensus_8(T);
 tel
 -- end of node consensus2::main
 -- automatically defined aliases:
@@ -10516,14 +10492,14 @@ type A_int_2 = int^2;
 ====> ../lus2lic -vl 2 --nonreg-test should_work/Pascal/t0.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/Pascal/t0.lus
 
-node n_t0::min_n_1(T:A_int_1) returns (mn:int);
+node n_min_n_1(T:A_int_1) returns (mn:int);
 var
    _v_1:int;
 let
    mn = _v_1;
    _v_1 = T[0];
 tel
--- end of node n_t0::min_n_1
+-- end of node n_min_n_1
 node t0::min(x:int; y:int) returns (mn:int);
 var
    _v_1:bool;
@@ -10532,7 +10508,7 @@ let
    _v_1 = x <= y;
 tel
 -- end of node t0::min
-node n_t0::min_n_2(T:A_int_2) returns (mn:int);
+node n_min_n_2(T:A_int_2) returns (mn:int);
 var
    _v_1:int;
    _v_2:A_int_1;
@@ -10542,11 +10518,11 @@ let
    mn = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 1];
-   _v_3 = n_t0::min_n_1(_v_2);
+   _v_3 = n_min_n_1(_v_2);
    _v_4 = t0::min(_v_1, _v_3);
 tel
--- end of node n_t0::min_n_2
-node n_t0::min_n_3(T:A_int_3) returns (mn:int);
+-- end of node n_min_n_2
+node n_min_n_3(T:A_int_3) returns (mn:int);
 var
    _v_1:int;
    _v_2:A_int_2;
@@ -10556,11 +10532,11 @@ let
    mn = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 2];
-   _v_3 = n_t0::min_n_2(_v_2);
+   _v_3 = n_min_n_2(_v_2);
    _v_4 = t0::min(_v_1, _v_3);
 tel
--- end of node n_t0::min_n_3
-node n_t0::min_n_4(T:A_int_4) returns (mn:int);
+-- end of node n_min_n_3
+node n_min_n_4(T:A_int_4) returns (mn:int);
 var
    _v_1:int;
    _v_2:A_int_3;
@@ -10570,13 +10546,13 @@ let
    mn = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 3];
-   _v_3 = n_t0::min_n_3(_v_2);
+   _v_3 = n_min_n_3(_v_2);
    _v_4 = t0::min(_v_1, _v_3);
 tel
--- end of node n_t0::min_n_4
+-- end of node n_min_n_4
 node t0::min_4(T:A_int_4) returns (mn:int);
 let
-   mn = n_t0::min_n_4(T);
+   mn = n_min_n_4(T);
 tel
 -- end of node t0::min_4
 node t0::t0(T:A_int_4) returns (mn:int);
@@ -10595,15 +10571,15 @@ type A_int_1 = int^1;
 ====> ../lus2lic -vl 2 --nonreg-test should_work/Pascal/t1.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/Pascal/t1.lus
 
-node n_t1::consensus_1(T:A_bool_1) returns (a:bool);
+node n_consensus_1(T:A_bool_1) returns (a:bool);
 var
    _v_1:bool;
 let
    a = _v_1;
    _v_1 = T[0];
 tel
--- end of node n_t1::consensus_1
-node n_t1::consensus_2(T:A_bool_2) returns (a:bool);
+-- end of node n_consensus_1
+node n_consensus_2(T:A_bool_2) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_1;
@@ -10613,11 +10589,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 1];
-   _v_3 = n_t1::consensus_1(_v_2);
+   _v_3 = n_consensus_1(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_t1::consensus_2
-node n_t1::consensus_3(T:A_bool_3) returns (a:bool);
+-- end of node n_consensus_2
+node n_consensus_3(T:A_bool_3) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_2;
@@ -10627,11 +10603,11 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 2];
-   _v_3 = n_t1::consensus_2(_v_2);
+   _v_3 = n_consensus_2(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_t1::consensus_3
-node n_t1::consensus_4(T:A_bool_4) returns (a:bool);
+-- end of node n_consensus_3
+node n_consensus_4(T:A_bool_4) returns (a:bool);
 var
    _v_1:bool;
    _v_2:A_bool_3;
@@ -10641,13 +10617,13 @@ let
    a = _v_4;
    _v_1 = T[0];
    _v_2 = T[1 .. 3];
-   _v_3 = n_t1::consensus_3(_v_2);
+   _v_3 = n_consensus_3(_v_2);
    _v_4 = _v_1 and _v_3;
 tel
--- end of node n_t1::consensus_4
+-- end of node n_consensus_4
 node t1::consensus4(T:A_bool_4) returns (a:bool);
 let
-   a = n_t1::consensus_4(T);
+   a = n_consensus_4(T);
 tel
 -- end of node t1::consensus4
 -- automatically defined aliases:
@@ -10660,22 +10636,12 @@ type A_bool_2 = bool^2;
 ====> ../lus2lic -vl 2 --nonreg-test should_work/Pascal/t2.lus
 --	 ../lus2lic -vl 2 --nonreg-test should_work/Pascal/t2.lus
 
-
-node n_t2::fold_left_bool_bool_1_Lustre::and(
-	a:bool;
-	X:A_bool_1) 
-returns (
-	c:bool);
+node n_fold_left_bool_bool_1_and(a:bool; X:A_bool_1) returns (c:bool);
 let
    c = a;
 tel
--- end of node n_t2::fold_left_bool_bool_1_Lustre::and
-
-node n_t2::fold_left_bool_bool_2_Lustre::and(
-	a:bool;
-	X:A_bool_2) 
-returns (
-	c:bool);
+-- end of node n_fold_left_bool_bool_1_and
+node n_fold_left_bool_bool_2_and(a:bool; X:A_bool_2) returns (c:bool);
 var
    _v_1:bool;
    _v_2:bool;
@@ -10686,15 +10652,10 @@ let
    _v_1 = X[0];
    _v_2 = Lustre::and(a, _v_1);
    _v_3 = X[1 .. 1];
-   _v_4 = n_t2::fold_left_bool_bool_1_Lustre::and(_v_2, _v_3);
+   _v_4 = n_fold_left_bool_bool_1_and(_v_2, _v_3);
 tel
--- end of node n_t2::fold_left_bool_bool_2_Lustre::and
-
-node n_t2::fold_left_bool_bool_3_Lustre::and(
-	a:bool;
-	X:A_bool_3) 
-returns (
-	c:bool);
+-- end of node n_fold_left_bool_bool_2_and
+node n_fold_left_bool_bool_3_and(a:bool; X:A_bool_3) returns (c:bool);
 var
    _v_1:bool;
    _v_2:bool;
@@ -10705,15 +10666,10 @@ let
    _v_1 = X[0];
    _v_2 = Lustre::and(a, _v_1);
    _v_3 = X[1 .. 2];
-   _v_4 = n_t2::fold_left_bool_bool_2_Lustre::and(_v_2, _v_3);
+   _v_4 = n_fold_left_bool_bool_2_and(_v_2, _v_3);
 tel
--- end of node n_t2::fold_left_bool_bool_3_Lustre::and
-
-node n_t2::fold_left_bool_bool_4_Lustre::and(
-	a:bool;
-	X:A_bool_4) 
-returns (
-	c:bool);
+-- end of node n_fold_left_bool_bool_3_and
+node n_fold_left_bool_bool_4_and(a:bool; X:A_bool_4) returns (c:bool);
 var
    _v_1:bool;
    _v_2:bool;
@@ -10724,15 +10680,10 @@ let
    _v_1 = X[0];
    _v_2 = Lustre::and(a, _v_1);
    _v_3 = X[1 .. 3];
-   _v_4 = n_t2::fold_left_bool_bool_3_Lustre::and(_v_2, _v_3);
+   _v_4 = n_fold_left_bool_bool_3_and(_v_2, _v_3);
 tel
--- end of node n_t2::fold_left_bool_bool_4_Lustre::and
-
-node n_t2::fold_left_bool_bool_5_Lustre::and(
-	a:bool;
-	X:A_bool_5) 
-returns (
-	c:bool);
+-- end of node n_fold_left_bool_bool_4_and
+node n_fold_left_bool_bool_5_and(a:bool; X:A_bool_5) returns (c:bool);
 var
    _v_1:bool;
    _v_2:bool;
@@ -10743,15 +10694,10 @@ let
    _v_1 = X[0];
    _v_2 = Lustre::and(a, _v_1);
    _v_3 = X[1 .. 4];
-   _v_4 = n_t2::fold_left_bool_bool_4_Lustre::and(_v_2, _v_3);
+   _v_4 = n_fold_left_bool_bool_4_and(_v_2, _v_3);
 tel
--- end of node n_t2::fold_left_bool_bool_5_Lustre::and
-
-node n_t2::fold_left_bool_bool_6_Lustre::and(
-	a:bool;
-	X:A_bool_6) 
-returns (
-	c:bool);
+-- end of node n_fold_left_bool_bool_5_and
+node n_fold_left_bool_bool_6_and(a:bool; X:A_bool_6) returns (c:bool);
 var
    _v_1:bool;
    _v_2:bool;
@@ -10762,12 +10708,12 @@ let
    _v_1 = X[0];
    _v_2 = Lustre::and(a, _v_1);
    _v_3 = X[1 .. 5];
-   _v_4 = n_t2::fold_left_bool_bool_5_Lustre::and(_v_2, _v_3);
+   _v_4 = n_fold_left_bool_bool_5_and(_v_2, _v_3);
 tel
--- end of node n_t2::fold_left_bool_bool_6_Lustre::and
+-- end of node n_fold_left_bool_bool_6_and
 node t2::consensus_6(X:A_bool_6) returns (c:bool);
 let
-   c = n_t2::fold_left_bool_bool_6_Lustre::and(true, X);
+   c = n_fold_left_bool_bool_6_and(true, X);
 tel
 -- end of node t2::consensus_6
 node t2::t2(X:A_bool_6) returns (c:bool);
@@ -10777,7 +10723,7 @@ tel
 -- end of node t2::t2
 node t2::consensus_6_bis(a:bool; X:A_bool_6) returns (c:bool);
 let
-   c = n_t2::fold_left_bool_bool_6_Lustre::and(a, X);
+   c = n_fold_left_bool_bool_6_and(a, X);
 tel
 -- end of node t2::consensus_6_bis
 -- automatically defined aliases:
diff --git a/src/test/test_ec.res.exp b/src/test/test_ec.res.exp
index 3f7d6ffc..832aafdd 100644
--- a/src/test/test_ec.res.exp
+++ b/src/test/test_ec.res.exp
@@ -55,7 +55,7 @@ ec2c /tmp/xx.ec
 ====> ../lus2lic   --nonreg-test -ec should_work/NONREG/Watch.lus -o /tmp/xx.ec
 ec2c /tmp/xx.ec
 syntax errors...
-syntax error     - at line 66
+syntax error     - at line 60
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test -ec should_work/NONREG/X.lus -o /tmp/xx.ec
@@ -97,7 +97,7 @@ ec2c /tmp/xx.ec
 ====> ../lus2lic   --nonreg-test -ec should_work/NONREG/arbitre.lus -o /tmp/xx.ec
 ec2c /tmp/xx.ec
 syntax errors...
-syntax error     - at line 34
+syntax error     - at line 28
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test -ec should_work/NONREG/argos.lus -o /tmp/xx.ec
@@ -584,6 +584,7 @@ ec2c /tmp/xx.ec
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test -ec should_work/Pascal/test.lus -o /tmp/xx.ec
 ec2c /tmp/xx.ec
+Segmentation fault
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test -ec should_work/Pascal/trivial.lus -o /tmp/xx.ec
@@ -702,7 +703,7 @@ ec2c /tmp/xx.ec
 ====> ../lus2lic   --nonreg-test -ec should_work/demo/decl.lus -o /tmp/xx.ec
 ec2c /tmp/xx.ec
 syntax errors...
-syntax error     - at line 99
+syntax error     - at line 93
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test -ec should_work/demo/declaration.lus -o /tmp/xx.ec
diff --git a/src/test/test_lv4.res.exp b/src/test/test_lv4.res.exp
index fddd072e..c7d113c8 100644
--- a/src/test/test_lv4.res.exp
+++ b/src/test/test_lv4.res.exp
@@ -629,27 +629,27 @@ lus2ec /tmp/xx.lus cst__cst
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/NONREG/param_node.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_param_node__toto_n_Lustre__iplus_3
+lus2ec /tmp/xx.lus n_toto_n_iplus_3
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus param_node__toto_3
 --Pollux Version 2.3a
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/NONREG/param_node2.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_param_node2__mk_tab_int_0_3
+lus2ec /tmp/xx.lus n_mk_tab_int_0_3
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus param_node2__tab_int3
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_param_node2__mk_tab_bool_true_4
+lus2ec /tmp/xx.lus n_mk_tab_bool_true_4
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus param_node2__tab_bool4
 --Pollux Version 2.3a
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/NONREG/param_node3.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_param_node3__mk_tab_int_0_3
+lus2ec /tmp/xx.lus n_mk_tab_int_0_3
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_param_node3__titi_int
+lus2ec /tmp/xx.lus n_titi_int
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus param_node3__xxx
 --Pollux Version 2.3a
@@ -658,14 +658,14 @@ lus2ec /tmp/xx.lus param_node3__xxx
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/NONREG/param_node4.lus -o /tmp/xx.lus
 lus2ec /tmp/xx.lus param_node4__monplus
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_param_node4__toto_n_param_node4__monplus_3
+lus2ec /tmp/xx.lus n_toto_n_monplus_3
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus param_node4__toto_3
 --Pollux Version 2.3a
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/NONREG/param_struct.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_param_struct__mk_tab__param_struct__toto_param_struct__toto_3
+lus2ec /tmp/xx.lus n_mk_tab__param_struct__toto_param_struct__toto_3
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus param_struct__tab_toto
 --Pollux Version 2.3a
@@ -793,50 +793,50 @@ lus2ec /tmp/xx.lus v1__v1
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/Pascal/access.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_access__quick_access_real_1_m0d314ep1
+lus2ec /tmp/xx.lus n_quick_access_real_1_m0d314ep1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_access__quick_access_real_2_m0d314ep1
+lus2ec /tmp/xx.lus n_quick_access_real_2_m0d314ep1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_access__quick_access_real_4_m0d314ep1
+lus2ec /tmp/xx.lus n_quick_access_real_4_m0d314ep1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_access__quick_access_real_8_m0d314ep1
+lus2ec /tmp/xx.lus n_quick_access_real_8_m0d314ep1
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus access__quick_access_real8
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_access__quick_access_int_1_m1
+lus2ec /tmp/xx.lus n_quick_access_int_1_m1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_access__quick_access_int_2_m1
+lus2ec /tmp/xx.lus n_quick_access_int_2_m1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_access__quick_access_int_4_m1
+lus2ec /tmp/xx.lus n_quick_access_int_4_m1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_access__quick_access_int_8_m1
+lus2ec /tmp/xx.lus n_quick_access_int_8_m1
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus access__quick_access_int8
 --Pollux Version 2.3a
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/Pascal/consensus.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_consensus__consensus_1
+lus2ec /tmp/xx.lus n_consensus_1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_2
+lus2ec /tmp/xx.lus n_consensus_2
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_3
+lus2ec /tmp/xx.lus n_consensus_3
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_4
+lus2ec /tmp/xx.lus n_consensus_4
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus consensus__main
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_5
+lus2ec /tmp/xx.lus n_consensus_5
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_6
+lus2ec /tmp/xx.lus n_consensus_6
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_7
+lus2ec /tmp/xx.lus n_consensus_7
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_8
+lus2ec /tmp/xx.lus n_consensus_8
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_9
+lus2ec /tmp/xx.lus n_consensus_9
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus__consensus_10
+lus2ec /tmp/xx.lus n_consensus_10
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus consensus__main2
 --Pollux Version 2.3a
@@ -845,21 +845,21 @@ lus2ec /tmp/xx.lus consensus__c8
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/Pascal/consensus2.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_consensus2__consensus_1
+lus2ec /tmp/xx.lus n_consensus_1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus2__consensus_2
+lus2ec /tmp/xx.lus n_consensus_2
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus2__consensus_3
+lus2ec /tmp/xx.lus n_consensus_3
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus2__consensus_4
+lus2ec /tmp/xx.lus n_consensus_4
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus2__consensus_5
+lus2ec /tmp/xx.lus n_consensus_5
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus2__consensus_6
+lus2ec /tmp/xx.lus n_consensus_6
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus2__consensus_7
+lus2ec /tmp/xx.lus n_consensus_7
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_consensus2__consensus_8
+lus2ec /tmp/xx.lus n_consensus_8
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus consensus2__main
 --Pollux Version 2.3a
@@ -1019,15 +1019,15 @@ lus2ec /tmp/xx.lus t__toto
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/Pascal/t0.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_t0__min_n_1
+lus2ec /tmp/xx.lus n_min_n_1
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus t0__min
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t0__min_n_2
+lus2ec /tmp/xx.lus n_min_n_2
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t0__min_n_3
+lus2ec /tmp/xx.lus n_min_n_3
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t0__min_n_4
+lus2ec /tmp/xx.lus n_min_n_4
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus t0__min_4
 --Pollux Version 2.3a
@@ -1036,30 +1036,30 @@ lus2ec /tmp/xx.lus t0__t0
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/Pascal/t1.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_t1__consensus_1
+lus2ec /tmp/xx.lus n_consensus_1
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t1__consensus_2
+lus2ec /tmp/xx.lus n_consensus_2
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t1__consensus_3
+lus2ec /tmp/xx.lus n_consensus_3
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t1__consensus_4
+lus2ec /tmp/xx.lus n_consensus_4
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus t1__consensus4
 --Pollux Version 2.3a
 
 ----------------------------------------------------------------------
 ====> ../lus2lic   --nonreg-test  -lv4 should_work/Pascal/t2.lus -o /tmp/xx.lus
-lus2ec /tmp/xx.lus n_t2__fold_left_bool_bool_1_Lustre__and
+lus2ec /tmp/xx.lus n_fold_left_bool_bool_1_and
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t2__fold_left_bool_bool_2_Lustre__and
+lus2ec /tmp/xx.lus n_fold_left_bool_bool_2_and
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t2__fold_left_bool_bool_3_Lustre__and
+lus2ec /tmp/xx.lus n_fold_left_bool_bool_3_and
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t2__fold_left_bool_bool_4_Lustre__and
+lus2ec /tmp/xx.lus n_fold_left_bool_bool_4_and
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t2__fold_left_bool_bool_5_Lustre__and
+lus2ec /tmp/xx.lus n_fold_left_bool_bool_5_and
 --Pollux Version 2.3a
-lus2ec /tmp/xx.lus n_t2__fold_left_bool_bool_6_Lustre__and
+lus2ec /tmp/xx.lus n_fold_left_bool_bool_6_and
 --Pollux Version 2.3a
 lus2ec /tmp/xx.lus t2__consensus_6
 --Pollux Version 2.3a
-- 
GitLab