diff --git a/src/global.ml b/src/global.ml index 68c3c0dd3b44f9720c1b0c81c8028bdbc287986a..e7f4554fe1c4320aca39bde7a1006c7677d77e0f 100644 --- a/src/global.ml +++ b/src/global.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 08/01/2009 (at 15:28) by Erwan Jahier> *) +(** Time-stamp: <modified the 05/02/2009 (at 14:56) by Erwan Jahier> *) (** Some global variables. *) @@ -15,6 +15,7 @@ let run_unit_test = ref false let one_op_per_equation = ref true let inline_iterator = ref false let lv4 = ref false +let ec = ref false let expand_nodes = ref false let expand_enums = ref false let expand_structs = ref false diff --git a/src/licDump.ml b/src/licDump.ml index ffe3cb319726dd05c417e707711963deff2756a3..5761b60145880b8e0b39f4ba743021ca289bd1f5 100644 --- a/src/licDump.ml +++ b/src/licDump.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 04/02/2009 (at 15:26) by Erwan Jahier> *) +(** Time-stamp: <modified the 05/02/2009 (at 15:01) by Erwan Jahier> *) open Printf open Lxm @@ -229,9 +229,17 @@ and (type_string_of_var_info_eff: Eff.var_info -> string) = (string_of_clock2 (snd x.var_clock_eff)) and string_of_decl var_info_eff = - (Ident.to_string var_info_eff.var_name_eff) ^ ":" ^ - (string_of_type_eff var_info_eff.var_type_eff) ^ - (string_of_clock (snd var_info_eff.var_clock_eff)) + let vt_str = + (Ident.to_string var_info_eff.var_name_eff) ^ ":" ^ + (string_of_type_eff var_info_eff.var_type_eff) + in + let clk_str = (string_of_clock (snd var_info_eff.var_clock_eff)) in + let vt_str = + if !Global.ec && snd var_info_eff.var_clock_eff <> BaseEff + then "(" ^ vt_str ^ ")" + else vt_str + in + vt_str ^ clk_str and (string_of_type_decl_list : Eff.var_info list -> string -> string) = fun tel sep -> @@ -489,7 +497,7 @@ and (const_decl: Ident.long -> Eff.const -> string) = and (node_of_node_exp_eff: Eff.node_exp -> string) = fun neff -> wrap_long_profile ( - (if neff.def_eff = ExternEff then "extern " else "") ^ + (if neff.def_eff = ExternEff && not (!Global.lv4) 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)) ^ diff --git a/src/main.ml b/src/main.ml index 9d4bc8768eb857846a7ea30f157488fa2fda8b2b..ae1903f7e284de0065f325943d4bb7736f82fe2e 100644 --- a/src/main.ml +++ b/src/main.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 03/02/2009 (at 17:03) by Erwan Jahier> *) +(** Time-stamp: <modified the 05/02/2009 (at 14:56) by Erwan Jahier> *) (** Here follows a description of the different modules used by this lus2lic compiler. @@ -167,6 +167,7 @@ and set_v4_options () = Global.expand_structs := true and set_ec_options () = set_v4_options (); + Global.ec := true; Global.expand_nodes := true and diff --git a/src/test/Makefile b/src/test/Makefile index 004f87e5f40c641dad47b7a428c66296e2a21c9c..4107a6eeaefd5ffd8acc6cfcce1bd870a8966c49 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -71,6 +71,8 @@ test: begin unit help version do_not_exist same_file rm -f test.res ; cat test_ok.res test_ko.res > test.res ;\ diff -u test.res.exp test.res > test.diff || \ (cat test.diff ; echo "cf test.diff"; exit 1) +utest: + cp test.res test.res.exp errors_nb: @@ -85,8 +87,23 @@ errors:errors_nb -utest: - cp test.res test.res.exp + + +test_ec: + rm test_ec.res + for d in ${OK_LUS}; do \ + echo -e "\n$(NL)====> $(LC) -ec $$d -o /tmp/xx.ec" >> test_ec.res; \ + $(LC0) -ec $$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 ;\ + done; \ + diff -u test_ec.res.exp test_ec.res > test_ec.diff || \ + (cat test.diff ; echo "cf test.diff"; exit 1) + + +utest_ec: + cp test_ec.res test_ec.res.exp + clean: