Skip to content
Snippets Groups Projects
Commit 052f7713 authored by Erwan Jahier's avatar Erwan Jahier
Browse files

Soc2c : handle "[x,...,y]" expressions.

nb: 20 more tests passes.
parent f1353905
No related branches found
No related tags found
No related merge requests found
(* Time-stamp: <modified the 12/06/2014 (at 10:46) by Erwan Jahier> *)
(* Time-stamp: <modified the 12/06/2014 (at 11:11) by Erwan Jahier> *)
open Data
open Soc
......@@ -69,9 +69,19 @@ let (lustre_hat : Soc.key -> string) =
!buff
let (lustre_array: Soc.key -> string) =
fun sk ->
let ctx = get_ctx_name sk in
assert false
fun (n,tl,si_opt) ->
let ctx = get_ctx_name (n,tl,si_opt) in
let t,i = match List.hd (List.rev tl) with
| Data.Array(t,i) -> t,i
| _ -> assert false
in
let buff = ref "" in
for j=0 to i-1 do
buff := !buff^(Soc2cUtil.gen_assign t (Printf.sprintf "%s.z[%d]" ctx j)
(Printf.sprintf "%s.x%d" ctx (j+1)));
done;
!buff
let (lustre_concat: Soc.key -> string) =
......
Test Run By jahier on Thu Jun 12 11:01:44 2014
Test Run By jahier on Thu Jun 12 11:12:29 2014
Native configuration is i686-pc-linux-gnu
=== lus2lic tests ===
......@@ -54,7 +54,7 @@ PASS: ./lus2lic {-o /tmp/Gyroscope2.lic should_work/Gyroscope2.lus}
PASS: ./lus2lic {-ec -o /tmp/Gyroscope2.ec should_work/Gyroscope2.lus}
PASS: ./myec2c {-o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec}
FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/Gyroscope2.lus -n Gyroscope2}
PASS: ./lus2lic {-2c should_work/Gyroscope2.lus -n Gyroscope2}
FAIL: Check that the generated C code compiles : gcc Gyroscope2_Gyroscope2.c Gyroscope2_Gyroscope2_loop.c
PASS: ./lus2lic {-o /tmp/mouse2.lic should_work/mouse2.lus}
PASS: ./lus2lic {-ec -o /tmp/mouse2.ec should_work/mouse2.lus}
......@@ -164,7 +164,7 @@ PASS: ./lus2lic {-o /tmp/bug2.lic should_work/bug2.lus}
PASS: ./lus2lic {-ec -o /tmp/bug2.ec should_work/bug2.lus}
PASS: ./myec2c {-o /tmp/bug2.c /tmp/bug2.ec}
PASS: ../utils/test_lus2lic_no_node should_work/bug2.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/bug2.lus -n bug2}
PASS: ./lus2lic {-2c should_work/bug2.lus -n bug2}
FAIL: Check that the generated C code compiles : gcc bug2_bug2.c bug2_bug2_loop.c
PASS: ./lus2lic {-o /tmp/mm.lic should_work/mm.lus}
PASS: ./lus2lic {-ec -o /tmp/mm.ec should_work/mm.lus}
......@@ -246,7 +246,7 @@ PASS: ./lus2lic {-o /tmp/iter.lic should_work/iter.lus}
PASS: ./lus2lic {-ec -o /tmp/iter.ec should_work/iter.lus}
PASS: ./myec2c {-o /tmp/iter.c /tmp/iter.ec}
PASS: ../utils/test_lus2lic_no_node should_work/iter.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/iter.lus -n iter}
PASS: ./lus2lic {-2c should_work/iter.lus -n iter}
FAIL: Check that the generated C code compiles : gcc iter_iter.c iter_iter_loop.c
PASS: ./lus2lic {-o /tmp/call05.lic should_work/call05.lus}
PASS: ./lus2lic {-ec -o /tmp/call05.ec should_work/call05.lus}
......@@ -385,7 +385,7 @@ PASS: ./lus2lic {-o /tmp/onlyroll2.lic should_work/onlyroll2.lus}
PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus}
PASS: ./myec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec}
PASS: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/onlyroll2.lus -n onlyroll2}
PASS: ./lus2lic {-2c should_work/onlyroll2.lus -n onlyroll2}
FAIL: Check that the generated C code compiles : gcc onlyroll2_onlyroll2.c onlyroll2_onlyroll2_loop.c
PASS: ./lus2lic {-o /tmp/X6.lic should_work/X6.lus}
PASS: ./lus2lic {-ec -o /tmp/X6.ec should_work/X6.lus}
......@@ -431,7 +431,7 @@ PASS: ./lus2lic {-o /tmp/morel3.lic should_work/morel3.lus}
PASS: ./lus2lic {-ec -o /tmp/morel3.ec should_work/morel3.lus}
PASS: ./myec2c {-o /tmp/morel3.c /tmp/morel3.ec}
PASS: ../utils/test_lus2lic_no_node should_work/morel3.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/morel3.lus -n morel3}
PASS: ./lus2lic {-2c should_work/morel3.lus -n morel3}
FAIL: Check that the generated C code compiles : gcc morel3_morel3.c morel3_morel3_loop.c
PASS: ./lus2lic {-o /tmp/fresh_name.lic should_work/fresh_name.lus}
PASS: ./lus2lic {-ec -o /tmp/fresh_name.ec should_work/fresh_name.lus}
......@@ -461,7 +461,7 @@ PASS: ./lus2lic {-o /tmp/plus.lic should_work/plus.lus}
PASS: ./lus2lic {-ec -o /tmp/plus.ec should_work/plus.lus}
PASS: ./myec2c {-o /tmp/plus.c /tmp/plus.ec}
PASS: ../utils/test_lus2lic_no_node should_work/plus.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/plus.lus -n plus}
PASS: ./lus2lic {-2c should_work/plus.lus -n plus}
FAIL: Check that the generated C code compiles : gcc plus_plus.c plus_plus_loop.c
PASS: ./lus2lic {-o /tmp/xx.lic should_work/xx.lus}
PASS: ./lus2lic {-ec -o /tmp/xx.ec should_work/xx.lus}
......@@ -473,7 +473,7 @@ PASS: ./lus2lic {-o /tmp/call07.lic should_work/call07.lus}
PASS: ./lus2lic {-ec -o /tmp/call07.ec should_work/call07.lus}
PASS: ./myec2c {-o /tmp/call07.c /tmp/call07.ec}
PASS: ../utils/test_lus2lic_no_node should_work/call07.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/call07.lus -n call07}
PASS: ./lus2lic {-2c should_work/call07.lus -n call07}
FAIL: Check that the generated C code compiles : gcc call07_call07.c call07_call07_loop.c
PASS: ./lus2lic {-o /tmp/shift_ludic.lic should_work/shift_ludic.lus}
PASS: ./lus2lic {-ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus}
......@@ -524,13 +524,13 @@ PASS: ./lus2lic {-o /tmp/test_diese.lic should_work/test_diese.lus}
PASS: ./lus2lic {-ec -o /tmp/test_diese.ec should_work/test_diese.lus}
PASS: ./myec2c {-o /tmp/test_diese.c /tmp/test_diese.ec}
PASS: ../utils/test_lus2lic_no_node should_work/test_diese.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/test_diese.lus -n test_diese}
PASS: ./lus2lic {-2c should_work/test_diese.lus -n test_diese}
FAIL: Check that the generated C code compiles : gcc test_diese_test_diese.c test_diese_test_diese_loop.c
PASS: ./lus2lic {-o /tmp/tri.lic should_work/tri.lus}
PASS: ./lus2lic {-ec -o /tmp/tri.ec should_work/tri.lus}
PASS: ./myec2c {-o /tmp/tri.c /tmp/tri.ec}
PASS: ../utils/test_lus2lic_no_node should_work/tri.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/tri.lus -n tri}
PASS: ./lus2lic {-2c should_work/tri.lus -n tri}
FAIL: Check that the generated C code compiles : gcc tri_tri.c tri_tri_loop.c
PASS: ./lus2lic {-o /tmp/calculs_max.lic should_work/calculs_max.lus}
PASS: ./lus2lic {-ec -o /tmp/calculs_max.ec should_work/calculs_max.lus}
......@@ -563,7 +563,7 @@ PASS: ./lus2lic {-o /tmp/morel4.lic should_work/morel4.lus}
PASS: ./lus2lic {-ec -o /tmp/morel4.ec should_work/morel4.lus}
PASS: ./myec2c {-o /tmp/morel4.c /tmp/morel4.ec}
PASS: ../utils/test_lus2lic_no_node should_work/morel4.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/morel4.lus -n morel4}
PASS: ./lus2lic {-2c should_work/morel4.lus -n morel4}
FAIL: Check that the generated C code compiles : gcc morel4_morel4.c morel4_morel4_loop.c
PASS: ./lus2lic {-o /tmp/trivial_array.lic should_work/trivial_array.lus}
PASS: ./lus2lic {-ec -o /tmp/trivial_array.ec should_work/trivial_array.lus}
......@@ -587,7 +587,7 @@ PASS: ./lus2lic {-o /tmp/onlyroll.lic should_work/onlyroll.lus}
PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus}
PASS: ./myec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec}
PASS: ../utils/test_lus2lic_no_node should_work/onlyroll.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/onlyroll.lus -n onlyroll}
PASS: ./lus2lic {-2c should_work/onlyroll.lus -n onlyroll}
FAIL: Check that the generated C code compiles : gcc onlyroll_onlyroll.c onlyroll_onlyroll_loop.c
PASS: ./lus2lic {-o /tmp/produitBool.lic should_work/produitBool.lus}
PASS: ./lus2lic {-ec -o /tmp/produitBool.ec should_work/produitBool.lus}
......@@ -812,7 +812,7 @@ PASS: ./lus2lic {-o /tmp/morel.lic should_work/morel.lus}
PASS: ./lus2lic {-ec -o /tmp/morel.ec should_work/morel.lus}
PASS: ./myec2c {-o /tmp/morel.c /tmp/morel.ec}
PASS: ../utils/test_lus2lic_no_node should_work/morel.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/morel.lus -n morel}
PASS: ./lus2lic {-2c should_work/morel.lus -n morel}
FAIL: Check that the generated C code compiles : gcc morel_morel.c morel_morel_loop.c
PASS: ./lus2lic {-o /tmp/SOURIS.lic should_work/SOURIS.lus}
PASS: ./lus2lic {-ec -o /tmp/SOURIS.ec should_work/SOURIS.lus}
......@@ -830,7 +830,7 @@ PASS: ./lus2lic {-o /tmp/o2l_feux_compl.lic should_work/o2l_feux_compl.lus}
PASS: ./lus2lic {-ec -o /tmp/o2l_feux_compl.ec should_work/o2l_feux_compl.lus}
PASS: ./myec2c {-o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec}
PASS: ../utils/test_lus2lic_no_node should_work/o2l_feux_compl.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/o2l_feux_compl.lus -n o2l_feux_compl}
PASS: ./lus2lic {-2c should_work/o2l_feux_compl.lus -n o2l_feux_compl}
FAIL: Check that the generated C code compiles : gcc o2l_feux_compl_o2l_feux_compl.c o2l_feux_compl_o2l_feux_compl_loop.c
PASS: ./lus2lic {-o /tmp/model.lic should_work/model.lus}
PASS: ./lus2lic {-ec -o /tmp/model.ec should_work/model.lus}
......@@ -841,7 +841,7 @@ PASS: ./lus2lic {-o /tmp/matrice.lic should_work/matrice.lus}
PASS: ./lus2lic {-ec -o /tmp/matrice.ec should_work/matrice.lus}
PASS: ./myec2c {-o /tmp/matrice.c /tmp/matrice.ec}
PASS: ../utils/test_lus2lic_no_node should_work/matrice.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/matrice.lus -n matrice}
PASS: ./lus2lic {-2c should_work/matrice.lus -n matrice}
FAIL: Check that the generated C code compiles : gcc matrice_matrice.c matrice_matrice_loop.c
PASS: ./lus2lic {-o /tmp/TIME_STABLE.lic should_work/TIME_STABLE.lus}
PASS: ./lus2lic {-ec -o /tmp/TIME_STABLE.ec should_work/TIME_STABLE.lus}
......@@ -877,7 +877,7 @@ PASS: ./lus2lic {-o /tmp/exclusion.lic should_work/exclusion.lus}
PASS: ./lus2lic {-ec -o /tmp/exclusion.ec should_work/exclusion.lus}
PASS: ./myec2c {-o /tmp/exclusion.c /tmp/exclusion.ec}
PASS: ../utils/test_lus2lic_no_node should_work/exclusion.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/exclusion.lus -n exclusion}
PASS: ./lus2lic {-2c should_work/exclusion.lus -n exclusion}
FAIL: Check that the generated C code compiles : gcc exclusion_exclusion.c exclusion_exclusion_loop.c
PASS: ./lus2lic {-o /tmp/ply01.lic should_work/ply01.lus}
PASS: ./lus2lic {-ec -o /tmp/ply01.ec should_work/ply01.lus}
......@@ -947,13 +947,13 @@ PASS: ./lus2lic {-o /tmp/iterFibo.lic should_work/iterFibo.lus}
PASS: ./lus2lic {-ec -o /tmp/iterFibo.ec should_work/iterFibo.lus}
PASS: ./myec2c {-o /tmp/iterFibo.c /tmp/iterFibo.ec}
PASS: ../utils/test_lus2lic_no_node should_work/iterFibo.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/iterFibo.lus -n iterFibo}
PASS: ./lus2lic {-2c should_work/iterFibo.lus -n iterFibo}
FAIL: Check that the generated C code compiles : gcc iterFibo_iterFibo.c iterFibo_iterFibo_loop.c
PASS: ./lus2lic {-o /tmp/morel2.lic should_work/morel2.lus}
PASS: ./lus2lic {-ec -o /tmp/morel2.ec should_work/morel2.lus}
PASS: ./myec2c {-o /tmp/morel2.c /tmp/morel2.ec}
PASS: ../utils/test_lus2lic_no_node should_work/morel2.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/morel2.lus -n morel2}
PASS: ./lus2lic {-2c should_work/morel2.lus -n morel2}
FAIL: Check that the generated C code compiles : gcc morel2_morel2.c morel2_morel2_loop.c
PASS: ./lus2lic {-o /tmp/minmax1.lic should_work/minmax1.lus}
PASS: ./lus2lic {-ec -o /tmp/minmax1.ec should_work/minmax1.lus}
......@@ -1053,7 +1053,7 @@ PASS: ./lus2lic {-o /tmp/Gyroscope.lic should_work/Gyroscope.lus}
PASS: ./lus2lic {-ec -o /tmp/Gyroscope.ec should_work/Gyroscope.lus}
PASS: ./myec2c {-o /tmp/Gyroscope.c /tmp/Gyroscope.ec}
FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/Gyroscope.lus -n Gyroscope}
PASS: ./lus2lic {-2c should_work/Gyroscope.lus -n Gyroscope}
FAIL: Check that the generated C code compiles : gcc Gyroscope_Gyroscope.c Gyroscope_Gyroscope_loop.c
PASS: ./lus2lic {-o /tmp/followed_by.lic should_work/followed_by.lus}
PASS: ./lus2lic {-ec -o /tmp/followed_by.ec should_work/followed_by.lus}
......@@ -1147,7 +1147,7 @@ PASS: ./lus2lic {-o /tmp/alias.lic should_work/alias.lus}
PASS: ./lus2lic {-ec -o /tmp/alias.ec should_work/alias.lus}
PASS: ./myec2c {-o /tmp/alias.c /tmp/alias.ec}
PASS: ../utils/test_lus2lic_no_node should_work/alias.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/alias.lus -n alias}
PASS: ./lus2lic {-2c should_work/alias.lus -n alias}
FAIL: Check that the generated C code compiles : gcc alias_alias.c alias_alias_loop.c
PASS: ./lus2lic {-o /tmp/hanane.lic should_work/hanane.lus}
PASS: ./lus2lic {-ec -o /tmp/hanane.ec should_work/hanane.lus}
......@@ -1175,7 +1175,7 @@ PASS: ./lus2lic {-o /tmp/toto.lic should_work/toto.lus}
PASS: ./lus2lic {-ec -o /tmp/toto.ec should_work/toto.lus}
PASS: ./myec2c {-o /tmp/toto.c /tmp/toto.ec}
PASS: ../utils/test_lus2lic_no_node should_work/toto.lus
FAIL: Generate c code : ./lus2lic {-2c should_work/toto.lus -n toto}
PASS: ./lus2lic {-2c should_work/toto.lus -n toto}
FAIL: Check that the generated C code compiles : gcc toto_toto.c toto_toto_loop.c
PASS: ./lus2lic {-o /tmp/minmax6.lic should_work/minmax6.lus}
PASS: ./lus2lic {-ec -o /tmp/minmax6.ec should_work/minmax6.lus}
......@@ -1474,9 +1474,9 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
=== lus2lic Summary ===
# of expected passes 1152
# of unexpected failures 252
# of expected passes 1172
# of unexpected failures 232
# of unexpected successes 21
# of expected failures 37
testcase ./lus2lic.tests/non-reg.exp completed in 116 seconds
testcase ./lus2lic.tests/non-reg.exp completed in 129 seconds
testcase ./lus2lic.tests/progression.exp completed in 0 seconds
testcase ./lus2lic.tests/non-reg.exp completed in 116 seconds
testcase ./lus2lic.tests/non-reg.exp completed in 129 seconds
testcase ./lus2lic.tests/progression.exp completed in 0 seconds
node trivial_array(x:bool) returns (y: bool^2);
let
y = x^2;
y = [x,x];
tel
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment