diff --git a/src/getEff.ml b/src/getEff.ml index a0789dd55a67f71a80fd20a9f4ba200b2158d760..06d2e31e7db4501e0a9c60ae91c23157d831cc98 100644 --- a/src/getEff.ml +++ b/src/getEff.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 21/08/2008 (at 15:58) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/08/2008 (at 15:55) by Erwan Jahier> *) open Lxm @@ -145,7 +145,7 @@ and (check_static_arg : CompiledData.id_solver -> let sargs_eff = translate_predef_static_args node_id_solver sargs sa.src in - let opeff = PredefEvalType.make_node_exp_eff op sa.src sargs_eff in + let opeff = PredefEvalType.make_node_exp_eff None op sa.src sargs_eff in NodeStaticArgEff (id, opeff) | StaticArgNode( @@ -276,7 +276,7 @@ and get_node id_solver node_or_node_ident lxm = | StaticArgNode(CALL_n ne) -> node id_solver ne | StaticArgNode(Predef (op,sargs)) -> let sargs_eff = translate_predef_static_args id_solver sargs lxm in - PredefEvalType.make_node_exp_eff op lxm sargs_eff + PredefEvalType.make_node_exp_eff None op lxm sargs_eff | StaticArgNode(_) -> assert false | StaticArgType _ diff --git a/src/lazyCompiler.ml b/src/lazyCompiler.ml index f55b1aca6f14e0b55995294c6446128bd351a090..0a0c43f2e2c178eaefb96185eff66b5a0b040924 100644 --- a/src/lazyCompiler.ml +++ b/src/lazyCompiler.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 19/08/2008 (at 14:34) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/08/2008 (at 15:58) by Erwan Jahier> *) open Lxm @@ -719,7 +719,8 @@ and (node_check_do: t -> CompiledData.node_key -> Lxm.t -> SymbolTab.t -> let sargs_eff = GetEff.translate_predef_static_args node_id_solver sargs lxm in - PredefEvalType.make_node_exp_eff predef_op lxm sargs_eff + PredefEvalType.make_node_exp_eff + (Some node_def.it.has_mem) predef_op lxm sargs_eff | CALL_n(node_alias) -> GetEff.node node_id_solver node_alias diff --git a/src/licDump.ml b/src/licDump.ml index 587d348892571ec3b5078adb3673a855721384d0..f2a9efcf167c78a2f13d9a030995893d01b3b4ed 100644 --- a/src/licDump.ml +++ b/src/licDump.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 21/08/2008 (at 16:34) by Erwan Jahier> *) +(** Time-stamp: <modified the 25/08/2008 (at 10:13) by Erwan Jahier> *) open CompiledData open Printf @@ -11,6 +11,36 @@ let (long : Ident.long -> string) = Ident.string_of_long let type_alias_table = Hashtbl.create 0 +(******************************************************************************) +(** Un-nesting iterator calls. + + The idea is the following: each time a nested iterator call + (map<<map<<n,3>>,4>>) is encountered, we create a fresh alias + name (create_alias_name) ad we add it in the node_alias_tbl. At + the end of the compilation, LicDump.dump_node_alias is called, + which prints the definition of those node aliases. + + For example, the expression "map<<map<<n,3>>,4>>" is printed like this: + + "map<<_node_alias1, 4>>" + + and later, the node alias is defined: + + node _node_alias1(x:int) returns(y:int); let y = map<<n,3>>(x); tel; +*) + +(* This table associates to node its definition plus a flag indicating if that + node has been generated. *) + +let (node_alias_tbl : (string, node_exp_eff * bool) Hashtbl.t) = Hashtbl.create 0 +let alias_fresh_var_cpt = ref 0 +let create_alias_name long = + incr alias_fresh_var_cpt; + ("_node_alias_" ^ (string_of_int !alias_fresh_var_cpt) + ^ "_" ^ (Ident.string_of_long long)) + + +(******************************************************************************) (* prefix used to prefix user type name in order to avoid name clashed with the alias type name that are generated by the compiler. *) let prefix = "_" @@ -124,6 +154,32 @@ and dump_type_alias oc = ) type_alias_table +(******************************************************************************) + +(* exported *) +and (dump_node_alias : out_channel -> unit) = + fun oc -> + let p = output_string oc in + let finished = ref true in + let f alias (node, dumped) = + if not dumped then ( + finished := false; + p "node "; + p alias; + p (profile_of_node_exp_eff node); + p "let\n "; + p (Ident.to_string (List.hd node.outlist_eff).var_name_eff); + p " = "; + p (string_of_node_key_iter node.node_key_eff); + p( "("^(Ident.to_string (List.hd node.inlist_eff).var_name_eff)^")"); + p ";\ntel\n"; + Hashtbl.replace node_alias_tbl alias (node,true) + ) + in + p "\n"; + Hashtbl.iter f node_alias_tbl; + if not !finished then dump_node_alias oc + (******************************************************************************) (* exported *) @@ -152,7 +208,7 @@ and string_of_node_key_iter (nkey: node_key) = match nkey with | (ik, []) -> long ik | (ik, salst) -> - let astrings = List.map static_arg2string salst in + let astrings = List.map (static_arg2string false) salst in sprintf "%s<<%s>>" (long ik) (String.concat ", " astrings) (* for printing recursive node *) @@ -164,12 +220,19 @@ and static_arg2string_rec (sa : static_arg_eff) = sprintf "%s" (string_of_node_key_rec opeff.node_key_eff) (* for printing iterators *) -and static_arg2string (sa : static_arg_eff) = +and static_arg2string flag (sa : static_arg_eff) = match sa with | ConstStaticArgEff (id, ceff) -> sprintf "%s" (string_of_const_eff ceff) | TypeStaticArgEff (id, teff) -> sprintf "%s" (string_of_type_eff teff) | NodeStaticArgEff (id, opeff) -> - sprintf "%s" (string_of_node_key_iter opeff.node_key_eff) + if + (snd opeff.node_key_eff) = [] + then + sprintf "%s" (string_of_node_key_iter opeff.node_key_eff) + else + let alias = create_alias_name (fst opeff.node_key_eff) in + Hashtbl.add node_alias_tbl alias (opeff, false); + sprintf "%s" alias and (string_of_var_info_eff: var_info_eff -> string) = fun x -> @@ -239,7 +302,8 @@ and (string_of_by_pos_op_eff : by_pos_op_eff -> val_exp_eff list -> string) = | Predef.FALSE_n | Predef.TRUE_n -> tuple vel | _ -> tuple_par vel else - "<<" ^ (String.concat ", " (List.map static_arg2string sargs)) + "<<" ^ + (String.concat ", " (List.map (static_arg2string true) sargs)) ^ ">>" ^ (tuple_par vel))) | CALL_eff nee, _ -> ( @@ -382,11 +446,7 @@ and wrap_long_profile str = and (profile_of_node_exp_eff: node_exp_eff -> string) = fun neff -> - wrap_long_profile - ((if neff.def_eff = ExternEff then "extern " else "") ^ - (if neff.has_mem_eff then "node " else "function ") ^ - (string_of_node_key_rec neff.node_key_eff) ^ - "(" ^ (string_of_type_decl_list neff.inlist_eff "; ") ^ ") returns (" ^ + ("(" ^ (string_of_type_decl_list neff.inlist_eff "; ") ^ ") returns (" ^ (string_of_type_decl_list neff.outlist_eff "; ") ^ ");\n") and (string_of_node_def : node_def_eff -> string list) = @@ -427,7 +487,11 @@ and (const_decl: Ident.long -> const_eff -> string) = (* exported *) and (node_of_node_exp_eff: node_exp_eff -> string) = fun neff -> - (profile_of_node_exp_eff neff) ^ + wrap_long_profile ( + (if neff.def_eff = ExternEff then "extern " else "") ^ + (if neff.has_mem_eff then "node " else "function ") ^ + (string_of_node_key_rec neff.node_key_eff) ^ + (profile_of_node_exp_eff neff)) ^ (match neff.def_eff with | ExternEff -> "" | AbstractEff -> "" diff --git a/src/licDump.mli b/src/licDump.mli index ca1bef94b6923588e29a42e787e7d1ed7a710624..bb1e3833d23b6c2ee8697aa4b6b4f59e02a1907f 100644 --- a/src/licDump.mli +++ b/src/licDump.mli @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 19/08/2008 (at 15:29) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/08/2008 (at 14:53) by Erwan Jahier> *) open CompiledData @@ -19,8 +19,9 @@ val string_of_var_info_eff: var_info_eff -> string val string_of_slice_info_eff : slice_info_eff -> string -(* Dump all the type alias that were introduced during the compilation process *) +(* Dump all the aliases that were introduced during the compilation process *) val dump_type_alias : out_channel -> unit +val dump_node_alias : out_channel -> unit (* used for error msgs *) diff --git a/src/main.ml b/src/main.ml index d1d960fb09dae966d848701cb1c841c6de501b7e..0fd1cf9b7cc591a958b175f486d736bfccd598f8 100644 --- a/src/main.ml +++ b/src/main.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 18/08/2008 (at 15:50) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/08/2008 (at 14:54) by Erwan Jahier> *) (** Here follows a description of the different modules used by this lus2lic compiler. @@ -242,6 +242,7 @@ let main = ( if !Global.outfile <> "" then Global.oc := open_out !Global.outfile; Compile.doit nsl main_node; LicDump.dump_type_alias !Global.oc; + LicDump.dump_node_alias !Global.oc; close_out !Global.oc ) with Sys_error(s) -> diff --git a/src/predefEvalType.ml b/src/predefEvalType.ml index 8fa4d4622be52b1ca17b0264ca8344e95e4c3448..fc1b81574f228043b54815ea34b52e90bf4475ed 100644 --- a/src/predefEvalType.ml +++ b/src/predefEvalType.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 22/07/2008 (at 10:56) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/08/2008 (at 15:57) by Erwan Jahier> *) open Predef open SyntaxTreeCore @@ -193,21 +193,26 @@ let (op2profile : Predef.op -> Lxm.t -> static_arg_eff list -> node_profile) = *) (* exported *) -let (make_node_exp_eff : op -> Lxm.t -> static_arg_eff list -> node_exp_eff) = - fun op lxm sargs -> +let (make_node_exp_eff : + bool option -> op -> Lxm.t -> static_arg_eff list -> node_exp_eff) = + fun has_mem op lxm sargs -> let id = Ident.make_long (Ident.pack_name_of_string "Lustre") (Ident.of_string (Predef.op2string_long op)) in let (lti,lto) = op2profile op lxm sargs in let i = ref 0 in let to_var_info_eff nature (id, te) = - { - var_name_eff = id; - var_nature_eff = nature; - var_number_eff = !i; - var_type_eff = te; - var_clock_eff = BaseEff; - } + let res = + { + var_name_eff = id; + var_nature_eff = nature; + var_number_eff = !i; + var_type_eff = te; + var_clock_eff = BaseEff; + } + in + incr i; + res in { node_key_eff = id,sargs ; @@ -215,7 +220,7 @@ let (make_node_exp_eff : op -> Lxm.t -> static_arg_eff list -> node_exp_eff) = outlist_eff = (i:=0; List.map (to_var_info_eff VarOutput) lto); loclist_eff = None; def_eff = ExternEff; - has_mem_eff = false; + has_mem_eff = (match has_mem with Some b -> b | None -> true); is_safe_eff = true; } @@ -245,7 +250,7 @@ let (f : op -> Lxm.t -> CompiledData.static_arg_eff list -> typer) = [Bool_type_eff] | _ -> (* general case *) - let node_eff = make_node_exp_eff op lxm sargs in + let node_eff = make_node_exp_eff (Some false) op lxm sargs in let lti = List.map (fun v -> v.var_type_eff) node_eff.inlist_eff and lto = List.map (fun v -> v.var_type_eff) node_eff.outlist_eff in let rec (subst_type : type_eff -> type_eff -> type_eff) = diff --git a/src/predefEvalType.mli b/src/predefEvalType.mli index eff63c3f7bd112f44532554d043acaf2e1ccd1c9..dcef6ea70779effb5d07a000bca250c34d40831d 100644 --- a/src/predefEvalType.mli +++ b/src/predefEvalType.mli @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 30/06/2008 (at 09:50) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/08/2008 (at 15:57) by Erwan Jahier> *) open CompiledData @@ -17,7 +17,8 @@ val f : Predef.op -> Lxm.t -> CompiledData.static_arg_eff list -> typer (* Does not work for NOR_n and DIESE_n! *) -val make_node_exp_eff : Predef.op -> Lxm.t -> static_arg_eff list -> node_exp_eff +val make_node_exp_eff : + bool option -> Predef.op -> Lxm.t -> static_arg_eff list -> node_exp_eff val fillred_profile : Lxm.t -> CompiledData.static_arg_eff list -> diff --git a/src/split.ml b/src/split.ml index fe9e10818770c1f4b796f87a00494754854e50e8..d717ba7f076581c670bcc105ef3b95606ddea3d7 100644 --- a/src/split.ml +++ b/src/split.ml @@ -1,16 +1,16 @@ -(** Time-stamp: <modified the 21/08/2008 (at 16:35) by Erwan Jahier> *) +(** Time-stamp: <modified the 25/08/2008 (at 10:18) by Erwan Jahier> *) open Lxm open CompiledData +(********************************************************************************) (* stuff to create fresh var names. *) -let cpt = ref 0 -let init_var () = cpt := 0 +let var_cpt = ref 0 let new_var type_eff clock_eff = - incr cpt; + incr var_cpt; { - var_name_eff = Ident.of_string ("_v" ^ (string_of_int !cpt)); + var_name_eff = Ident.of_string ("_v" ^ (string_of_int !var_cpt)); var_nature_eff = SyntaxTreeCore.VarLocal; var_number_eff = -1; (* this field is used only for i/o. Should i rather put something sensible there ? *) @@ -18,7 +18,11 @@ let new_var type_eff clock_eff = var_clock_eff = clock_eff; } +let init_var () = + var_cpt := 0 + +(********************************************************************************) (* The functions below accumulate (1) the new equations (2) the fresh variables. diff --git a/src/split.mli b/src/split.mli index 82b60d45c0aabb436f9a3b0f66c15cbc53b810f7..5815b1886c8a2fb111c7080c61a6553f3d566e35 100644 --- a/src/split.mli +++ b/src/split.mli @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 19/08/2008 (at 11:20) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/08/2008 (at 14:54) by Erwan Jahier> *) (** Split the equations of a node into several ones, in such a way diff --git a/src/test/test.res.exp b/src/test/test.res.exp index 906c477b3861fa4d51ec84d9f12ba980e0839e10..172276aef6a06c294901277cd9cc4e7ae5dc85b1 100644 --- a/src/test/test.res.exp +++ b/src/test/test.res.exp @@ -9,6 +9,7 @@ let tel -- end of node CURRENT::CURRENT + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/Int.lus Opening file should_work/NONREG/Int.lus @@ -71,6 +72,7 @@ tel -- end of node mainPack::Nat -- automatically defined aliases: type A_bool_8 = bool^8; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/PCOND.lus Opening file should_work/NONREG/PCOND.lus @@ -127,6 +129,7 @@ let tel -- end of node PCOND::PCOND + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/PCOND1.lus Opening file should_work/NONREG/PCOND1.lus @@ -155,6 +158,7 @@ let tel -- end of node PCOND1::PCOND1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/SOURIS.lus Opening file should_work/NONREG/SOURIS.lus @@ -580,6 +584,7 @@ let tel -- end of node SOURIS::SOURIS + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/Watch.lus Opening file should_work/NONREG/Watch.lus @@ -1369,6 +1374,7 @@ let tel -- end of node Watch::MORE_RECENT + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/X.lus Opening file should_work/NONREG/X.lus @@ -1406,6 +1412,7 @@ let tel -- end of node X::X + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/X1.lus Opening file should_work/NONREG/X1.lus @@ -1418,6 +1425,7 @@ let tel -- end of node X1::X1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/X2.lus Opening file should_work/NONREG/X2.lus @@ -1432,6 +1440,7 @@ let tel -- end of node X2::X2 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/X3.lus Opening file should_work/NONREG/X3.lus @@ -1462,6 +1471,7 @@ let tel -- end of node X3::X3 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/X6.lus Opening file should_work/NONREG/X6.lus @@ -1497,6 +1507,7 @@ let tel -- end of node X6::X6 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/_N_uu.lus Opening file should_work/NONREG/_N_uu.lus @@ -1597,6 +1608,7 @@ let tel -- end of node _N_uu::_N_uu + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/activation_ec.lus Opening file should_work/NONREG/activation_ec.lus @@ -1637,6 +1649,7 @@ let tel -- end of node activation_ec::activation_ec + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/after.lus Opening file should_work/NONREG/after.lus @@ -1651,6 +1664,7 @@ let tel -- end of node after::after + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/alarme.lus Opening file should_work/NONREG/alarme.lus @@ -1842,6 +1856,7 @@ let tel -- end of node alarme::alarme + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/arbitre.lus Opening file should_work/NONREG/arbitre.lus @@ -1963,6 +1978,7 @@ let tel -- end of node arbitre::arbitre + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/argos.lus Opening file should_work/NONREG/argos.lus @@ -2027,6 +2043,7 @@ let tel -- end of node argos::argos + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/assertion.lus Opening file should_work/NONREG/assertion.lus @@ -2047,6 +2064,7 @@ let tel -- end of node assertion::assertion + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/aux.lus Opening file should_work/NONREG/aux.lus @@ -2059,6 +2077,7 @@ let tel -- end of node aux::aux + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/aux1.lus Opening file should_work/NONREG/aux1.lus @@ -2088,6 +2107,7 @@ let tel -- end of node aux1::aux1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/bascule.lus Opening file should_work/NONREG/bascule.lus @@ -2119,6 +2139,7 @@ let tel -- end of node bascule::bascule + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/call.lus Opening file should_work/NONREG/call.lus @@ -2148,6 +2169,7 @@ let tel -- end of node call::call + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/ck2.lus Opening file should_work/NONREG/ck2.lus @@ -2166,6 +2188,7 @@ let tel -- end of node ck2::ck2 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/ck3.lus Opening file should_work/NONREG/ck3.lus @@ -2178,6 +2201,7 @@ let tel -- end of node ck3::ck3 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/ck4.lus Opening file should_work/NONREG/ck4.lus @@ -2187,6 +2211,7 @@ let tel -- end of node ck4::ck4 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/ck5.lus Opening file should_work/NONREG/ck5.lus @@ -2213,6 +2238,7 @@ let tel -- end of node ck5::ck5 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/ck6.lus Opening file should_work/NONREG/ck6.lus @@ -2243,6 +2269,7 @@ let tel -- end of node ck6::ck6 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/ck7.lus Opening file should_work/NONREG/ck7.lus @@ -2253,6 +2280,7 @@ let tel -- end of node ck7::ck7 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/clock.lus Opening file should_work/NONREG/clock.lus @@ -2316,6 +2344,7 @@ tel -- end of node clock::clock -- automatically defined aliases: type A_bool_7 = bool^7; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/cminus.lus Opening file should_work/NONREG/cminus.lus @@ -2388,6 +2417,7 @@ let tel -- end of node cminus::cminus + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/compteur.lus Opening file should_work/NONREG/compteur.lus @@ -2404,6 +2434,7 @@ let tel -- end of node compteur::compteur + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/cpt.lus Opening file should_work/NONREG/cpt.lus @@ -2422,6 +2453,7 @@ let tel -- end of node cpt::cpt + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/cst.lus Opening file should_work/NONREG/cst.lus @@ -2445,6 +2477,7 @@ let tel -- end of node cst::cst + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/deconne.lus Opening file should_work/NONREG/deconne.lus @@ -2487,6 +2520,7 @@ let tel -- end of node deconne::deconne + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/dep.lus Opening file should_work/NONREG/dep.lus @@ -2511,6 +2545,7 @@ let tel -- end of node dep::dep + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/dependeur.lus Opening file should_work/NONREG/dependeur.lus @@ -2535,6 +2570,7 @@ let tel -- end of node dependeur::dependeur + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/dependeur_struct.lus Opening file should_work/NONREG/dependeur_struct.lus @@ -2557,6 +2593,7 @@ let tel -- end of node dependeur_struct::dependeur_struct + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/drapfab.lus Opening file should_work/NONREG/drapfab.lus @@ -2685,6 +2722,7 @@ let tel -- end of node drapfab::drapfab + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/enum.lus Opening file should_work/NONREG/enum.lus @@ -2710,6 +2748,7 @@ let tel -- end of node enum::boo + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/eq1.lus Opening file should_work/NONREG/eq1.lus @@ -2747,6 +2786,7 @@ let tel -- end of node eq1::eq1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/ex.lus Opening file should_work/NONREG/ex.lus @@ -2790,6 +2830,7 @@ type A_bool_11 = bool^11; type A_A_A_int_1_2_3 = A_A_int_1_2^3; type A_A_int_1_2 = A_int_1^2; type A_int_1 = int^1; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/exclusion.lus Opening file should_work/NONREG/exclusion.lus @@ -2819,6 +2860,7 @@ let tel -- end of node exclusion::exclusion + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/fby.lus Opening file should_work/NONREG/fby.lus @@ -2833,6 +2875,7 @@ let tel -- end of node fby::followed_by + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/flo.lus Opening file should_work/NONREG/flo.lus @@ -2868,6 +2911,7 @@ let tel -- end of node flo::flo + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/hanane.lus Opening file should_work/NONREG/hanane.lus @@ -2946,6 +2990,7 @@ type A_A_A_int_4_4_4 = A_A_int_4_4^4; type A_A_int_4_4 = A_int_4^4; type A__hanane::structT_2 = _hanane::structT^2; type A_int_4 = int^4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/import1.lus Opening file should_work/NONREG/import1.lus @@ -2961,6 +3006,7 @@ let tel -- end of node import1::import1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/initial.lus Opening file should_work/NONREG/initial.lus @@ -2979,6 +3025,7 @@ let tel -- end of node initial::initial + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/long_et_stupide_nom_de_noeud.lus Opening file should_work/NONREG/long_et_stupide_nom_de_noeud.lus @@ -2995,6 +3042,7 @@ let tel -- end of node long_et_stupide_nom_de_noeud::long_et_stupide_nom_de_noeud + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax1.lus Opening file should_work/NONREG/minmax1.lus @@ -3013,6 +3061,7 @@ let tel -- end of node minmax1::minmax1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax2.lus Opening file should_work/NONREG/minmax2.lus @@ -3036,6 +3085,7 @@ let tel -- end of node minmax2::minmax2 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax3.lus Opening file should_work/NONREG/minmax3.lus @@ -3073,6 +3123,7 @@ let tel -- end of node minmax3::minmax3 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax4.lus Opening file should_work/NONREG/minmax4.lus @@ -3117,6 +3168,7 @@ let tel -- end of node minmax4::minmax4 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax4_bis.lus Opening file should_work/NONREG/minmax4_bis.lus @@ -3161,6 +3213,7 @@ let tel -- end of node minmax4_bis::minmax4_bis + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax5.lus Opening file should_work/NONREG/minmax5.lus @@ -3192,6 +3245,7 @@ let tel -- end of node minmax5::minmax5 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax5_random.lus Opening file should_work/NONREG/minmax5_random.lus @@ -3229,6 +3283,7 @@ let tel -- end of node minmax5_random::minmax5_random + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/minmax6.lus Opening file should_work/NONREG/minmax6.lus @@ -3290,6 +3345,7 @@ let tel -- end of node minmax6::minmax6 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mm.lus Opening file should_work/NONREG/mm.lus @@ -3310,6 +3366,7 @@ let tel -- end of node mm::mm + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mm1.lus Opening file should_work/NONREG/mm1.lus @@ -3330,6 +3387,7 @@ let tel -- end of node mm1::mm1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mm22.lus Opening file should_work/NONREG/mm22.lus @@ -3347,6 +3405,7 @@ let tel -- end of node mm22::mm22 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mm3.lus Opening file should_work/NONREG/mm3.lus @@ -3379,6 +3438,7 @@ let tel -- end of node mm3::mm3 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mouse.lus Opening file should_work/NONREG/mouse.lus @@ -3465,6 +3525,7 @@ let tel -- end of node mouse::mouse + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mouse1.lus Opening file should_work/NONREG/mouse1.lus @@ -3535,6 +3596,7 @@ let tel -- end of node mouse1::mouse1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mouse2.lus Opening file should_work/NONREG/mouse2.lus @@ -3621,6 +3683,7 @@ let tel -- end of node mouse2::mouse2 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/mouse3.lus Opening file should_work/NONREG/mouse3.lus @@ -3667,6 +3730,7 @@ let tel -- end of node mouse3::mouse3 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/multiclock.lus Opening file should_work/NONREG/multiclock.lus @@ -3712,6 +3776,7 @@ let tel -- end of node multiclock::multiclock + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc1.lus Opening file should_work/NONREG/nc1.lus @@ -3734,6 +3799,7 @@ let tel -- end of node nc1::nc1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc10.lus Opening file should_work/NONREG/nc10.lus @@ -3795,6 +3861,7 @@ let tel -- end of node nc10::nc10 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc2.lus Opening file should_work/NONREG/nc2.lus @@ -3823,6 +3890,7 @@ let tel -- end of node nc2::nc2 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc3.lus Opening file should_work/NONREG/nc3.lus @@ -3857,6 +3925,7 @@ let tel -- end of node nc3::nc3 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc4.lus Opening file should_work/NONREG/nc4.lus @@ -3901,6 +3970,7 @@ let tel -- end of node nc4::nc4 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc5.lus Opening file should_work/NONREG/nc5.lus @@ -3935,6 +4005,7 @@ let tel -- end of node nc5::nc5 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc6.lus Opening file should_work/NONREG/nc6.lus @@ -3978,6 +4049,7 @@ let tel -- end of node nc6::nc6 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc7.lus Opening file should_work/NONREG/nc7.lus @@ -4027,6 +4099,7 @@ let tel -- end of node nc7::nc7 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc8.lus Opening file should_work/NONREG/nc8.lus @@ -4081,6 +4154,7 @@ let tel -- end of node nc8::nc8 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/nc9.lus Opening file should_work/NONREG/nc9.lus @@ -4138,6 +4212,7 @@ let tel -- end of node nc9::nc9 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/node_caller1.lus Opening file should_work/NONREG/node_caller1.lus @@ -4184,6 +4259,7 @@ let tel -- end of node node_caller1::node_caller1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/o2l_feux_compl.lus Opening file should_work/NONREG/o2l_feux_compl.lus @@ -7084,6 +7160,7 @@ let tel -- end of node o2l_feux_compl::o2l_feux_compl + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/packed_cst.lus Opening file should_work/NONREG/packed_cst.lus @@ -7107,6 +7184,7 @@ let tel -- end of node cst::cst + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/patrick.lus Opening file should_work/NONREG/patrick.lus @@ -7121,6 +7199,7 @@ let tel -- end of node patrick::patrick + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/poussoir.lus Opening file should_work/NONREG/poussoir.lus @@ -7173,6 +7252,7 @@ let tel -- end of node poussoir::poussoir + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/rs.lus Opening file should_work/NONREG/rs.lus @@ -7205,6 +7285,7 @@ let tel -- end of node rs::rs + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/s.lus Opening file should_work/NONREG/s.lus @@ -7215,6 +7296,7 @@ let tel -- end of node s::s + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/simple.lus Opening file should_work/NONREG/simple.lus @@ -7245,6 +7327,7 @@ tel extern function simple::f1(x:int) returns (y:int); extern function simple::f2(u:int; v:int) returns (s:int; t:bool); + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/stopwatch.lus Opening file should_work/NONREG/stopwatch.lus @@ -7331,6 +7414,7 @@ let tel -- end of node stopwatch::stopwatch + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/testCA.lus Opening file should_work/NONREG/testCA.lus @@ -7355,6 +7439,7 @@ let tel -- end of node testCA::testCA + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/test_clash.lus Opening file should_work/NONREG/test_clash.lus @@ -7374,6 +7459,7 @@ let tel -- end of node test::toto + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/trivial.lus Opening file should_work/NONREG/trivial.lus @@ -7395,6 +7481,7 @@ let tel -- end of node trivial::trivial + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/trivial2.lus Opening file should_work/NONREG/trivial2.lus @@ -7419,6 +7506,7 @@ let tel -- end of node trivial2::trivial2 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/uu.lus Opening file should_work/NONREG/uu.lus @@ -7519,6 +7607,7 @@ let tel -- end of node uu::uu + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/NONREG/v1.lus Opening file should_work/NONREG/v1.lus @@ -7531,6 +7620,7 @@ let tel -- end of node v1::v1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/consensus.lus Opening file should_work/Pascal/consensus.lus @@ -7694,6 +7784,7 @@ type A_bool_2 = bool^2; type A_bool_6 = bool^6; type A_bool_10 = bool^10; type A_bool_3 = bool^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/fby.lus Opening file should_work/Pascal/fby.lus @@ -7720,6 +7811,7 @@ let tel -- end of node fby::rising_edge + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/func_with_body.lus Opening file should_work/Pascal/func_with_body.lus @@ -7730,6 +7822,7 @@ let tel -- end of node func_with_body::trivial + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/heater_control.lus Opening file should_work/Pascal/heater_control.lus @@ -7975,6 +8068,7 @@ let tel -- end of node heater_control::not_a_sauna + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/left.lus Opening file should_work/Pascal/left.lus @@ -7993,6 +8087,7 @@ tel -- automatically defined aliases: type A__left::truc_3 = _left::truc^3; type A_bool_100 = bool^100; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/newpacks.lus Opening file should_work/Pascal/newpacks.lus @@ -8059,6 +8154,7 @@ tel -- end of node mainPack::preced const inter::n = -4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/onlyroll.lus Opening file should_work/Pascal/onlyroll.lus @@ -9167,6 +9263,7 @@ let tel -- end of node onlyroll::InHardoverRange + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/p.lus Opening file should_work/Pascal/p.lus @@ -9233,6 +9330,7 @@ tel -- end of node mainPack::preced const inter::n = -4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/packs.lus Opening file should_work/Pascal/packs.lus @@ -9304,6 +9402,7 @@ tel -- end of node mainPack::preced type _inter::toto = enum {inter::X, inter::Y}; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/pfs.lus Opening file should_work/Pascal/pfs.lus @@ -9321,6 +9420,7 @@ let tel -- end of node struct0::bibi + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/t.lus Opening file should_work/Pascal/t.lus @@ -9335,6 +9435,7 @@ tel -- automatically defined aliases: type A_A_int_2_3 = A_int_2^3; type A_int_2 = int^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/t0.lus Opening file should_work/Pascal/t0.lus @@ -9412,6 +9513,7 @@ type A_int_2 = int^2; type A_int_3 = int^3; type A_int_4 = int^4; type A_int_1 = int^1; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/t1.lus Opening file should_work/Pascal/t1.lus @@ -9475,6 +9577,7 @@ type A_bool_3 = bool^3; type A_bool_4 = bool^4; type A_bool_1 = bool^1; type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/t2.lus Opening file should_work/Pascal/t2.lus @@ -9488,6 +9591,7 @@ Opening file should_work/Pascal/test.lus const P1::y = 3; type _P1::titi = int^5; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/Pascal/trivial.lus Opening file should_work/Pascal/trivial.lus @@ -9497,6 +9601,7 @@ let tel -- end of node trivial::trivial + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/bad_call02.lus Opening file should_work/call/bad_call02.lus @@ -9506,10 +9611,11 @@ let tel -- end of node bad_call02::bad_call02 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/bad_call03.lus Opening file should_work/call/bad_call03.lus -function bad_call03::toto(i1:A_o_3; i2:A_o_3) returns (o:A_o_3); +node bad_call03::toto(i1:A_o_3; i2:A_o_3) returns (o:A_o_3); let o = (Lustre::map<<Lustre::plus, 3>>(i1, i2)); tel @@ -9537,10 +9643,11 @@ tel type A_int_3 = int^3; type A_o_3 = o^3; type A_real_3 = real^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/call01.lus Opening file should_work/call/call01.lus -function call01::toto(i1:bool; i2:bool) returns (o:bool); +node call01::toto(i1:bool; i2:bool) returns (o:bool); let o = (Lustre::and(i1, i2)); tel @@ -9552,15 +9659,16 @@ tel -- end of node call01::call01 extern function call01::momo(x:bool; y:bool) returns (z:bool); + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/call02.lus Opening file should_work/call/call02.lus -function call02::toto(i1:bool; i2:bool) returns (o:bool); +node call02::toto(i1:bool; i2:bool) returns (o:bool); let o = (Lustre::and(i1, i2)); tel -- end of node call02::toto -function call02::titi(i1:bool; i2:bool) returns (o:bool); +node call02::titi(i1:bool; i2:bool) returns (o:bool); let o = (call02::toto(i1, i2)); tel @@ -9571,10 +9679,11 @@ let tel -- end of node call02::call02 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/call03.lus Opening file should_work/call/call03.lus -function call03::tutu(i1:A_bool_2; i2:A_bool_2) returns (o:A_bool_2); +node call03::tutu(i1:A_bool_2; i2:A_bool_2) returns (o:A_bool_2); let o = (Lustre::map<<Lustre::or, 2>>(i1, i2)); tel @@ -9587,20 +9696,21 @@ tel extern function call03::momo(x:bool; y:bool) returns (z:bool); -- automatically defined aliases: type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/call04.lus Opening file should_work/call/call04.lus -function call04::toto(i1:bool; i2:bool) returns (o:bool); +node call04::toto(i1:bool; i2:bool) returns (o:bool); let o = (Lustre::and(i1, i2)); tel -- end of node call04::toto -function call04::titi(i1:bool; i2:bool) returns (o:bool); +node call04::titi(i1:bool; i2:bool) returns (o:bool); let o = (call04::toto(i1, i2)); tel -- end of node call04::titi -function call04::tutu(i1:A_bool_2; i2:A_bool_2) returns (o:A_bool_2); +node call04::tutu(i1:A_bool_2; i2:A_bool_2) returns (o:A_bool_2); let o = (Lustre::map<<call04::titi, 2>>(i1, i2)); tel @@ -9612,6 +9722,7 @@ tel -- end of node call04::call04 -- automatically defined aliases: type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/call05.lus Opening file should_work/call/call05.lus @@ -9622,6 +9733,7 @@ let tel -- end of node call05::call05 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/call06.lus Opening file should_work/call/call06.lus @@ -9633,6 +9745,7 @@ let tel -- end of node call06::call06 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/call/call07.lus Opening file should_work/call/call07.lus @@ -9642,6 +9755,7 @@ let tel -- end of node call07::call07 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/clock/clock.lus Opening file should_work/clock/clock.lus @@ -9693,6 +9807,7 @@ returns ( clock2_y:bool); -- automatically defined aliases: type A_bool_10 = bool^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/clock/clock2.lus Opening file should_work/clock/clock2.lus @@ -9707,6 +9822,7 @@ let tel -- end of node clock2::clock + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/clock/clock_ite.lus Opening file should_work/clock/clock_ite.lus @@ -9725,6 +9841,7 @@ let tel -- end of node clock_ite::clock + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/clock/when_enum.lus Opening file should_work/clock/when_enum.lus @@ -10358,16 +10475,17 @@ type A_real_4 = real^4; type A__Gyroscope2::Faulty_ChannelT_4 = _Gyroscope2::Faulty_ChannelT^4; type A_A__Gyroscope2::Faulty_ChannelT_4_3 = A__Gyroscope2::Faulty_ChannelT_4^3; type A_bool_3 = bool^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/alias.lus Opening file should_work/demo/alias.lus const alias::SIZE = 3; -function alias::aliasIterOp(i1:int; i2:A_int_3) returns (o:int); +node alias::aliasIterOp(i1:int; i2:A_int_3) returns (o:int); let o = (Lustre::red<<Lustre::iplus, 3>>(i1, i2)); tel -- end of node alias::aliasIterOp -function alias::aliasBoolRed(i:A_bool_2) returns (o:bool); +node alias::aliasBoolRed(i:A_bool_2) returns (o:bool); let o = (Lustre::boolred<<0, 1, 2>>(i)); tel @@ -10387,7 +10505,7 @@ let c = (alias::unNoeud(a, b)); tel -- end of node alias::aliasGivenNode -function alias::aliasPredefNot(i:bool) returns (o:bool); +node alias::aliasPredefNot(i:bool) returns (o:bool); let o = (Lustre::not (i)); tel @@ -10408,6 +10526,7 @@ tel -- automatically defined aliases: type A_bool_2 = bool^2; type A_int_3 = int^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/bred.lus Opening file should_work/demo/bred.lus @@ -10418,6 +10537,7 @@ tel -- end of node bred::bred -- automatically defined aliases: type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/bred_lv4.lus Opening file should_work/demo/bred_lv4.lus @@ -10429,6 +10549,7 @@ tel -- end of node bred_lv4::bred -- automatically defined aliases: type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/clock.lus Opening file should_work/demo/clock.lus @@ -10461,6 +10582,7 @@ let tel -- end of node clock::clock + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/clock1_2ms.lus Opening file should_work/demo/clock1_2ms.lus @@ -10499,6 +10621,7 @@ let tel -- end of node clock1_2ms::clock1_2ms + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/decl.lus Opening file should_work/demo/decl.lus @@ -10543,6 +10666,7 @@ returns ( type A_A__decl::t1_8_5 = A__decl::t1_8^5; type A__decl::t1_8 = _decl::t1^8; type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/declaration.lus Opening file should_work/demo/declaration.lus @@ -10610,6 +10734,7 @@ tel type A_A__declaration::t1_8_5 = A__declaration::t1_8^5; type A__declaration::t1_8 = _declaration::t1^8; type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/def.lus Opening file should_work/demo/def.lus @@ -10816,6 +10941,7 @@ type A_A_A_int_4_4_4 = A_A_int_4_4^4; type A_A_int_4_4 = A_int_4^4; type A__def::structT_2 = _def::structT^2; type A_int_4 = int^4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/filliter.lus Opening file should_work/demo/filliter.lus @@ -10854,6 +10980,7 @@ tel -- automatically defined aliases: type A_int_3 = int^3; type A_int_4 = int^4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/filter.lus Opening file should_work/demo/filter.lus @@ -10887,6 +11014,7 @@ let tel -- end of node filter::filter + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/lustre_test1_ok.lus Opening file should_work/demo/lustre_test1_ok.lus @@ -11008,6 +11136,7 @@ let tel -- end of node lustre_test1_ok::lustre_test1_ok + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/map_red_iter.lus Opening file should_work/demo/map_red_iter.lus @@ -11057,6 +11186,7 @@ tel type A_int_20 = int^20; type A_bool_20 = bool^20; type A_int_4 = int^4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/mapdeRed.lus Opening file should_work/demo/mapdeRed.lus @@ -11078,13 +11208,23 @@ returns ( T:A_A_int_2_3; bid:int); let - (bid, T) = (fill<<Lustre::fill<<mapdeRed::incr, 2>>, 3>>(init2)); - r = (red<<Lustre::map<<Lustre::plus, 2>>, 3>>(init, T)); + (bid, T) = (fill<<_node_alias_1_Lustre::fill, 3>>(init2)); + r = (red<<_node_alias_2_Lustre::map, 3>>(init, T)); tel -- end of node mapdeRed::mapdeRed -- automatically defined aliases: type A_A_int_2_3 = A_int_2^3; type A_int_2 = int^2; +node _node_alias_2_Lustre::map(i1:A_o_2; i2:A_o_2) returns (o:A_o_2); +let + o = Lustre::map<<Lustre::plus, 2>>(i1); +tel +node _node_alias_1_Lustre::fill(i:int) returns (accu:int; s:A_int_2); +let + accu = Lustre::fill<<mapdeRed::incr, 2>>(i); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/mapiter.lus Opening file should_work/demo/mapiter.lus @@ -11095,12 +11235,18 @@ tel -- end of node mapiter::incr_tab node mapiter::mapiter(i1:A_A_int_7_3) returns (s1:A_A_int_7_3); let - s1 = (map<<Lustre::map<<mapiter::incr_tab, 7>>, 3>>(i1)); + s1 = (map<<_node_alias_1_Lustre::map, 3>>(i1)); tel -- end of node mapiter::mapiter -- automatically defined aliases: type A_A_int_7_3 = A_int_7^3; type A_int_7 = int^7; +node _node_alias_1_Lustre::map(a:A_int_7) returns (b:A_int_7); +let + b = Lustre::map<<mapiter::incr_tab, 7>>(a); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/mappredef.lus Opening file should_work/demo/mappredef.lus @@ -11132,6 +11278,7 @@ tel -- automatically defined aliases: type A_bool_3 = bool^3; type A_int_3 = int^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/plus.lus Opening file should_work/demo/plus.lus @@ -11168,6 +11315,7 @@ tel -- end of node plus::plus -- automatically defined aliases: type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/pre_x.lus Opening file should_work/demo/pre_x.lus @@ -11192,6 +11340,7 @@ let tel -- end of node pre_x::pre_x + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/rediter.lus Opening file should_work/demo/rediter.lus @@ -11205,12 +11354,18 @@ tel -- end of node rediter::max node rediter::rediter(a:A_A_int_5_3) returns (b:int); let - b = (red<<Lustre::red<<rediter::max, 5>>, 3>>(0, a)); + b = (red<<_node_alias_1_Lustre::red, 3>>(0, a)); tel -- end of node rediter::rediter -- automatically defined aliases: type A_A_int_5_3 = A_int_5^3; type A_int_5 = int^5; +node _node_alias_1_Lustre::red(init:int; a:A_int_5) returns (b:int); +let + b = Lustre::red<<rediter::max, 5>>(init); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/redoptest.lus Opening file should_work/demo/redoptest.lus @@ -11224,12 +11379,18 @@ tel -- end of node redoptest::max node redoptest::redoptest(a:A_A_int_5_3) returns (b:int); let - b = (red<<Lustre::red<<Lustre::plus, 5>>, 3>>(0, a)); + b = (red<<_node_alias_1_Lustre::red, 3>>(0, a)); tel -- end of node redoptest::redoptest -- automatically defined aliases: type A_A_int_5_3 = A_int_5^3; type A_int_5 = int^5; +node _node_alias_1_Lustre::red(i1:o; i2:A_o_5) returns (o:o); +let + o = Lustre::red<<Lustre::plus, 5>>(i1); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/demo/sample_time_change.lus Opening file should_work/demo/sample_time_change.lus @@ -11374,6 +11535,7 @@ let tel -- end of node sample_time_change::MainNode + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/bob.lus Opening file should_work/fab_test/bob.lus @@ -11397,6 +11559,7 @@ let tel -- end of node bob::bob + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/def.lus Opening file should_work/fab_test/def.lus @@ -11407,6 +11570,7 @@ let tel -- end of node def::def + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/ex.lus Opening file should_work/fab_test/ex.lus @@ -11436,6 +11600,7 @@ let tel -- end of node ex::ex + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/iter.lus Opening file should_work/fab_test/iter.lus @@ -11492,6 +11657,7 @@ tel -- end of node iter::plus -- automatically defined aliases: type A_int_5 = int^5; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/iterate.lus Opening file should_work/fab_test/iterate.lus @@ -11577,6 +11743,7 @@ tel -- end of node iterate::iterate -- automatically defined aliases: type A_int_10 = int^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/lecteur.lus Opening file should_work/fab_test/lecteur.lus @@ -11676,6 +11843,7 @@ let tel -- end of node lecteur::lecteur + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/lucky.lus Opening file should_work/fab_test/lucky.lus @@ -11786,6 +11954,7 @@ let tel -- end of node lucky::lucky + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/morel.lus Opening file should_work/fab_test/morel.lus @@ -11895,6 +12064,7 @@ tel type A_bool_3 = bool^3; type A_int_2 = int^2; type A_A_int_2_3 = A_int_2^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/morel2.lus Opening file should_work/fab_test/morel2.lus @@ -11993,6 +12163,7 @@ tel type A_bool_3 = bool^3; type A_int_2 = int^2; type A_A_int_2_3 = A_int_2^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/morel3.lus Opening file should_work/fab_test/morel3.lus @@ -12096,6 +12267,7 @@ tel type A_bool_3 = bool^3; type A_int_2 = int^2; type A_A_int_2_3 = A_int_2^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/morel4.lus Opening file should_work/fab_test/morel4.lus @@ -12216,6 +12388,7 @@ tel type A_bool_3 = bool^3; type A_int_2 = int^2; type A_A_int_2_3 = A_int_2^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/morel5.lus Opening file should_work/fab_test/morel5.lus @@ -12350,6 +12523,7 @@ type A_A_int_2_2 = A_int_2^2; type A_bool_3 = bool^3; type A_int_2 = int^2; type A_A_int_2_3 = A_int_2^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/noAlarm.lus Opening file should_work/fab_test/noAlarm.lus @@ -12359,6 +12533,7 @@ let tel -- end of node noAlarm::noAlarm + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/notTwo.lus Opening file should_work/fab_test/notTwo.lus @@ -12371,6 +12546,7 @@ let tel -- end of node notTwo::notTwo + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/onlyroll.lus Opening file should_work/fab_test/onlyroll.lus @@ -13482,6 +13658,7 @@ let tel -- end of node onlyroll::InHardoverRange + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/onlyroll2.lus Opening file should_work/fab_test/onlyroll2.lus @@ -14597,6 +14774,7 @@ let tel -- end of node onlyroll2::InHardoverRange + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/test.lus Opening file should_work/fab_test/test.lus @@ -14670,6 +14848,7 @@ let tel -- end of node test::test + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/titi.lus Opening file should_work/fab_test/titi.lus @@ -14682,6 +14861,7 @@ let tel -- end of node titi::titi + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/toolate.lus Opening file should_work/fab_test/toolate.lus @@ -14808,6 +14988,7 @@ type A_int_2 = int^2; type A_int_5 = int^5; type A_int_3 = int^3; type A_A_int_5_6 = A_int_5^6; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/fab_test/toto.lus Opening file should_work/fab_test/toto.lus @@ -14826,6 +15007,7 @@ let tel -- end of node toto::toto + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/FillFollowedByRed.lus Opening file should_work/lionel/FillFollowedByRed.lus @@ -14868,6 +15050,7 @@ tel -- end of node FillFollowedByRed::FillFollowedByRed -- automatically defined aliases: type A_real_10 = real^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/Gyroscope.lus Opening file should_work/lionel/Gyroscope.lus @@ -15312,6 +15495,7 @@ type A_A__Gyroscope::Faulty_ChannelT_4_3 = A__Gyroscope::Faulty_ChannelT_4^3; type A__Gyroscope::Faulty_ChannelT_4 = _Gyroscope::Faulty_ChannelT^4; type A_real_3 = real^3; type A__Gyroscope::Valid_ChannelT_4 = _Gyroscope::Valid_ChannelT^4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/ProduitBool/produitBool.lus Opening file should_work/lionel/ProduitBool/produitBool.lus @@ -15463,6 +15647,7 @@ tel type A_A_bool_20_10 = A_bool_20^10; type A_bool_10 = bool^10; type A_bool_20 = bool^20; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/ProduitBool/shiftFill_ludic.lus Opening file should_work/lionel/ProduitBool/shiftFill_ludic.lus @@ -15544,6 +15729,7 @@ tel -- end of node shiftFill_ludic::n_shiftFill -- automatically defined aliases: type A_bool_10 = bool^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/ProduitBool/shift_ludic.lus Opening file should_work/lionel/ProduitBool/shift_ludic.lus @@ -15639,6 +15825,7 @@ tel -- automatically defined aliases: type A_bool_20 = bool^20; type A_bool_10 = bool^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/arrays.lus Opening file should_work/lionel/arrays.lus @@ -15657,20 +15844,19 @@ tel -- end of node arrays::incr node arrays::big_sum(x:A_A_A_int_4_3_2) returns (s:int); let - s = (red<<Lustre::red<<Lustre::red<<Lustre::plus, 4>>, 3>>, 2>>(0, x)); + s = (red<<_node_alias_1_Lustre::red, 2>>(0, x)); tel -- end of node arrays::big_sum node arrays::big_or(x:A_A_A_bool_4_3_2) returns (s:bool); let - s = (red<<Lustre::red<<Lustre::red<<Lustre::or, 4>>, 3>>, 2>>(false, x)); + s = (red<<_node_alias_2_Lustre::red, 2>>(false, x)); tel -- end of node arrays::big_or node arrays::big_incr(init:int) returns (x:A_A_A_int_4_3_2); var accout:int; let - (accout, x) = (fill<<Lustre::fill<<Lustre::fill<<arrays::incr, 4>>, 3>>, - 2>>(init)); + (accout, x) = (fill<<_node_alias_3_Lustre::fill, 2>>(init)); tel -- end of node arrays::big_incr @@ -15702,13 +15888,12 @@ returns ( var co:bool; let - (co, s) = (fillred<<Lustre::fillred<<Lustre::fillred<<arrays::full_adder, - 4>>, 3>>, 2>>(false, x, y)); + (co, s) = (fillred<<_node_alias_4_Lustre::fillred, 2>>(false, x, y)); tel -- end of node arrays::add_long node arrays::big_xor(x:A_A_A_bool_4_3_2) returns (s:bool); let - s = (red<<Lustre::red<<Lustre::red<<Lustre::xor, 4>>, 3>>, 2>>(false, x)); + s = (red<<_node_alias_5_Lustre::red, 2>>(false, x)); tel -- end of node arrays::big_xor @@ -15748,6 +15933,49 @@ type A_bool_4 = bool^4; type A_A_int_4_3 = A_int_4^3; type A_A_A_bool_4_3_2 = A_A_bool_4_3^2; type A_int_4 = int^4; +node _node_alias_4_Lustre::fillred(ci:bool; x:A_A_bool_4_3; y:A_A_bool_4_3) returns (co:bool; s:A_A_bool_4_3); +let + co = Lustre::fillred<<_node_alias_6_Lustre::fillred, 3>>(ci); +tel +node _node_alias_5_Lustre::red(i1:bool; i2:A_A_bool_4_3) returns (o:bool); +let + o = Lustre::red<<_node_alias_7_Lustre::red, 3>>(i1); +tel +node _node_alias_3_Lustre::fill(accin:int) returns (accout:int; val:A_A_int_4_3); +let + accout = Lustre::fill<<_node_alias_8_Lustre::fill, 3>>(accin); +tel +node _node_alias_2_Lustre::red(i1:bool; i2:A_A_bool_4_3) returns (o:bool); +let + o = Lustre::red<<_node_alias_9_Lustre::red, 3>>(i1); +tel +node _node_alias_1_Lustre::red(i1:o; i2:A_A_o_4_3) returns (o:o); +let + o = Lustre::red<<_node_alias_10_Lustre::red, 3>>(i1); +tel + +node _node_alias_8_Lustre::fill(accin:int) returns (accout:int; val:A_int_4); +let + accout = Lustre::fill<<arrays::incr, 4>>(accin); +tel +node _node_alias_7_Lustre::red(i1:bool; i2:A_bool_4) returns (o:bool); +let + o = Lustre::red<<Lustre::xor, 4>>(i1); +tel +node _node_alias_6_Lustre::fillred(ci:bool; x:A_bool_4; y:A_bool_4) returns (co:bool; s:A_bool_4); +let + co = Lustre::fillred<<arrays::full_adder, 4>>(ci); +tel +node _node_alias_10_Lustre::red(i1:o; i2:A_o_4) returns (o:o); +let + o = Lustre::red<<Lustre::plus, 4>>(i1); +tel +node _node_alias_9_Lustre::red(i1:bool; i2:A_bool_4) returns (o:bool); +let + o = Lustre::red<<Lustre::or, 4>>(i1); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/calculs_max.lus Opening file should_work/lionel/calculs_max.lus @@ -15830,6 +16058,7 @@ tel -- automatically defined aliases: type A_int_10 = int^10; type A_bool_10 = bool^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/deSimone.lus Opening file should_work/lionel/deSimone.lus @@ -15902,6 +16131,7 @@ tel -- end of node deSimone::prop1 -- automatically defined aliases: type A_bool_10 = bool^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/iterFibo.lus Opening file should_work/lionel/iterFibo.lus @@ -15937,6 +16167,7 @@ tel -- automatically defined aliases: type A_int_10 = int^10; type A_int_2 = int^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/mapiter.lus Opening file should_work/lionel/mapiter.lus @@ -15954,7 +16185,7 @@ let _v2 = (init + 1); tel -- end of node mapiter::incr -function mapiter::map_egal(i1:A_a_2; i2:A_a_2) returns (o:A_bool_2); +node mapiter::map_egal(i1:A_a_2; i2:A_a_2) returns (o:A_bool_2); let o = (Lustre::map<<Lustre::equal, 2>>(i1, i2)); tel @@ -15965,7 +16196,7 @@ let out = in; tel -- end of node mapiter::bitalt -function mapiter::fill_bitalt(in:bool) returns (sacc:bool; out:A_bool_2); +node mapiter::fill_bitalt(in:bool) returns (sacc:bool; out:A_bool_2); let (sacc, out) = (Lustre::fill<<mapiter::bitalt, 2>>(in)); tel @@ -15975,7 +16206,7 @@ let (sacc, R) = (fill<<mapiter::fill_bitalt, 3>>(iacc)); tel -- end of node mapiter::initmat -function mapiter::red_incr(init:int; b:A_bool_2) returns (res:int); +node mapiter::red_incr(init:int; b:A_bool_2) returns (res:int); let res = (Lustre::red<<mapiter::incr, 2>>(init, b)); tel @@ -16015,6 +16246,7 @@ tel type A_A_bool_2_3 = A_bool_2^3; type A_a_2 = a^2; type A_bool_2 = bool^2; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/matrice.lus Opening file should_work/lionel/matrice.lus @@ -16050,15 +16282,25 @@ returns ( var _v1:A_int_2; let - (bid, T) = (fill<<Lustre::fill<<matrice::fibo, 3>>, 2>>(_v1)); + (bid, T) = (fill<<_node_alias_1_Lustre::fill, 2>>(_v1)); _v1 = ([a, a]); - sum = (red<<Lustre::red<<Lustre::plus, 3>>, 2>>(0, T)); + sum = (red<<_node_alias_2_Lustre::red, 2>>(0, T)); tel -- end of node matrice::matrice -- automatically defined aliases: type A_int_2 = int^2; type A_A_int_3_2 = A_int_3^2; type A_int_3 = int^3; +node _node_alias_2_Lustre::red(i1:o; i2:A_o_3) returns (o:o); +let + o = Lustre::red<<Lustre::plus, 3>>(i1); +tel +node _node_alias_1_Lustre::fill(accu_in:A_int_2) returns (accu_out:A_int_2; elt:A_int_3); +let + accu_out = Lustre::fill<<matrice::fibo, 3>>(accu_in); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/matrice2.lus Opening file should_work/lionel/matrice2.lus @@ -16069,7 +16311,7 @@ var _v1:A_int_2; _v2:A_A_int_2_2; let - res = (red<<Lustre::red<<Lustre::plus, 2>>, 2>>(0, _v2)); + res = (red<<_node_alias_1_Lustre::red, 2>>(0, _v2)); _v1 = (1^2); _v2 = (_v1^2); tel @@ -16077,6 +16319,12 @@ tel -- automatically defined aliases: type A_A_int_2_2 = A_int_2^2; type A_int_2 = int^2; +node _node_alias_1_Lustre::red(i1:o; i2:A_o_2) returns (o:o); +let + o = Lustre::red<<Lustre::plus, 2>>(i1); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/minus.lus Opening file should_work/lionel/minus.lus @@ -16104,11 +16352,11 @@ var _v3:A_bool_3; _v4:bool; let - T1 = (map<<Lustre::map<<Lustre::if, 3>>, 2>>(a, b, c)); - (bid, T2) = (fill<<Lustre::fill<<minus::bitalt, 3>>, 2>>(_v2)); + T1 = (map<<_node_alias_1_Lustre::map, 2>>(a, b, c)); + (bid, T2) = (fill<<_node_alias_2_Lustre::fill, 2>>(_v2)); _v1 = a[0]; _v2 = _v1[0]; - r = (red<<Lustre::red<<Lustre::xor, 3>>, 2>>(_v4, T1)); + r = (red<<_node_alias_3_Lustre::red, 2>>(_v4, T1)); _v3 = a[0]; _v4 = _v3[0]; tel @@ -16116,6 +16364,20 @@ tel -- automatically defined aliases: type A_A_bool_3_2 = A_bool_3^2; type A_bool_3 = bool^3; +node _node_alias_2_Lustre::fill(a:bool) returns (out:bool; b:A_bool_3); +let + out = Lustre::fill<<minus::bitalt, 3>>(a); +tel +node _node_alias_3_Lustre::red(i1:bool; i2:A_bool_3) returns (o:bool); +let + o = Lustre::red<<Lustre::xor, 3>>(i1); +tel +node _node_alias_1_Lustre::map(c:A_bool_3; b1:A_a_3; b2:A_a_3) returns (o:A_a_3); +let + o = Lustre::map<<Lustre::if, 3>>(c); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/moyenne.lus Opening file should_work/lionel/moyenne.lus @@ -16144,6 +16406,7 @@ tel -- end of node moyenne::moyenne -- automatically defined aliases: type A_real_10 = real^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/normal.lus Opening file should_work/lionel/normal.lus @@ -16516,6 +16779,7 @@ type A_bool_20 = bool^20; type A_A_bool_20_4 = A_bool_20^4; type A_A_int_20_4 = A_int_20^4; type A_int_20 = int^20; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/pipeline.lus Opening file should_work/lionel/pipeline.lus @@ -16550,6 +16814,7 @@ tel -- end of node pipeline::pipeline -- automatically defined aliases: type A_bool_10 = bool^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/predefOp.lus Opening file should_work/lionel/predefOp.lus @@ -16582,7 +16847,7 @@ returns ( sacc:bool; R:A_A_bool_2_3); let - (sacc, R) = (fill<<Lustre::fill<<predefOp::bitalt, 2>>, 3>>(iacc)); + (sacc, R) = (fill<<_node_alias_1_Lustre::fill, 3>>(iacc)); tel -- end of node predefOp::initmatbool @@ -16592,12 +16857,12 @@ node predefOp::composematbool( returns ( s1:A_A_bool_2_3); let - s1 = (map<<Lustre::map<<Lustre::=>, 2>>, 3>>(i1, i2)); + s1 = (map<<_node_alias_2_Lustre::map, 3>>(i1, i2)); tel -- end of node predefOp::composematbool node predefOp::reducematbool(iacc:int; I:A_A_bool_2_3) returns (res:int); let - res = (red<<Lustre::red<<predefOp::incr, 2>>, 3>>(iacc, I)); + res = (red<<_node_alias_3_Lustre::red, 3>>(iacc, I)); tel -- end of node predefOp::reducematbool @@ -16628,8 +16893,8 @@ returns ( s1:A_A_int_2_3; s2:A_A_bool_2_3); let - s1 = (map<<Lustre::map<<Lustre::div, 2>>, 3>>(i1, i2)); - s2 = (map<<Lustre::map<<Lustre::gte, 2>>, 3>>(i1, i2)); + s1 = (map<<_node_alias_4_Lustre::map, 3>>(i1, i2)); + s2 = (map<<_node_alias_5_Lustre::map, 3>>(i1, i2)); tel -- end of node predefOp::composematint node predefOp::incremental(iacc:int) returns (oacc:int; res:int); @@ -16640,12 +16905,12 @@ tel -- end of node predefOp::incremental node predefOp::reducematint(iacc:int; I:A_A_int_2_3) returns (res:int); let - res = (red<<Lustre::red<<Lustre::plus, 2>>, 3>>(iacc, I)); + res = (red<<_node_alias_6_Lustre::red, 3>>(iacc, I)); tel -- end of node predefOp::reducematint node predefOp::initmatint(iacc:int) returns (sacc:int; R:A_A_int_2_3); let - (sacc, R) = (fill<<Lustre::fill<<predefOp::incremental, 2>>, 3>>(iacc)); + (sacc, R) = (fill<<_node_alias_7_Lustre::fill, 3>>(iacc)); tel -- end of node predefOp::initmatint @@ -16674,6 +16939,36 @@ type A_int_2 = int^2; type A_A_bool_2_3 = A_bool_2^3; type A_A_int_2_3 = A_int_2^3; type A_bool_2 = bool^2; +node _node_alias_1_Lustre::fill(iacc:bool) returns (oacc:bool; res:A_bool_2); +let + oacc = Lustre::fill<<predefOp::bitalt, 2>>(iacc); +tel +node _node_alias_7_Lustre::fill(iacc:int) returns (oacc:int; res:A_int_2); +let + oacc = Lustre::fill<<predefOp::incremental, 2>>(iacc); +tel +node _node_alias_3_Lustre::red(init:int; b:A_bool_2) returns (res:int); +let + res = Lustre::red<<predefOp::incr, 2>>(init); +tel +node _node_alias_4_Lustre::map(i1:A_o_2; i2:A_o_2) returns (o:A_o_2); +let + o = Lustre::map<<Lustre::div, 2>>(i1); +tel +node _node_alias_5_Lustre::map(i1:A_a_2; i2:A_a_2) returns (o:A_bool_2); +let + o = Lustre::map<<Lustre::gte, 2>>(i1); +tel +node _node_alias_2_Lustre::map(i1:A_bool_2; i2:A_bool_2) returns (o:A_bool_2); +let + o = Lustre::map<<Lustre::=>, 2>>(i1); +tel +node _node_alias_6_Lustre::red(i1:o; i2:A_o_2) returns (o:o); +let + o = Lustre::red<<Lustre::plus, 2>>(i1); +tel + + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/redIf.lus Opening file should_work/lionel/redIf.lus @@ -16689,6 +16984,7 @@ tel -- end of node redIf::redIf -- automatically defined aliases: type A_bool_3 = bool^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/simpleRed.lus Opening file should_work/lionel/simpleRed.lus @@ -16704,6 +17000,7 @@ tel -- end of node simpleRed::simpleRed -- automatically defined aliases: type A_int_3 = int^3; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/testSilus.lus Opening file should_work/lionel/testSilus.lus @@ -17017,6 +17314,7 @@ type A_bool_20 = bool^20; type A_A_bool_20_4 = A_bool_20^4; type A_A_int_20_4 = A_int_20^4; type A_int_20 = int^20; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/lionel/triSel.lus Opening file should_work/lionel/triSel.lus @@ -17155,6 +17453,7 @@ tel -- end of node triSel::Sorted -- automatically defined aliases: type A_int_50 = int^50; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/Condact.lus Opening file should_work/packEnvTest/Condact.lus @@ -17188,6 +17487,7 @@ let tel -- end of node Main::Condact + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/contractForElementSelectionInArray/contractForElementSelectionInArray.lus Opening file should_work/packEnvTest/contractForElementSelectionInArray/contractForElementSelectionInArray.lus @@ -17226,6 +17526,7 @@ tel -- end of node contractForElementSelectionInArray::selectEltInArray -- automatically defined aliases: type A_int_10 = int^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/contractForElementSelectionInArray/main.lus Opening file should_work/packEnvTest/contractForElementSelectionInArray/main.lus @@ -17243,7 +17544,7 @@ let res = (util::igt(i, j)); tel -- end of node intArray::_isGreaterThan_ -function intArray::_isEqualTo_(i1:a; i2:a) returns (o:bool); +node intArray::_isEqualTo_(i1:a; i2:a) returns (o:bool); let o = (Lustre::equal(i1, i2)); tel @@ -17566,6 +17867,7 @@ tel -- end of node main::main -- automatically defined aliases: type A_int_10 = int^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/contractForElementSelectionInArray/noeudsIndependants.lus Opening file should_work/packEnvTest/contractForElementSelectionInArray/noeudsIndependants.lus @@ -17580,6 +17882,7 @@ let tel -- end of node noeudsIndependants::gt + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/contractForElementSelectionInArray/packageTableau.lus Opening file should_work/packEnvTest/contractForElementSelectionInArray/packageTableau.lus @@ -17724,6 +18027,7 @@ tel -- end of node tri::Sorted -- automatically defined aliases: type A_int_10 = int^10; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/modelInst.lus Opening file should_work/packEnvTest/modelInst.lus @@ -17779,6 +18083,7 @@ let tel -- end of node main::main + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/packages.lus Opening file should_work/packEnvTest/packages.lus @@ -17845,6 +18150,7 @@ tel -- end of node mainPack::preced const inter::n = -4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/packEnvTest/packages2.lus Opening file should_work/packEnvTest/packages2.lus @@ -17909,6 +18215,7 @@ let tel -- end of node main::foo + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_work/to_sort_out/asservi.lus Opening file should_work/to_sort_out/asservi.lus @@ -18071,6 +18378,7 @@ let p = (asservi::make_pend(x0, y0, x, y)); tel -- end of node asservi::asservi + Those tests are supposed to generate errors ---------------------------------------------------------------------- @@ -18169,6 +18477,7 @@ let tel -- end of node activation1::activation1 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_fail/semantics/activation2.lus Opening file should_fail/semantics/activation2.lus @@ -18221,6 +18530,7 @@ let tel -- end of node activation2::activation2 + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_fail/semantics/bad_call01.lus Opening file should_fail/semantics/bad_call01.lus @@ -18391,6 +18701,7 @@ type A_int_2 = int^2; type A_int_5 = int^5; type A_int_3 = int^3; type A_A_int_5_6 = A_int_5^6; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_fail/semantics/const.lus Opening file should_fail/semantics/const.lus @@ -18439,6 +18750,7 @@ let tel -- end of node cpt_dc::cpt_dc + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_fail/semantics/def.lus Opening file should_fail/semantics/def.lus @@ -18476,6 +18788,7 @@ tel -- end of node def::def -- automatically defined aliases: type A_int_4 = int^4; + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_fail/semantics/import2.lus Opening file should_fail/semantics/import2.lus @@ -18531,6 +18844,7 @@ let tel -- end of node piege::piege + ---------------------------------------------------------------------- ====> ../lus2lic -vl 2 --compile-all-items should_fail/semantics/tranche.lus Opening file should_fail/semantics/tranche.lus