From dce00f592ac489443ca9a1e0af8c3f1b8d48beb8 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <jahier@imag.fr> Date: Tue, 11 Dec 2012 10:38:19 +0100 Subject: [PATCH] =?UTF-8?q?Un=20petit=20bilan=20des=20changements=20effect?= =?UTF-8?q?u=C3=A9s=20par=20Pascal=20+=20remise=20en=20place=20du=20souk?= =?UTF-8?q?=20qu'il=20a=20mis=20dans=20le=20repertoire=20test.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - il a commencé à rajouter le CondAct (tout est parti de la en fait...) - il a coupé le LazyCompiler en morceaux Pour cela, il a créé un nouveau module LicPrg qui définit la structure de données (SDD) en sortie du LazyCompiler. Ensuite, les diverses tranformations src2src sont faites à partir de cette SDD. - il a débranché (temporairement) l'expansion de noeud et de array/structure - il a débranché ma pseudo inférence de type et a mis à la place une vérification de types. - Le traitement du polymorphisme est effectué via une transfo src2src dans DoNoPoly (que je vais renommer en RmPoly) -------------------------------------------------------------------------- Par ailleurs, J'ai créé un todo.org et un README.org que je vais essayer de tenir à jour. nb: les tests ne passent toujours bien sur. --- .gitignore | 8 +- Makefile | 2 +- README.org | 80 +++ src/TODO.org | 12 +- src/compile.ml | 4 +- src/doNoPoly.ml | 2 +- src/main.ml | 40 +- t.lus | 11 - {tests => test}/Makefile | 0 test/TO_SORT/aa.lus | 26 + test/TO_SORT/bug.lus | 18 + test/TO_SORT/bug/car-V2.lus | 160 +++++ test/TO_SORT/bug/car-orig.lus | 157 +++++ test/TO_SORT/bug/car.lus | 157 +++++ test/TO_SORT/bug/rs.lus | 23 + test/TO_SORT/bug/rs.lus~ | 16 + test/TO_SORT/bug/toto.lus | 4 + test/TO_SORT/bug2.lus | 12 + test/TO_SORT/bug3.lus | 11 + test/TO_SORT/car.lus | 157 +++++ condact.lus => test/TO_SORT/condact.lus | 0 condact2.lus => test/TO_SORT/condact2.lus | 0 test/TO_SORT/ec.lus | 643 ++++++++++++++++++ test/TO_SORT/lionel/bug.lus~ | 21 + test/TO_SORT/lionel/lus2lic.dot | 7 + test/TO_SORT/lionel/testBoite.lus | 105 +++ test/TO_SORT/lionel/testCapt.lus | 56 ++ test/TO_SORT/lionel/testPilote.lus | 74 ++ test/TO_SORT/lionel/testSystem.lus | 218 ++++++ test/TO_SORT/lionel/xx.lus | 136 ++++ test/TO_SORT/lionel/xxx.lus | 113 +++ test/TO_SORT/lionel/xxx.lus~ | 113 +++ {src => test/TO_SORT}/lustre.lus | 0 map.lus => test/TO_SORT/map.lus | 0 multipar.lus => test/TO_SORT/multipar.lus | 0 nodeparam.lus => test/TO_SORT/nodeparam.lus | 0 over2.lus => test/TO_SORT/over2.lus | 0 over3.lus => test/TO_SORT/over3.lus | 0 overload.lus => test/TO_SORT/overload.lus | 0 test/TO_SORT/packages.lus | 78 +++ test/TO_SORT/patrick.lus | 11 + sargs.lus => test/TO_SORT/sargs.lus | 0 test/TO_SORT/t.lus | 33 + test/TO_SORT/titi.lus | 23 + test/TO_SORT/toto.lus | 31 + ts04.lus => test/TO_SORT/ts04.lus | 0 test/TO_SORT/xx.lus | 5 + test/TO_SORT/xxx.lus | 8 + test/TO_SORT/yyy.lus | 2 + test/TO_SORT/zzz.lus | 8 + test/TO_SORT/zzz2.lus | 12 + .../should_work/call/bad_call02.lus | 0 {tests => test}/should_work/call/call01.lus | 0 {tests => test}/should_work/call/call02.lus | 0 {tests => test}/should_work/call/call03.lus | 0 {tests => test}/should_work/call/call04.lus | 0 {tests => test}/should_work/call/call05.lus | 0 {tests => test}/should_work/call/call06.lus | 0 {tests => test}/should_work/call/call07.lus | 0 {tests => test}/should_work/poly/ply01.lus | 0 {tests => test}/should_work/poly/ply02.lus | 0 {tests => test}/should_work/poly/ply03.lus | 0 {tests => test}/should_work/static/cond01.lus | 0 .../should_work/static/predef01.lus | 0 .../should_work/static/predef02.lus | 0 .../should_work/static/predef03.lus | 0 {tests => test}/should_work/static/ts01.lus | 0 {tests => test}/should_work/static/ts02.lus | 0 {tests => test}/should_work/static/ts03.lus | 0 {src/test => test}/test.res.exp | 0 .../_test-old}/Condact.lus | 0 .../_test-old}/Makefile | 0 .../contractForElementSelectionInArray.lus | 0 .../main.lus | 0 .../noeudsIndependants.lus | 0 .../packageTableau.lus | 0 .../contractForElementSelectionInArray/readme | 0 .../tri.lus | 0 .../_test-old}/modelInst.lus | 0 .../_test-old}/packages.lus | 0 .../_test-old}/packages2.lus | 0 {_test-old => tests-pascal/_test-old}/qs.lv6 | 0 {_test-old => tests-pascal/_test-old}/readme | 0 .../_test-old}/test.diff | 0 .../_test-old}/test.exp | 0 .../_test-old}/test.res | 0 .../_test-old}/tests/cons.lus | 0 .../_test-old}/tests/const-array.lus | 0 .../_test-old}/tests/const-bool.lus | 0 .../_test-old}/tests/const-simple.lus | 0 .../_test-old}/tests/const-struct.lus | 0 .../_test-old}/tests/left.lus | 0 .../_test-old}/tests/newpacks.lus | 0 .../_test-old}/tests/node-simple.lus | 0 .../_test-old}/tests/p.lus | 0 .../_test-old}/tests/packages.lus | 0 .../_test-old}/tests/packs.lus | 0 .../_test-old}/tests/q.lus | 0 .../_test-old}/tests/struct0.lus | 0 .../_test-old}/tests/t.lus | 0 .../_test-old}/tests/t0.lus | 0 .../_test-old}/tests/t1.lus | 0 .../_test-old}/tests/t2.lus | 0 .../_test-old}/tests/test.lus | 0 .../_test-old}/tests/trivial.lus | 0 {_tests => tests-pascal/_tests}/Makefile | 0 .../_tests}/should_fail/bad_file_name | 0 .../_tests}/should_fail/clock/bad_call02.lus | 0 .../_tests}/should_fail/clock/bad_id.lus | 0 .../_tests}/should_fail/clock/clock.lus | 0 .../_tests}/should_fail/clock/clock2.lus | 0 .../_tests}/should_fail/clock/inonout.lus | 0 .../_tests}/should_fail/clock/when_enum.lus | 0 .../should_fail/semantics/activation1.lus | 0 .../should_fail/semantics/activation2.lus | 0 .../should_fail/semantics/bad_call01.lus | 0 .../_tests}/should_fail/semantics/bug.lus | 0 .../_tests}/should_fail/semantics/const.lus | 0 .../_tests}/should_fail/semantics/const2.lus | 0 .../_tests}/should_fail/semantics/const3.lus | 0 .../_tests}/should_fail/semantics/cpt_dc.lus | 0 .../_tests}/should_fail/semantics/def.lus | 0 .../_tests}/should_fail/semantics/import2.lus | 0 .../_tests}/should_fail/semantics/m.lus | 0 .../should_fail/semantics/not_a_constant.lus | 0 .../_tests}/should_fail/semantics/piege.lus | 0 .../_tests}/should_fail/semantics/tranche.lus | 0 .../_tests}/should_fail/semantics/x.lus | 0 .../should_fail/syntax/old_style_and_pack.lus | 0 .../_tests}/should_fail/syntax/record.lus | 0 .../_tests}/should_fail/type/Gyro.lus | 0 .../_tests}/should_fail/type/bad_call03.lus | 0 .../_tests}/should_fail/type/const2.lus | 0 .../_tests}/should_fail/type/packages.lus | 0 .../_tests}/should_fail/type/packages2.lus | 0 .../should_fail/type/parametric_node.lus | 0 .../should_fail/type/parametric_node2.lus | 0 .../should_fail/type/parametric_node3.lus | 0 .../should_fail/type/parametric_node4.lus | 0 .../_tests}/should_work/NONREG/COUNTER.lus | 0 .../_tests}/should_work/NONREG/CURRENT.lus | 0 .../_tests}/should_work/NONREG/EDGE.lus | 0 .../should_work/NONREG/FALLING_EDGE.lus | 0 .../_tests}/should_work/NONREG/Int.lus | 0 .../_tests}/should_work/NONREG/PCOND.lus | 0 .../_tests}/should_work/NONREG/PCOND1.lus | 0 .../_tests}/should_work/NONREG/SOURIS.lus | 0 .../_tests}/should_work/NONREG/STABLE.lus | 0 .../_tests}/should_work/NONREG/SWITCH.lus | 0 .../_tests}/should_work/NONREG/SWITCH1.lus | 0 .../should_work/NONREG/TIME_STABLE.lus | 0 .../should_work/NONREG/TIME_STABLE1.lus | 0 .../_tests}/should_work/NONREG/Watch.lus | 0 .../_tests}/should_work/NONREG/X.lus | 0 .../_tests}/should_work/NONREG/X1.lus | 0 .../_tests}/should_work/NONREG/X2.lus | 0 .../_tests}/should_work/NONREG/X3.lus | 0 .../_tests}/should_work/NONREG/X6.lus | 0 .../_tests}/should_work/NONREG/_N_uu.lus | 0 .../should_work/NONREG/activation_ec.lus | 0 .../_tests}/should_work/NONREG/after.lus | 0 .../_tests}/should_work/NONREG/alarme.lus | 0 .../_tests}/should_work/NONREG/arbitre.lus | 0 .../_tests}/should_work/NONREG/argos.lus | 0 .../_tests}/should_work/NONREG/assertion.lus | 0 .../_tests}/should_work/NONREG/aux.lus | 0 .../_tests}/should_work/NONREG/aux1.lus | 0 .../_tests}/should_work/NONREG/bascule.lus | 0 .../_tests}/should_work/NONREG/call.lus | 0 .../_tests}/should_work/NONREG/ck2.lus | 0 .../_tests}/should_work/NONREG/ck3.lus | 0 .../_tests}/should_work/NONREG/ck4.lus | 0 .../_tests}/should_work/NONREG/ck5.lus | 0 .../_tests}/should_work/NONREG/ck6.lus | 0 .../_tests}/should_work/NONREG/ck7.lus | 0 .../_tests}/should_work/NONREG/clock.lus | 0 .../_tests}/should_work/NONREG/cminus.lus | 0 .../_tests}/should_work/NONREG/compteur.lus | 0 .../_tests}/should_work/NONREG/count.lus | 0 .../_tests}/should_work/NONREG/cpt.lus | 0 .../_tests}/should_work/NONREG/cst.lus | 0 .../_tests}/should_work/NONREG/deconne.lus | 0 .../_tests}/should_work/NONREG/dep.lus | 0 .../_tests}/should_work/NONREG/dependeur.lus | 0 .../should_work/NONREG/dependeur_struct.lus | 0 .../_tests}/should_work/NONREG/drapfab.lus | 0 .../_tests}/should_work/NONREG/enum.lus | 0 .../_tests}/should_work/NONREG/enum0.lus | 0 .../_tests}/should_work/NONREG/eq1.lus | 0 .../_tests}/should_work/NONREG/ex.lus | 0 .../_tests}/should_work/NONREG/exclusion.lus | 0 .../_tests}/should_work/NONREG/fby.lus | 0 .../_tests}/should_work/NONREG/flo.lus | 0 .../_tests}/should_work/NONREG/fresh_name.lus | 0 .../_tests}/should_work/NONREG/hanane.lus | 0 .../should_work/NONREG/impl_priority.lus | 0 .../_tests}/should_work/NONREG/import1.lus | 0 .../_tests}/should_work/NONREG/initial.lus | 0 .../_tests}/should_work/NONREG/integrator.lus | 0 .../NONREG/long_et_stupide_nom_de_noeud.lus | 0 .../_tests}/should_work/NONREG/merge.lus | 0 .../_tests}/should_work/NONREG/minmax1.lus | 0 .../_tests}/should_work/NONREG/minmax2.lus | 0 .../_tests}/should_work/NONREG/minmax3.lus | 0 .../_tests}/should_work/NONREG/minmax4.lus | 0 .../should_work/NONREG/minmax4_bis.lus | 0 .../_tests}/should_work/NONREG/minmax5.lus | 0 .../should_work/NONREG/minmax5_random.lus | 0 .../_tests}/should_work/NONREG/minmax6.lus | 0 .../_tests}/should_work/NONREG/mm.lus | 0 .../_tests}/should_work/NONREG/mm1.lus | 0 .../_tests}/should_work/NONREG/mm22.lus | 0 .../_tests}/should_work/NONREG/mm3.lus | 0 .../_tests}/should_work/NONREG/model.lus | 0 .../_tests}/should_work/NONREG/model2.lus | 0 .../_tests}/should_work/NONREG/mouse.lus | 0 .../_tests}/should_work/NONREG/mouse1.lus | 0 .../_tests}/should_work/NONREG/mouse2.lus | 0 .../_tests}/should_work/NONREG/mouse3.lus | 0 .../_tests}/should_work/NONREG/multiclock.lus | 0 .../_tests}/should_work/NONREG/nc1.lus | 0 .../_tests}/should_work/NONREG/nc10.lus | 0 .../_tests}/should_work/NONREG/nc2.lus | 0 .../_tests}/should_work/NONREG/nc3.lus | 0 .../_tests}/should_work/NONREG/nc4.lus | 0 .../_tests}/should_work/NONREG/nc5.lus | 0 .../_tests}/should_work/NONREG/nc6.lus | 0 .../_tests}/should_work/NONREG/nc7.lus | 0 .../_tests}/should_work/NONREG/nc8.lus | 0 .../_tests}/should_work/NONREG/nc9.lus | 0 .../_tests}/should_work/NONREG/nested.lus | 0 .../should_work/NONREG/node_caller1.lus | 0 .../should_work/NONREG/o2l_feux_compl.lus | 0 .../_tests}/should_work/NONREG/packed_cst.lus | 0 .../_tests}/should_work/NONREG/param_node.lus | 0 .../should_work/NONREG/param_node2.lus | 0 .../should_work/NONREG/param_node3.lus | 0 .../should_work/NONREG/param_node4.lus | 0 .../should_work/NONREG/param_struct.lus | 0 .../_tests}/should_work/NONREG/patrick.lus | 0 .../_tests}/should_work/NONREG/poussoir.lus | 0 .../_tests}/should_work/NONREG/rs.lus | 0 .../_tests}/should_work/NONREG/s.lus | 0 .../_tests}/should_work/NONREG/simple.lus | 0 .../_tests}/should_work/NONREG/sincos.lus | 0 .../should_work/NONREG/speedcontrol.lus | 0 .../_tests}/should_work/NONREG/stopwatch.lus | 0 .../_tests}/should_work/NONREG/test.exp | 0 .../_tests}/should_work/NONREG/test.res | 0 .../_tests}/should_work/NONREG/testCA.lus | 0 .../_tests}/should_work/NONREG/test_clash.lus | 0 .../_tests}/should_work/NONREG/test_const.lus | 0 .../should_work/NONREG/test_node_expand.lus | 0 .../should_work/NONREG/test_node_expand2.lus | 0 .../_tests}/should_work/NONREG/trivial.lus | 0 .../_tests}/should_work/NONREG/trivial2.lus | 0 .../_tests}/should_work/NONREG/tuple.lus | 0 .../_tests}/should_work/NONREG/type_decl.lus | 0 .../_tests}/should_work/NONREG/uu.lus | 0 .../_tests}/should_work/NONREG/v1.lus | 0 .../_tests}/should_work/Pascal/access.lus | 0 .../_tests}/should_work/Pascal/consensus.lus | 0 .../_tests}/should_work/Pascal/consensus2.lus | 0 .../_tests}/should_work/Pascal/fby.lus | 0 .../should_work/Pascal/func_with_body.lus | 0 .../should_work/Pascal/heater_control.lus | 0 .../_tests}/should_work/Pascal/left.lus | 0 .../_tests}/should_work/Pascal/newpacks.lus | 0 .../_tests}/should_work/Pascal/onlyroll.lus | 0 .../_tests}/should_work/Pascal/p.lus | 0 .../_tests}/should_work/Pascal/packs.lus | 0 .../_tests}/should_work/Pascal/pfs.lus | 0 .../_tests}/should_work/Pascal/struct.lus | 0 .../_tests}/should_work/Pascal/struct0.lus | 0 .../_tests}/should_work/Pascal/t.lus | 0 .../_tests}/should_work/Pascal/t0.lus | 0 .../_tests}/should_work/Pascal/t1.lus | 0 .../_tests}/should_work/Pascal/t2.lus | 0 .../_tests}/should_work/Pascal/test.lus | 0 .../_tests}/should_work/Pascal/trivial.lus | 0 .../_tests}/should_work/clock/clock.lus | 0 .../_tests}/should_work/clock/clock2.lus | 0 .../_tests}/should_work/clock/clock_ite.lus | 0 .../_tests}/should_work/clock/when_enum.lus | 0 .../_tests}/should_work/clock/when_node.lus | 0 .../_tests}/should_work/clock/when_not.lus | 0 .../_tests}/should_work/clock/when_tuple.lus | 0 .../_tests}/should_work/demo/Gyroscope2.lus | 0 .../_tests}/should_work/demo/alias.lus | 0 .../_tests}/should_work/demo/bred.lus | 0 .../_tests}/should_work/demo/bred_lv4.lus | 0 .../_tests}/should_work/demo/clock.lus | 0 .../_tests}/should_work/demo/clock1_2ms.lus | 0 .../_tests}/should_work/demo/decl.lus | 0 .../_tests}/should_work/demo/declaration.lus | 0 .../_tests}/should_work/demo/def.lus | 0 .../_tests}/should_work/demo/filliter.lus | 0 .../_tests}/should_work/demo/filter.lus | 0 .../should_work/demo/lustre_test1_ok.lus | 0 .../_tests}/should_work/demo/map_red_iter.lus | 0 .../_tests}/should_work/demo/mapdeRed.lus | 0 .../_tests}/should_work/demo/mapinf.lus | 0 .../_tests}/should_work/demo/mapiter.lus | 0 .../_tests}/should_work/demo/mappredef.lus | 0 .../_tests}/should_work/demo/plus.lus | 0 .../_tests}/should_work/demo/pre_x.lus | 0 .../_tests}/should_work/demo/rediter.lus | 0 .../_tests}/should_work/demo/redoptest.lus | 0 .../should_work/demo/sample_time_change.lus | 0 .../_tests}/should_work/demo/test.exp | 0 .../_tests}/should_work/fab_test/bob.lus | 0 .../_tests}/should_work/fab_test/def.lus | 0 .../_tests}/should_work/fab_test/ex.lus | 0 .../_tests}/should_work/fab_test/iter.lus | 0 .../_tests}/should_work/fab_test/iterate.lus | 0 .../should_work/fab_test/iterate.trace | 0 .../should_work/fab_test/iterate_var.trace | 0 .../_tests}/should_work/fab_test/lecteur.lus | 0 .../_tests}/should_work/fab_test/lucky.lus | 0 .../_tests}/should_work/fab_test/morel.lus | 0 .../_tests}/should_work/fab_test/morel2.lus | 0 .../_tests}/should_work/fab_test/morel3.lus | 0 .../_tests}/should_work/fab_test/morel4.lus | 0 .../_tests}/should_work/fab_test/morel5.lus | 0 .../_tests}/should_work/fab_test/noAlarm.lus | 0 .../_tests}/should_work/fab_test/notTwo.lus | 0 .../_tests}/should_work/fab_test/onlyroll.lus | 0 .../should_work/fab_test/onlyroll2.lus | 0 .../_tests}/should_work/fab_test/test.exp | 0 .../_tests}/should_work/fab_test/test.lus | 0 .../_tests}/should_work/fab_test/test.res | 0 .../_tests}/should_work/fab_test/titi.lus | 0 .../_tests}/should_work/fab_test/toolate.lus | 0 .../_tests}/should_work/fab_test/toto.lus | 0 .../should_work/lionel/FillFollowedByRed.lus | 0 .../_tests}/should_work/lionel/Gyroscope.lus | 0 .../lionel/ProduitBool/produitBool.lus | 0 .../lionel/ProduitBool/shiftFill_ludic.lus | 0 .../lionel/ProduitBool/shift_ludic.lus | 0 .../_tests}/should_work/lionel/arrays.lus | 0 .../_tests}/should_work/lionel/bug.lus | 0 .../should_work/lionel/calculs_max.lus | 0 .../_tests}/should_work/lionel/clock.lus | 0 .../_tests}/should_work/lionel/deSimone.lus | 0 .../_tests}/should_work/lionel/iterFibo.lus | 0 .../_tests}/should_work/lionel/mapiter.lus | 0 .../_tests}/should_work/lionel/matrice.lus | 0 .../_tests}/should_work/lionel/matrice2.lus | 0 .../_tests}/should_work/lionel/minus.lus | 0 .../_tests}/should_work/lionel/moyenne.lus | 0 .../_tests}/should_work/lionel/normal.lus | 0 .../_tests}/should_work/lionel/pack1.lus | 0 .../_tests}/should_work/lionel/pilote-1.0.lus | 0 .../_tests}/should_work/lionel/pipeline.lus | 0 .../_tests}/should_work/lionel/predefOp.lus | 0 .../_tests}/should_work/lionel/redIf.lus | 0 .../should_work/lionel/remplissage-1.0.lus | 0 .../_tests}/should_work/lionel/simpleRed.lus | 0 .../_tests}/should_work/lionel/test.exp | 0 .../_tests}/should_work/lionel/testSilus.lus | 0 .../_tests}/should_work/lionel/triSel.lus | 0 .../should_work/packEnvTest/Condact.lus | 0 .../should_work/packEnvTest/complex.lus | 0 .../contractForElementSelectionInArray.lus | 0 .../main.lus | 0 .../noeudsIndependants.lus | 0 .../packageTableau.lus | 0 .../tri.lus | 0 .../_tests}/should_work/packEnvTest/iter.lus | 0 .../_tests}/should_work/packEnvTest/model.lus | 0 .../should_work/packEnvTest/modelInst.lus | 0 .../should_work/packEnvTest/packages.lus | 0 .../should_work/packEnvTest/packages2.lus | 0 .../packEnvTest/polymorphic_pack.lus | 0 .../should_work/to_sort_out/asservi.lus | 0 .../_tests}/should_work/to_sort_out/test.res | 0 {_tests => tests-pascal/_tests}/test.res.exp | 0 .../_tests}/test_ec.res.exp | 0 .../_tests}/test_lv4.res.exp | 0 .../moretests}/Makefile | 0 .../moretests}/should_fail/misc/wrongmap.lus | 0 .../moretests}/should_work/aliases/alias.lus | 0 .../moretests}/should_work/aliases/ex.lus | 0 .../moretests}/test.res.exp | 0 todo.org | 160 +++++ 385 files changed, 2690 insertions(+), 67 deletions(-) create mode 100644 README.org delete mode 100644 t.lus rename {tests => test}/Makefile (100%) create mode 100644 test/TO_SORT/aa.lus create mode 100644 test/TO_SORT/bug.lus create mode 100644 test/TO_SORT/bug/car-V2.lus create mode 100644 test/TO_SORT/bug/car-orig.lus create mode 100644 test/TO_SORT/bug/car.lus create mode 100644 test/TO_SORT/bug/rs.lus create mode 100644 test/TO_SORT/bug/rs.lus~ create mode 100644 test/TO_SORT/bug/toto.lus create mode 100644 test/TO_SORT/bug2.lus create mode 100644 test/TO_SORT/bug3.lus create mode 100644 test/TO_SORT/car.lus rename condact.lus => test/TO_SORT/condact.lus (100%) rename condact2.lus => test/TO_SORT/condact2.lus (100%) create mode 100644 test/TO_SORT/ec.lus create mode 100644 test/TO_SORT/lionel/bug.lus~ create mode 100644 test/TO_SORT/lionel/lus2lic.dot create mode 100644 test/TO_SORT/lionel/testBoite.lus create mode 100644 test/TO_SORT/lionel/testCapt.lus create mode 100644 test/TO_SORT/lionel/testPilote.lus create mode 100644 test/TO_SORT/lionel/testSystem.lus create mode 100644 test/TO_SORT/lionel/xx.lus create mode 100644 test/TO_SORT/lionel/xxx.lus create mode 100644 test/TO_SORT/lionel/xxx.lus~ rename {src => test/TO_SORT}/lustre.lus (100%) rename map.lus => test/TO_SORT/map.lus (100%) rename multipar.lus => test/TO_SORT/multipar.lus (100%) rename nodeparam.lus => test/TO_SORT/nodeparam.lus (100%) rename over2.lus => test/TO_SORT/over2.lus (100%) rename over3.lus => test/TO_SORT/over3.lus (100%) rename overload.lus => test/TO_SORT/overload.lus (100%) create mode 100644 test/TO_SORT/packages.lus create mode 100644 test/TO_SORT/patrick.lus rename sargs.lus => test/TO_SORT/sargs.lus (100%) create mode 100644 test/TO_SORT/t.lus create mode 100644 test/TO_SORT/titi.lus create mode 100644 test/TO_SORT/toto.lus rename ts04.lus => test/TO_SORT/ts04.lus (100%) create mode 100644 test/TO_SORT/xx.lus create mode 100644 test/TO_SORT/xxx.lus create mode 100644 test/TO_SORT/yyy.lus create mode 100644 test/TO_SORT/zzz.lus create mode 100644 test/TO_SORT/zzz2.lus rename {tests => test}/should_work/call/bad_call02.lus (100%) rename {tests => test}/should_work/call/call01.lus (100%) rename {tests => test}/should_work/call/call02.lus (100%) rename {tests => test}/should_work/call/call03.lus (100%) rename {tests => test}/should_work/call/call04.lus (100%) rename {tests => test}/should_work/call/call05.lus (100%) rename {tests => test}/should_work/call/call06.lus (100%) rename {tests => test}/should_work/call/call07.lus (100%) rename {tests => test}/should_work/poly/ply01.lus (100%) rename {tests => test}/should_work/poly/ply02.lus (100%) rename {tests => test}/should_work/poly/ply03.lus (100%) rename {tests => test}/should_work/static/cond01.lus (100%) rename {tests => test}/should_work/static/predef01.lus (100%) rename {tests => test}/should_work/static/predef02.lus (100%) rename {tests => test}/should_work/static/predef03.lus (100%) rename {tests => test}/should_work/static/ts01.lus (100%) rename {tests => test}/should_work/static/ts02.lus (100%) rename {tests => test}/should_work/static/ts03.lus (100%) rename {src/test => test}/test.res.exp (100%) rename {_test-old => tests-pascal/_test-old}/Condact.lus (100%) rename {_test-old => tests-pascal/_test-old}/Makefile (100%) rename {_test-old => tests-pascal/_test-old}/contractForElementSelectionInArray/contractForElementSelectionInArray.lus (100%) rename {_test-old => tests-pascal/_test-old}/contractForElementSelectionInArray/main.lus (100%) rename {_test-old => tests-pascal/_test-old}/contractForElementSelectionInArray/noeudsIndependants.lus (100%) rename {_test-old => tests-pascal/_test-old}/contractForElementSelectionInArray/packageTableau.lus (100%) rename {_test-old => tests-pascal/_test-old}/contractForElementSelectionInArray/readme (100%) rename {_test-old => tests-pascal/_test-old}/contractForElementSelectionInArray/tri.lus (100%) rename {_test-old => tests-pascal/_test-old}/modelInst.lus (100%) rename {_test-old => tests-pascal/_test-old}/packages.lus (100%) rename {_test-old => tests-pascal/_test-old}/packages2.lus (100%) rename {_test-old => tests-pascal/_test-old}/qs.lv6 (100%) rename {_test-old => tests-pascal/_test-old}/readme (100%) rename {_test-old => tests-pascal/_test-old}/test.diff (100%) rename {_test-old => tests-pascal/_test-old}/test.exp (100%) rename {_test-old => tests-pascal/_test-old}/test.res (100%) rename {_test-old => tests-pascal/_test-old}/tests/cons.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/const-array.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/const-bool.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/const-simple.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/const-struct.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/left.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/newpacks.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/node-simple.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/p.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/packages.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/packs.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/q.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/struct0.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/t.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/t0.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/t1.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/t2.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/test.lus (100%) rename {_test-old => tests-pascal/_test-old}/tests/trivial.lus (100%) rename {_tests => tests-pascal/_tests}/Makefile (100%) rename {_tests => tests-pascal/_tests}/should_fail/bad_file_name (100%) rename {_tests => tests-pascal/_tests}/should_fail/clock/bad_call02.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/clock/bad_id.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/clock/clock.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/clock/clock2.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/clock/inonout.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/clock/when_enum.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/activation1.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/activation2.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/bad_call01.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/bug.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/const.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/const2.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/const3.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/cpt_dc.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/def.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/import2.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/m.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/not_a_constant.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/piege.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/tranche.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/semantics/x.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/syntax/old_style_and_pack.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/syntax/record.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/Gyro.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/bad_call03.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/const2.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/packages.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/packages2.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/parametric_node.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/parametric_node2.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/parametric_node3.lus (100%) rename {_tests => tests-pascal/_tests}/should_fail/type/parametric_node4.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/COUNTER.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/CURRENT.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/EDGE.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/FALLING_EDGE.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/Int.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/PCOND.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/PCOND1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/SOURIS.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/STABLE.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/SWITCH.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/SWITCH1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/TIME_STABLE.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/TIME_STABLE1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/Watch.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/X.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/X1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/X2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/X3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/X6.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/_N_uu.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/activation_ec.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/after.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/alarme.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/arbitre.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/argos.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/assertion.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/aux.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/aux1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/bascule.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/call.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/ck2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/ck3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/ck4.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/ck5.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/ck6.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/ck7.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/clock.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/cminus.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/compteur.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/count.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/cpt.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/cst.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/deconne.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/dep.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/dependeur.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/dependeur_struct.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/drapfab.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/enum.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/enum0.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/eq1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/ex.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/exclusion.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/fby.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/flo.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/fresh_name.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/hanane.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/impl_priority.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/import1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/initial.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/integrator.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/long_et_stupide_nom_de_noeud.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/merge.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax4.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax4_bis.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax5.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax5_random.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/minmax6.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mm.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mm1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mm22.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mm3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/model.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/model2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mouse.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mouse1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mouse2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/mouse3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/multiclock.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc10.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc4.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc5.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc6.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc7.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc8.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nc9.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/nested.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/node_caller1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/o2l_feux_compl.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/packed_cst.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/param_node.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/param_node2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/param_node3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/param_node4.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/param_struct.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/patrick.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/poussoir.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/rs.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/s.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/simple.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/sincos.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/speedcontrol.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/stopwatch.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/test.exp (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/test.res (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/testCA.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/test_clash.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/test_const.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/test_node_expand.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/test_node_expand2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/trivial.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/trivial2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/tuple.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/type_decl.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/uu.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/NONREG/v1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/access.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/consensus.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/consensus2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/fby.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/func_with_body.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/heater_control.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/left.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/newpacks.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/onlyroll.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/p.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/packs.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/pfs.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/struct.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/struct0.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/t.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/t0.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/t1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/t2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/test.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/Pascal/trivial.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/clock/clock.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/clock/clock2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/clock/clock_ite.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/clock/when_enum.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/clock/when_node.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/clock/when_not.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/clock/when_tuple.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/Gyroscope2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/alias.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/bred.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/bred_lv4.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/clock.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/clock1_2ms.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/decl.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/declaration.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/def.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/filliter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/filter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/lustre_test1_ok.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/map_red_iter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/mapdeRed.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/mapinf.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/mapiter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/mappredef.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/plus.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/pre_x.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/rediter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/redoptest.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/sample_time_change.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/demo/test.exp (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/bob.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/def.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/ex.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/iter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/iterate.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/iterate.trace (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/iterate_var.trace (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/lecteur.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/lucky.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/morel.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/morel2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/morel3.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/morel4.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/morel5.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/noAlarm.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/notTwo.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/onlyroll.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/onlyroll2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/test.exp (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/test.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/test.res (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/titi.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/toolate.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/fab_test/toto.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/FillFollowedByRed.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/Gyroscope.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/ProduitBool/produitBool.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/ProduitBool/shiftFill_ludic.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/ProduitBool/shift_ludic.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/arrays.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/bug.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/calculs_max.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/clock.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/deSimone.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/iterFibo.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/mapiter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/matrice.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/matrice2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/minus.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/moyenne.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/normal.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/pack1.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/pilote-1.0.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/pipeline.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/predefOp.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/redIf.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/remplissage-1.0.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/simpleRed.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/test.exp (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/testSilus.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/lionel/triSel.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/Condact.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/complex.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/contractForElementSelectionInArray/contractForElementSelectionInArray.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/contractForElementSelectionInArray/main.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/contractForElementSelectionInArray/noeudsIndependants.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/contractForElementSelectionInArray/packageTableau.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/contractForElementSelectionInArray/tri.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/iter.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/model.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/modelInst.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/packages.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/packages2.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/packEnvTest/polymorphic_pack.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/to_sort_out/asservi.lus (100%) rename {_tests => tests-pascal/_tests}/should_work/to_sort_out/test.res (100%) rename {_tests => tests-pascal/_tests}/test.res.exp (100%) rename {_tests => tests-pascal/_tests}/test_ec.res.exp (100%) rename {_tests => tests-pascal/_tests}/test_lv4.res.exp (100%) rename {moretests => tests-pascal/moretests}/Makefile (100%) rename {moretests => tests-pascal/moretests}/should_fail/misc/wrongmap.lus (100%) rename {moretests => tests-pascal/moretests}/should_work/aliases/alias.lus (100%) rename {moretests => tests-pascal/moretests}/should_work/aliases/ex.lus (100%) rename {moretests => tests-pascal/moretests}/test.res.exp (100%) create mode 100644 todo.org diff --git a/.gitignore b/.gitignore index c553cd1e..62191435 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,9 @@ src/TAGS *.h *.diff *.swp -._bcdi/* -._d/* -._ncdi/* +src/._bcdi/* +src/._d/* +src/._ncdi/* src/lus2lic src/parser.ml src/parser.mli @@ -33,7 +33,7 @@ lionel pascal polo parser.tex - +tmp lv6-ref-man/objpdf/ lv6-ref-man/,poubelle/ lv6-ref-man/MANUEL_NICOLAS diff --git a/Makefile b/Makefile index 33ccfb4d..512ec564 100644 --- a/Makefile +++ b/Makefile @@ -122,7 +122,7 @@ include $(OCAMLMAKEFILE) .PRECIOUS: $(OBJDIR)/version.ml $(OBJDIR)/version.ml: - echo "(* Automatically generated from src/Makefile *) " > $@ + echo "(* Automatically generated from Makefile *) " > $@ echo "let tool = \"lus2lic\"" >> $@ echo "let branch = \"$(shell utils/get_branch_name)\"" >> $@ echo "let commit = \"$(shell utils/get_commit_number)\"" >> $@ diff --git a/README.org b/README.org new file mode 100644 index 00000000..e479940c --- /dev/null +++ b/README.org @@ -0,0 +1,80 @@ + + +* test + +The idea is to run those tests before *each commit*. + +All tests are done via file:src/Makefile; it runs the lus2lic +compiler with various options on every files contained in +- file:tests/should_work/ that contains correct Lustre V6 programs +- file:tests/should_fail/ that contains incorrect ones (e.g., that + contains a type error). + +** Testing Correct Lustre V6 programs + +The output of all lus2lic invocation are redirected to =test.res=. +This file is then compared to =test.res.exp= (=exp= stands for +expected). When the results (=.res=) and the expected results +(=.res.exp=) differs, the test fails. Note that tests do not only +fail during a regression, but also during a progression! + +In order to update the expected result, just issue a 'make utest'. + +Actually, 3 kinds of lus2lic invocation are performed: +- lic: just use lus2lic on all lustre files +- ec: ditto using the -ec option, plus calling ec2c on the generated files +- lv4: ditto using the -lv4 option, plus calling lus2ec on the generated files + +** Testing Incorrect Lustre V6 programs + +We check that all progs in file:tests/should_fail/ returns with an +exit code > 0. + + + +* src + +Here follows a description of the different modules used by this +lus2lic compiler (in src) + +** First of all, the Lustre files are parsed, + + lexer.mll + parser.mly + parserUtils.ml + lxm.mli/ml + +which results into a parse tree containing raw source expressions. + + syntaxTreeCore.ml, syntaxTree.ml -> should rather be called rawSyntaxTab.ml ? or just Src ? + + +** Then, we perform reference checking at module level + model expansion. + + syntaxTab.mli/ml + syntaxTabUtil.ml/mli + instanciateModel.mli/ml + symbolTab.mli/ml (type/const/node) + +syntaxTab is a kind of layer above syntaxTree to make things easier afterwards. + + +** Finally, the compilation (type checking+const/type evaluation) is performed. + + compile.ml + lazyCompiler.mli/ml + evalConst.mli/ml + evalType.mli/ml + compiledData.ml + + +** Some misc (eponymous) modules are used along the way. + errors.ml + verbose.mli/ml + version.ml + ident.ml + +* todo + +cf file:todo.org + diff --git a/src/TODO.org b/src/TODO.org index 2a5279fe..db237f8b 100644 --- a/src/TODO.org +++ b/src/TODO.org @@ -3,16 +3,14 @@ * Questions pour Pascal ===================== -cf fichier QUESTION pour les question d'ordre plus général de choix de language +cf fichier QUESTION pour les questions d'ordre plus général de choix de language (putot que d'implémenation). - ** dans le generateur de lic, comment imprimer le nom des packages ? - Pack::toto -> pas du vieux lustre (donc pas reentrant) - Pack__toto -> name clash (si un ident local s'appelle comme ca) - _Pack__toto -> pas beau, rend lus2lic pas idempotent - ** slice_info_eff width = size ? Le commentaire dit S[i] = A[first + i*step] pour i = 0 .. width mais j'ai l'impression que ce devrait etre @@ -20,7 +18,6 @@ mais j'ai l'impression que ce devrait etre cad S[i] = A[first + i*step] pour i = 0 .. (size-1) - ** Pour l'evaluation statique de l'egalité, j'ai pas fait pareil... grosso-modo, je teste si 'a=b' alors Pascal deconstruit plus finement le a et le b. Mais j'ai l'impression que ca revient au meme. Ai-je @@ -45,12 +42,10 @@ cad module Lustre prédefini, que je verifie que l'utilisateur n'essaie pas d'en créer un avec ce nom... - ** au sujet des pragma: J'ai associé les pragma aux identificateurs, et seulement à eux. Est-ce suffisant ? - ** autoriser les noeuds (ou fonction) sans corps sans avoir a préciser "extern" ? @@ -59,7 +54,6 @@ J'ai associ devrait être multi-horloge également. Et peut-etre d'autres encore... ** soc = synchronous object component, c'est pas mieux comme nom ? - ** Avec Marc, on pourrait aussi se synchroniser au niveau du lic. Mais du coup de travail de JB part à la poubelle... @@ -82,7 +76,6 @@ cf ** EvalClock.var_clock_to_base (l200): c'est pas ca qu'il faut faire. en effet, si on 1+1+a when c, ca risque de ne pas marcher. - ** Lazycompiler.solve_x_idref Comment se faisse que je n'ai pas besoin de me servir de cet @@ -103,7 +96,6 @@ lazycompiler.ml: en tout cas, je devrais m'en etre completement debarassé au niveau du compiledData, et ca n'est pas le cas pour l'instant... cf [solve_ident] - ** accepter les expressions du style "b when not(a)" ? ou bien rajouter un mot clef "whenot" comme Marc? @@ -371,7 +363,7 @@ pas bien compliqu ----------------------------------------------------------------------- -* Flies fuck +* Autres ** utiliser des Map.t dans Unify (et peut-etre ailleurs) ** Encapsuler le module Global. diff --git a/src/compile.ml b/src/compile.ml index 58a097d0..2e46310b 100644 --- a/src/compile.ml +++ b/src/compile.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 19/05/2011 (at 11:28) by Erwan Jahier> *) +(** Time-stamp: <modified the 10/12/2012 (at 18:12) by Erwan Jahier> *) open Lxm @@ -49,4 +49,6 @@ let (doit : SyntaxTree.pack_or_model list -> Ident.idref option -> unit) = (* split des equations (1 eq = 1 op) *) let zelic = DoSplit.doit zelic in + (* XXX node et array expand ! *) + LicPrg.to_file !Global.oc zelic diff --git a/src/doNoPoly.ml b/src/doNoPoly.ml index 3cd556c7..d8ea446f 100644 --- a/src/doNoPoly.ml +++ b/src/doNoPoly.ml @@ -100,7 +100,7 @@ let rec doit (inprg : LicPrg.t) : LicPrg.t = match posop.it with | PREDEF_CALL (pop,sas) -> (* 12/07 ICI version provisoise : - les macros predef n'existe plus ! (ce sont des calls classiques + les macros predef n'existe plus ! (ce sont des calls classiques) *) assert (sas = []); CallByPosEff (posop, ops') diff --git a/src/main.ml b/src/main.ml index 5b810f74..d44b31c2 100644 --- a/src/main.ml +++ b/src/main.ml @@ -1,43 +1,5 @@ -(** Time-stamp: <modified the 01/06/2011 (at 13:43) by Erwan Jahier> *) +(** Time-stamp: <modified the 10/12/2012 (at 17:00) by Erwan Jahier> *) -(** Here follows a description of the different modules used by this lus2lic compiler. - -(1) First of all, the Lustre files are parsed, - - lexer.mll - parser.mly - parserUtils.ml - lxm.mli/ml - -which results into a parse tree containing raw source expressions. - - syntaxTree.ml -> should rather be called rawSyntaxTab.ml ? - -(2) Then, we perform reference checking at module level + model expansion. - - syntaxTab.mli/ml - syntaxTabUtil.ml/mli - instanciateModel.mli/ml - symbolTab.mli/ml (type/const/node) - -syntaxTab is a kind of layer above syntaxTree to make things easier afterwards. - - -(3) Finally, the compilation (type checking+const/type evaluation) is performed. - - compile.ml - lazyCompiler.mli/ml - evalConst.mli/ml - evalType.mli/ml - compiledData.ml - - -Some misc (eponymous) modules are used along the way. - errors.ml - verbose.mli/ml - version.ml - ident.ml -*) open Verbose diff --git a/t.lus b/t.lus deleted file mode 100644 index c8dd9a0d..00000000 --- a/t.lus +++ /dev/null @@ -1,11 +0,0 @@ - -const toto = 42; - -type t = enum { Bleu, Blanc }; - -type a = int^toto; - -const c : t = Bleu; -const c2 : t; - -const t1 : bool^4^5; diff --git a/tests/Makefile b/test/Makefile similarity index 100% rename from tests/Makefile rename to test/Makefile diff --git a/test/TO_SORT/aa.lus b/test/TO_SORT/aa.lus new file mode 100644 index 00000000..17346a32 --- /dev/null +++ b/test/TO_SORT/aa.lus @@ -0,0 +1,26 @@ +const m = 2; +const n = 2; +node n_node_alias(i1:int; i2_0:int; i2_1:int) returns (o:int); +var + _acc1:int; +let + o = Lustre::plus(_acc1, i2_1); + _acc1 = Lustre::plus(i1, i2_0); +tel +-- end of node n_node_alias +node matrice2(a:int) returns (res:int); +var + _acc1:int; + _v1_0:int; + _v1_1:int; + _v2_0_0:int; + _v2_0_1:int; + _v2_1_0:int; + _v2_1_1:int; +let + (_v2_0_0, _v2_0_1, _v2_1_0, _v2_1_1) = (_v1_0, _v1_1, _v1_0, _v1_1); + (_v1_0, _v1_1) = (1, 1); + res = n_node_alias(_acc1, _v2_1_0, _v2_1_1); + _acc1 = n_node_alias(0, _v2_0_0, _v2_0_1); +tel +-- end of node matrice2 diff --git a/test/TO_SORT/bug.lus b/test/TO_SORT/bug.lus new file mode 100644 index 00000000..0a8ae65a --- /dev/null +++ b/test/TO_SORT/bug.lus @@ -0,0 +1,18 @@ + + -- XXX il manque la def d'un type tableau intermediaire !! + + +type s = { f1: int ; f2: int }; + +node simple(x:s) returns (o: s^3); +let + o = x^3; +tel + +node simple2(x:s) returns (o: s^3^2; i: int); +let + o[0] = simple(x); + o[1] = simple(x); +-- i = 2; + i = o[0][1].f1; +tel diff --git a/test/TO_SORT/bug/car-V2.lus b/test/TO_SORT/bug/car-V2.lus new file mode 100644 index 00000000..ac2b3380 --- /dev/null +++ b/test/TO_SORT/bug/car-V2.lus @@ -0,0 +1,160 @@ +--robot direction control setting + + +-- stop = 0 +-- forward =1 +-- back = 2 +-- right = 3 + +-- soft_left = 4(right wheel frwd and left wheel stop) +-- soft_right =5(left wheel frwd and right wheel stop) +-- soft_left_2 = 6 (right wheel back and left wheel stop) +-- soft_right_2 =7 (left wheel back and right wheel stop) +-- Veer_Soft_Right_Turn= 8 (this will set the left and right motor velocity with veering softly in right) +-- Veer_Soft_Left_Turn= 9 (this will set the left and right motor velocity with veering softly in left) +-- Veer_Hard_Right_Turn= 10 (this will set the left and right motor velocity with veering hardly in right) +-- Veer_Hard_Left_Turn= 11 (this will set the left and right motor velocity with veering hardly in left) + + +const WHITE = 100; +const REQ_GAP =40; +const LEFT_OBS_DIST =150; +const FRONT_OBS_DIST = 100; +const REQ_RIGHT_DEGREE = 90; + +node whiteline(r_line,m_line,l_line: int) returns(dir,velocity:int); + +let + + velocity = 255 ; + + dir = + --all sensor on the line + + if(m_line<WHITE and l_line< WHITE and r_line < WHITE) then 1 -- forward + + --center & right sensor on the line + else if (m_line< WHITE and l_line>WHITE and r_line < WHITE ) then 8 --veer soft right + + -- left & center in on the line + else if(m_line< WHITE and l_line<WHITE and r_line > WHITE) then 9 --veer soft left + + --only right sensor on line + else if (m_line> WHITE and l_line>WHITE and r_line < WHITE) then 10 --veer hard right + + --only left sensor is on line + else if(m_line> WHITE and l_line<WHITE and r_line > WHITE) then 11--veer hard left + + else 0 ; -- when all sensor are out of line +tel + +--collision detection in front of the robot + + + + node CD(f_ir:int) returns(presence:bool) + let + presence = (f_ir>100); + +-- 1 imply there is no obstacle in front +--0 imply there is a obstacle in front + + tel +------------------ +node gap1(left_ir:int) returns(avail:bool) + let + + avail = if(left_ir > LEFT_OBS_DIST) then true else false; --1 = there is a gap + +tel +--------------------------------------------------------- +node STARTPOS(l_gap:bool;shaft_l:int) returns(start:int); +let + +start = 0 -> if(shaft_l = 0 and l_gap ) then 0 + else if (not (pre(l_gap)) and (shaft_l<>0)) then (shaft_l) + else pre(start); + +tel +-------------------------------------------------------- +node PARKING_LENGHT(shaft_l,start_pos:int) returns(park_lenght:bool); + let + park_lenght = ((shaft_l - start_pos) > REQ_GAP) ; -- true indicate sufficient parking space else not sufficient + tel +------------------------------------------- +node required_back1(shaft_l,start_back:int) returns(done_back1:bool); + let + done_back1 = (shaft_l -start_back = 20); + tel + + +---------------- +node STARTBACK1_POS(gap_found:bool;shaft_l:int) returns(back1:int); +let + back1 = 0 -> if(shaft_l = 0 and gap_found ) then 0 + else if(pre(gap_found) and shaft_l<>0 ) then shaft_l + else pre(back1); +tel + +type mode = enum { forward , waiting, buzzer_on, backing1, turn_right, backing2, buzzer_off }; + + + node CONTROLLER(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE,FRONT_IR_VALUE,LEFT_IR_VALUE,SHAFT_COUNT_LEFT:int) + returns(DIRECTION,VELOCITY:int; BUZZER:bool); + +var dir1,vel1,empty_start_pos,mode,start_back_pos,start_rightturn_pos:int; blocked,enough_gap,left_gap,enough_back1,turn_r_Complete :bool; + + + +-- mode =1 : forward +-- mode = 2 : waiting +-- mode =3 : parking(buzzer on) +-- mode =4 : parking(backing1) +-- mode =5 : parking(turn right) +-- mode =6 : parking(bcking2) +-- mode =7 :stop(buzzer off) +let + left_gap = false -> gap1(LEFT_IR_VALUE); + (dir1,vel1) = whiteline(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE); + blocked = false ->CD(FRONT_IR_VALUE); + + empty_start_pos = 0 -> STARTPOS(left_gap,SHAFT_COUNT_LEFT); + enough_gap = false -> PARKING_LENGHT(SHAFT_COUNT_LEFT, empty_start_pos); + + start_back_pos = 0 -> if (enough_gap) then STARTBACK1_POS(enough_gap,SHAFT_COUNT_LEFT) else 0; + enough_back1 = false -> if (enough_gap) then required_back1(SHAFT_COUNT_LEFT, start_back_pos) else false; + + -- turn_r_Complete = false -> if(enough_back = 1) then TURN_RIGHT(REQ_RIGHT_DEGREE) else 0; + start_rightturn_pos = 0 -> if ((pre(mode)=4) and (enough_back1)) then SHAFT_COUNT_LEFT else pre(start_rightturn_pos); + turn_r_Complete = false -> ((pre(mode)=5) and (SHAFT_COUNT_LEFT - start_rightturn_pos >= 25)) ; + + mode = 1 -> if(pre(mode) = 1 and not blocked and not enough_gap ) then 2 -- waiting mode + else if(pre(mode) = 1 and blocked and not enough_gap) then 1 -- farward mode + else if(pre(mode) = 2 and not blocked and not enough_gap ) then 2 -- waiting mode + else if(pre(mode) = 2 and blocked and not enough_gap ) then 1 -- farward mode + else if(pre(mode) =2 and enough_gap) then 3 -- parking mode(buzzer on) + else if(pre(mode) = 1 and enough_gap) then 3-- parking mode(buzzer on) + else if(pre(mode) = 3) then 4 -- first back by small amount (parking back) + else if(pre(mode)=4 and not enough_back1 ) then 4-- not enough backing + else if(pre(mode)=4 and enough_back1 ) then 5 -- complete backing process, goes to turn right mode + else if(pre(mode) = 5 and not turn_r_Complete ) then 5-- not completed turning + else if(pre(mode) = 5 and turn_r_Complete) then 6 -- after turn right , go to stop mode + else 6; + + + -- blocked =-- 1 imply there is no obstacle in front, 0 imply there is a obstacle in front=> there + + + + + (DIRECTION,VELOCITY) = if (mode =1 or mode =3) then (dir1,vel1) else if(mode =4) then (2,vel1) else if(mode = 5) then (3,vel1) else (0,0); + BUZZER = (mode = 3 or mode =4 or mode =5) ; -- buzzer on imply that car is parking mode else off + + + + tel + + + + + diff --git a/test/TO_SORT/bug/car-orig.lus b/test/TO_SORT/bug/car-orig.lus new file mode 100644 index 00000000..b49f39bf --- /dev/null +++ b/test/TO_SORT/bug/car-orig.lus @@ -0,0 +1,157 @@ +--robot direction control setting + + +-- stop = 0 +-- forward =1 +-- back = 2 +-- right = 3 + +-- soft_left = 4(right wheel frwd and left wheel stop) +-- soft_right =5(left wheel frwd and right wheel stop) +-- soft_left_2 = 6 (right wheel back and left wheel stop) +-- soft_right_2 =7 (left wheel back and right wheel stop) +-- Veer_Soft_Right_Turn= 8 (this will set the left and right motor velocity with veering softly in right) +-- Veer_Soft_Left_Turn= 9 (this will set the left and right motor velocity with veering softly in left) +-- Veer_Hard_Right_Turn= 10 (this will set the left and right motor velocity with veering hardly in right) +-- Veer_Hard_Left_Turn= 11 (this will set the left and right motor velocity with veering hardly in left) + + +const WHITE = 100; +const REQ_GAP =40; +const LEFT_OBS_DIST =150; +const FRONT_OBS_DIST = 100; +const REQ_RIGHT_DEGREE = 90; + +node whiteline(r_line,m_line,l_line: int) returns(dir,velocity:int); + +let + + velocity = 255 ; + + dir = + --all sensor on the line + + if(m_line<WHITE and l_line< WHITE and r_line < WHITE) then 1 -- forward + + --center & right sensor on the line + else if (m_line< WHITE and l_line>WHITE and r_line < WHITE ) then 8 --veer soft right + + -- left & center in on the line + else if(m_line< WHITE and l_line<WHITE and r_line > WHITE) then 9 --veer soft left + + --only right sensor on line + else if (m_line> WHITE and l_line>WHITE and r_line < WHITE) then 10 --veer hard right + + --only left sensor is on line + else if(m_line> WHITE and l_line<WHITE and r_line > WHITE) then 11--veer hard left + + else 0 ; -- when all sensor are out of line +tel + +--collision detection in front of the robot + + + + node CD(f_ir:int) returns(presence:bool) + let + presence = if(f_ir>100) then 1 else 0; + +-- 1 imply there is no obstacle in front +--0 imply there is a obstacle in front + + tel +------------------ +node gap1(left_ir:int) returns(avail:bool) + let + + avail = if(left_ir > LEFT_OBS_DIST) then true else false; --1 = there is a gap + +tel +--------------------------------------------------------- + node STARTPOS(l_gap:bool;shaft_l:int) returns(start:int); +let + +start = 0 -> if(shaft_l = 0 and l_gap =1 ) then 0 + else if ((pre(l_gap)=0) and (shaft_l<>0)) then shaft_l + else pre(start); + +tel +-------------------------------------------------------- +node PARKING_LENGHT(shaft_l,start_pos:int) returns(park_lenght:int); + let + park_lenght = if((shaft_l - start_pos) > REQ_GAP) then 1 else 0; -- 1 indicate sufficient parking space else not sufficient + tel +------------------------------------------- +node required_back1(shaft_l,start_back:int) returns(done_back1:bool); + let + done_back1 = if(shaft_l -start_back = 20) then 1 else 0; + tel + + +---------------- +node STARTBACK1_POS(gap_found:bool;shaft_l:int) returns(back1:int); +let + back1 = 0 -> if(shaft_l = 0 and gap_found =1 ) then 0 + else if(pre(gap_found) =0 and shaft_l<>0 ) then shaft_l + else pre(back1); +tel + + + + node CONTROLLER(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE,FRONT_IR_VALUE,LEFT_IR_VALUE,SHAFT_COUNT_LEFT:int) + returns(DIRECTION,VELOCITY:int; BUZZER:bool); + +var dir1,vel1,empty_start_pos,mode,start_back_pos,start_rightturn_pos:int; blocked,enough_gap,left_gap,enough_back1,turn_r_Complete :bool; + +-- mode =1 : forward +-- mode = 2 : waiting +-- mode =3 : parking(buzzer on) +-- mode =4 : parking(backing1) +-- mode =5 : parking(turn right) +-- mode =6 : parking(bcking2) +-- mode =7 :stop(buzzer off) +let + left_gap = 0 -> gap1(LEFT_IR_VALUE); + (dir1,vel1) = whiteline(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE); + blocked = 0 ->CD(FRONT_IR_VALUE); + + empty_start_pos = 0 -> STARTPOS(left_gap,SHAFT_COUNT_LEFT); + enough_gap = 0 -> PARKING_LENGHT(SHAFT_COUNT_LEFT, empty_start_pos); + + start_back_pos = 0 -> if (enough_gap=1) then STARTBACK1_POS(enough_gap,SHAFT_COUNT_LEFT) else 0; + enough_back1 = 0 -> if (enough_gap=1) then required_back1(SHAFT_COUNT_LEFT, start_back_pos) else 0; + + -- turn_r_Complete = 0 -> if(enough_back = 1) then TURN_RIGHT(REQ_RIGHT_DEGREE) else 0; + start_rightturn_pos = 0 -> if ((pre(mode)=4) and (enough_back1 =1)) then SHAFT_COUNT_LEFT else pre(start_rightturn_pos); + turn_r_Complete = 0 -> if ((pre(mode)=5) and (SHAFT_COUNT_LEFT - start_rightturn_pos >= 25)) then 1 else 0; + + mode = 1 -> if(pre(mode) = 1 and blocked = 0 and enough_gap =0 ) then 2 -- waiting mode + else if(pre(mode) = 1 and blocked = 1 and enough_gap=0) then 1 -- farward mode + else if(pre(mode) = 2 and blocked = 0 and enough_gap=0 ) then 2 -- waiting mode + else if(pre(mode) = 2 and blocked = 1 and enough_gap=0 ) then 1 -- farward mode + else if(pre(mode) =2 and enough_gap=1) then 3 -- parking mode(buzzer on) + else if(pre(mode) = 1 and enough_gap=1) then 3-- parking mode(buzzer on) + else if(pre(mode) = 3) then 4 -- first back by small amount (parking back) + else if(pre(mode)=4 and enough_back1=0 ) then 4-- not enough backing + else if(pre(mode)=4 and enough_back1=1 ) then 5 -- complete backing process, goes to turn right mode + else if(pre(mode) = 5 and turn_r_Complete = 0 ) then 5-- not completed turning + else if(pre(mode) = 5 and turn_r_Complete = 1) then 6 -- after turn right , go to stop mode + else 6; + + + -- blocked =-- 1 imply there is no obstacle in front, 0 imply there is a obstacle in front=> there + + + + + (DIRECTION,VELOCITY) = if (mode =1 or mode =3) then (dir1,vel1) else if(mode =4) then (2,vel1) else if(mode = 5) then (3,vel1) else (0,0); + BUZZER = if(mode = 3 or mode =4 or mode =5) then 1 else 0 ; -- buzzer on imply that car is parking mode else off + + + + tel + + + + + diff --git a/test/TO_SORT/bug/car.lus b/test/TO_SORT/bug/car.lus new file mode 100644 index 00000000..b51170e7 --- /dev/null +++ b/test/TO_SORT/bug/car.lus @@ -0,0 +1,157 @@ +--robot direction control setting + + +-- stop = 0 +-- forward =1 +-- back = 2 +-- right = 3 + +-- soft_left = 4(right wheel frwd and left wheel stop) +-- soft_right =5(left wheel frwd and right wheel stop) +-- soft_left_2 = 6 (right wheel back and left wheel stop) +-- soft_right_2 =7 (left wheel back and right wheel stop) +-- Veer_Soft_Right_Turn= 8 (this will set the left and right motor velocity with veering softly in right) +-- Veer_Soft_Left_Turn= 9 (this will set the left and right motor velocity with veering softly in left) +-- Veer_Hard_Right_Turn= 10 (this will set the left and right motor velocity with veering hardly in right) +-- Veer_Hard_Left_Turn= 11 (this will set the left and right motor velocity with veering hardly in left) + + +const WHITE = 100; +const REQ_GAP =40; +const LEFT_OBS_DIST =150; +const FRONT_OBS_DIST = 100; +const REQ_RIGHT_DEGREE = 90; + +node whiteline(r_line,m_line,l_line: int) returns(dir,velocity:int); + +let + + velocity = 255 ; + + dir = + --all sensor on the line + + if(m_line<WHITE and l_line< WHITE and r_line < WHITE) then 1 -- forward + + --center & right sensor on the line + else if (m_line< WHITE and l_line>WHITE and r_line < WHITE ) then 8 --veer soft right + + -- left & center in on the line + else if(m_line< WHITE and l_line<WHITE and r_line > WHITE) then 9 --veer soft left + + --only right sensor on line + else if (m_line> WHITE and l_line>WHITE and r_line < WHITE) then 10 --veer hard right + + --only left sensor is on line + else if(m_line> WHITE and l_line<WHITE and r_line > WHITE) then 11--veer hard left + + else 0 ; -- when all sensor are out of line +tel + +--collision detection in front of the robot + + + + node CD(f_ir:int) returns(presence:bool) + let + presence = (f_ir>100); + +-- 1 imply there is no obstacle in front +--0 imply there is a obstacle in front + + tel +------------------ +node gap1(left_ir:int) returns(avail:bool) + let + + avail = if(left_ir > LEFT_OBS_DIST) then true else false; --1 = there is a gap + +tel +--------------------------------------------------------- +node STARTPOS(l_gap:bool;shaft_l:int) returns(start:int); +let + +start = 0 -> if(shaft_l = 0 and l_gap ) then 0 + else if (not (pre(l_gap)) and (shaft_l<>0)) then (shaft_l) + else pre(start); + +tel +-------------------------------------------------------- +node PARKING_LENGHT(shaft_l,start_pos:int) returns(park_lenght:bool); + let + park_lenght = ((shaft_l - start_pos) > REQ_GAP) ; -- true indicate sufficient parking space else not sufficient + tel +------------------------------------------- +node required_back1(shaft_l,start_back:int) returns(done_back1:bool); + let + done_back1 = (shaft_l -start_back = 20); + tel + + +---------------- +node STARTBACK1_POS(gap_found:bool;shaft_l:int) returns(back1:int); +let + back1 = 0 -> if(shaft_l = 0 and gap_found ) then 0 + else if(pre(gap_found) and shaft_l<>0 ) then shaft_l + else pre(back1); +tel + + + + node CONTROLLER(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE,FRONT_IR_VALUE,LEFT_IR_VALUE,SHAFT_COUNT_LEFT:int) + returns(DIRECTION,VELOCITY:int; BUZZER:bool); + +var dir1,vel1,empty_start_pos,mode,start_back_pos,start_rightturn_pos:int; blocked,enough_gap,left_gap,enough_back1,turn_r_Complete :bool; + +-- mode =1 : forward +-- mode = 2 : waiting +-- mode =3 : parking(buzzer on) +-- mode =4 : parking(backing1) +-- mode =5 : parking(turn right) +-- mode =6 : parking(bcking2) +-- mode =7 :stop(buzzer off) +let + left_gap = false -> gap1(LEFT_IR_VALUE); + (dir1,vel1) = whiteline(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE); + blocked = false ->CD(FRONT_IR_VALUE); + + empty_start_pos = 0 -> STARTPOS(left_gap,SHAFT_COUNT_LEFT); + enough_gap = false -> PARKING_LENGHT(SHAFT_COUNT_LEFT, empty_start_pos); + + start_back_pos = 0 -> if (enough_gap) then STARTBACK1_POS(enough_gap,SHAFT_COUNT_LEFT) else 0; + enough_back1 = false -> if (enough_gap) then required_back1(SHAFT_COUNT_LEFT, start_back_pos) else false; + + -- turn_r_Complete = false -> if(enough_back = 1) then TURN_RIGHT(REQ_RIGHT_DEGREE) else 0; + start_rightturn_pos = 0 -> if ((pre(mode)=4) and (enough_back1)) then SHAFT_COUNT_LEFT else pre(start_rightturn_pos); + turn_r_Complete = false -> ((pre(mode)=5) and (SHAFT_COUNT_LEFT - start_rightturn_pos >= 25)) ; + + mode = 1 -> if(pre(mode) = 1 and not blocked and not enough_gap ) then 2 -- waiting mode + else if(pre(mode) = 1 and blocked and not enough_gap) then 1 -- farward mode + else if(pre(mode) = 2 and not blocked and not enough_gap ) then 2 -- waiting mode + else if(pre(mode) = 2 and blocked and not enough_gap ) then 1 -- farward mode + else if(pre(mode) =2 and enough_gap) then 3 -- parking mode(buzzer on) + else if(pre(mode) = 1 and enough_gap) then 3-- parking mode(buzzer on) + else if(pre(mode) = 3) then 4 -- first back by small amount (parking back) + else if(pre(mode)=4 and not enough_back1 ) then 4-- not enough backing + else if(pre(mode)=4 and enough_back1 ) then 5 -- complete backing process, goes to turn right mode + else if(pre(mode) = 5 and not turn_r_Complete ) then 5-- not completed turning + else if(pre(mode) = 5 and turn_r_Complete) then 6 -- after turn right , go to stop mode + else 6; + + + -- blocked =-- 1 imply there is no obstacle in front, 0 imply there is a obstacle in front=> there + + + + + (DIRECTION,VELOCITY) = if (mode =1 or mode =3) then (dir1,vel1) else if(mode =4) then (2,vel1) else if(mode = 5) then (3,vel1) else (0,0); + BUZZER = (mode = 3 or mode =4 or mode =5) ; -- buzzer on imply that car is parking mode else off + + + + tel + + + + + diff --git a/test/TO_SORT/bug/rs.lus b/test/TO_SORT/bug/rs.lus new file mode 100644 index 00000000..e274b4eb --- /dev/null +++ b/test/TO_SORT/bug/rs.lus @@ -0,0 +1,23 @@ + package rs + + provides + node ri(x: int^8) returns (y: int^8); +body + +node dcopy<<type t>>(a, x: t) returns (b, y: t); +let + b = x; + y = a; +tel + +node rshift<<type t; const v: t; const sz : int>>(x: t^sz) returns (y:t^sz); +var _ : t; +let + --y = [v] | x[0..sz-2]; + + _, y = fillred<< dcopy<< t>>, sz>>(v, x); +tel + +node di = dcopy<< int >>; +node ri = rshift<<int; 0; 8>>; +end diff --git a/test/TO_SORT/bug/rs.lus~ b/test/TO_SORT/bug/rs.lus~ new file mode 100644 index 00000000..5fa04db3 --- /dev/null +++ b/test/TO_SORT/bug/rs.lus~ @@ -0,0 +1,16 @@ +node dcopy<<type t>>(a, x: t) returns (b, y: t); +let + b = x; + y = a; +tel + +node rshift<<type t; const v: t; const sz : int>>(x: t^sz) returns (y:t^sz); +var _ : t; +let + --y = [v] | x[0..sz-2]; + +_, y = fillred<<node dcopy<<type t>>, sz>>(v, x); +tel + + +node ri = rshift<<int; 0; 8>>; diff --git a/test/TO_SORT/bug/toto.lus b/test/TO_SORT/bug/toto.lus new file mode 100644 index 00000000..f318c7ad --- /dev/null +++ b/test/TO_SORT/bug/toto.lus @@ -0,0 +1,4 @@ +node toto(x: int) returns (y: bool) +let + y = x; +tel \ No newline at end of file diff --git a/test/TO_SORT/bug2.lus b/test/TO_SORT/bug2.lus new file mode 100644 index 00000000..18cb2a06 --- /dev/null +++ b/test/TO_SORT/bug2.lus @@ -0,0 +1,12 @@ + + +-- bug : l'affichage du champ f2 est bizzare (rien a voir avec l'expansion des +-- types structurés cependant...) -> ("{ f2=_v1_0, _v1_1 ; f1=42 }") + +type s = { f1: int ; f2: int^2 }; + +node simple(x:s) returns (i: s^2); +let + + i = s { f1 = 42; f2 = [5, 6] } ^ 2; +tel \ No newline at end of file diff --git a/test/TO_SORT/bug3.lus b/test/TO_SORT/bug3.lus new file mode 100644 index 00000000..a27b04a1 --- /dev/null +++ b/test/TO_SORT/bug3.lus @@ -0,0 +1,11 @@ + +-- UniqueOutput.check ne voit pas la double definition ici!!!! +-- (nb : en mode expand-struct, ca marche...) + +type s = { f1: int ; f2: int^2 }; + +node test(y: s^4^4; z: int) returns(x: s^4^4); +let + x [1 .. 2][0][0].f1 = z ; + x=y; +tel diff --git a/test/TO_SORT/car.lus b/test/TO_SORT/car.lus new file mode 100644 index 00000000..b49f39bf --- /dev/null +++ b/test/TO_SORT/car.lus @@ -0,0 +1,157 @@ +--robot direction control setting + + +-- stop = 0 +-- forward =1 +-- back = 2 +-- right = 3 + +-- soft_left = 4(right wheel frwd and left wheel stop) +-- soft_right =5(left wheel frwd and right wheel stop) +-- soft_left_2 = 6 (right wheel back and left wheel stop) +-- soft_right_2 =7 (left wheel back and right wheel stop) +-- Veer_Soft_Right_Turn= 8 (this will set the left and right motor velocity with veering softly in right) +-- Veer_Soft_Left_Turn= 9 (this will set the left and right motor velocity with veering softly in left) +-- Veer_Hard_Right_Turn= 10 (this will set the left and right motor velocity with veering hardly in right) +-- Veer_Hard_Left_Turn= 11 (this will set the left and right motor velocity with veering hardly in left) + + +const WHITE = 100; +const REQ_GAP =40; +const LEFT_OBS_DIST =150; +const FRONT_OBS_DIST = 100; +const REQ_RIGHT_DEGREE = 90; + +node whiteline(r_line,m_line,l_line: int) returns(dir,velocity:int); + +let + + velocity = 255 ; + + dir = + --all sensor on the line + + if(m_line<WHITE and l_line< WHITE and r_line < WHITE) then 1 -- forward + + --center & right sensor on the line + else if (m_line< WHITE and l_line>WHITE and r_line < WHITE ) then 8 --veer soft right + + -- left & center in on the line + else if(m_line< WHITE and l_line<WHITE and r_line > WHITE) then 9 --veer soft left + + --only right sensor on line + else if (m_line> WHITE and l_line>WHITE and r_line < WHITE) then 10 --veer hard right + + --only left sensor is on line + else if(m_line> WHITE and l_line<WHITE and r_line > WHITE) then 11--veer hard left + + else 0 ; -- when all sensor are out of line +tel + +--collision detection in front of the robot + + + + node CD(f_ir:int) returns(presence:bool) + let + presence = if(f_ir>100) then 1 else 0; + +-- 1 imply there is no obstacle in front +--0 imply there is a obstacle in front + + tel +------------------ +node gap1(left_ir:int) returns(avail:bool) + let + + avail = if(left_ir > LEFT_OBS_DIST) then true else false; --1 = there is a gap + +tel +--------------------------------------------------------- + node STARTPOS(l_gap:bool;shaft_l:int) returns(start:int); +let + +start = 0 -> if(shaft_l = 0 and l_gap =1 ) then 0 + else if ((pre(l_gap)=0) and (shaft_l<>0)) then shaft_l + else pre(start); + +tel +-------------------------------------------------------- +node PARKING_LENGHT(shaft_l,start_pos:int) returns(park_lenght:int); + let + park_lenght = if((shaft_l - start_pos) > REQ_GAP) then 1 else 0; -- 1 indicate sufficient parking space else not sufficient + tel +------------------------------------------- +node required_back1(shaft_l,start_back:int) returns(done_back1:bool); + let + done_back1 = if(shaft_l -start_back = 20) then 1 else 0; + tel + + +---------------- +node STARTBACK1_POS(gap_found:bool;shaft_l:int) returns(back1:int); +let + back1 = 0 -> if(shaft_l = 0 and gap_found =1 ) then 0 + else if(pre(gap_found) =0 and shaft_l<>0 ) then shaft_l + else pre(back1); +tel + + + + node CONTROLLER(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE,FRONT_IR_VALUE,LEFT_IR_VALUE,SHAFT_COUNT_LEFT:int) + returns(DIRECTION,VELOCITY:int; BUZZER:bool); + +var dir1,vel1,empty_start_pos,mode,start_back_pos,start_rightturn_pos:int; blocked,enough_gap,left_gap,enough_back1,turn_r_Complete :bool; + +-- mode =1 : forward +-- mode = 2 : waiting +-- mode =3 : parking(buzzer on) +-- mode =4 : parking(backing1) +-- mode =5 : parking(turn right) +-- mode =6 : parking(bcking2) +-- mode =7 :stop(buzzer off) +let + left_gap = 0 -> gap1(LEFT_IR_VALUE); + (dir1,vel1) = whiteline(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE); + blocked = 0 ->CD(FRONT_IR_VALUE); + + empty_start_pos = 0 -> STARTPOS(left_gap,SHAFT_COUNT_LEFT); + enough_gap = 0 -> PARKING_LENGHT(SHAFT_COUNT_LEFT, empty_start_pos); + + start_back_pos = 0 -> if (enough_gap=1) then STARTBACK1_POS(enough_gap,SHAFT_COUNT_LEFT) else 0; + enough_back1 = 0 -> if (enough_gap=1) then required_back1(SHAFT_COUNT_LEFT, start_back_pos) else 0; + + -- turn_r_Complete = 0 -> if(enough_back = 1) then TURN_RIGHT(REQ_RIGHT_DEGREE) else 0; + start_rightturn_pos = 0 -> if ((pre(mode)=4) and (enough_back1 =1)) then SHAFT_COUNT_LEFT else pre(start_rightturn_pos); + turn_r_Complete = 0 -> if ((pre(mode)=5) and (SHAFT_COUNT_LEFT - start_rightturn_pos >= 25)) then 1 else 0; + + mode = 1 -> if(pre(mode) = 1 and blocked = 0 and enough_gap =0 ) then 2 -- waiting mode + else if(pre(mode) = 1 and blocked = 1 and enough_gap=0) then 1 -- farward mode + else if(pre(mode) = 2 and blocked = 0 and enough_gap=0 ) then 2 -- waiting mode + else if(pre(mode) = 2 and blocked = 1 and enough_gap=0 ) then 1 -- farward mode + else if(pre(mode) =2 and enough_gap=1) then 3 -- parking mode(buzzer on) + else if(pre(mode) = 1 and enough_gap=1) then 3-- parking mode(buzzer on) + else if(pre(mode) = 3) then 4 -- first back by small amount (parking back) + else if(pre(mode)=4 and enough_back1=0 ) then 4-- not enough backing + else if(pre(mode)=4 and enough_back1=1 ) then 5 -- complete backing process, goes to turn right mode + else if(pre(mode) = 5 and turn_r_Complete = 0 ) then 5-- not completed turning + else if(pre(mode) = 5 and turn_r_Complete = 1) then 6 -- after turn right , go to stop mode + else 6; + + + -- blocked =-- 1 imply there is no obstacle in front, 0 imply there is a obstacle in front=> there + + + + + (DIRECTION,VELOCITY) = if (mode =1 or mode =3) then (dir1,vel1) else if(mode =4) then (2,vel1) else if(mode = 5) then (3,vel1) else (0,0); + BUZZER = if(mode = 3 or mode =4 or mode =5) then 1 else 0 ; -- buzzer on imply that car is parking mode else off + + + + tel + + + + + diff --git a/condact.lus b/test/TO_SORT/condact.lus similarity index 100% rename from condact.lus rename to test/TO_SORT/condact.lus diff --git a/condact2.lus b/test/TO_SORT/condact2.lus similarity index 100% rename from condact2.lus rename to test/TO_SORT/condact2.lus diff --git a/test/TO_SORT/ec.lus b/test/TO_SORT/ec.lus new file mode 100644 index 00000000..005f7fd3 --- /dev/null +++ b/test/TO_SORT/ec.lus @@ -0,0 +1,643 @@ + +node left__toto( + x:bool) +returns ( + t_0_a_0:bool; + t_0_a_1:bool; + t_0_a_2:bool; + t_0_a_3:bool; + t_0_a_4:bool; + t_0_a_5:bool; + t_0_a_6:bool; + t_0_a_7:bool; + t_0_a_8:bool; + t_0_a_9:bool; + t_0_a_10:bool; + t_0_a_11:bool; + t_0_a_12:bool; + t_0_a_13:bool; + t_0_a_14:bool; + t_0_a_15:bool; + t_0_a_16:bool; + t_0_a_17:bool; + t_0_a_18:bool; + t_0_a_19:bool; + t_0_a_20:bool; + t_0_a_21:bool; + t_0_a_22:bool; + t_0_a_23:bool; + t_0_a_24:bool; + t_0_a_25:bool; + t_0_a_26:bool; + t_0_a_27:bool; + t_0_a_28:bool; + t_0_a_29:bool; + t_0_a_30:bool; + t_0_a_31:bool; + t_0_a_32:bool; + t_0_a_33:bool; + t_0_a_34:bool; + t_0_a_35:bool; + t_0_a_36:bool; + t_0_a_37:bool; + t_0_a_38:bool; + t_0_a_39:bool; + t_0_a_40:bool; + t_0_a_41:bool; + t_0_a_42:bool; + t_0_a_43:bool; + t_0_a_44:bool; + t_0_a_45:bool; + t_0_a_46:bool; + t_0_a_47:bool; + t_0_a_48:bool; + t_0_a_49:bool; + t_0_a_50:bool; + t_0_a_51:bool; + t_0_a_52:bool; + t_0_a_53:bool; + t_0_a_54:bool; + t_0_a_55:bool; + t_0_a_56:bool; + t_0_a_57:bool; + t_0_a_58:bool; + t_0_a_59:bool; + t_0_a_60:bool; + t_0_a_61:bool; + t_0_a_62:bool; + t_0_a_63:bool; + t_0_a_64:bool; + t_0_a_65:bool; + t_0_a_66:bool; + t_0_a_67:bool; + t_0_a_68:bool; + t_0_a_69:bool; + t_0_a_70:bool; + t_0_a_71:bool; + t_0_a_72:bool; + t_0_a_73:bool; + t_0_a_74:bool; + t_0_a_75:bool; + t_0_a_76:bool; + t_0_a_77:bool; + t_0_a_78:bool; + t_0_a_79:bool; + t_0_a_80:bool; + t_0_a_81:bool; + t_0_a_82:bool; + t_0_a_83:bool; + t_0_a_84:bool; + t_0_a_85:bool; + t_0_a_86:bool; + t_0_a_87:bool; + t_0_a_88:bool; + t_0_a_89:bool; + t_0_a_90:bool; + t_0_a_91:bool; + t_0_a_92:bool; + t_0_a_93:bool; + t_0_a_94:bool; + t_0_a_95:bool; + t_0_a_96:bool; + t_0_a_97:bool; + t_0_a_98:bool; + t_0_a_99:bool; + t_0_b:int; + t_1_a_0:bool; + t_1_a_1:bool; + t_1_a_2:bool; + t_1_a_3:bool; + t_1_a_4:bool; + t_1_a_5:bool; + t_1_a_6:bool; + t_1_a_7:bool; + t_1_a_8:bool; + t_1_a_9:bool; + t_1_a_10:bool; + t_1_a_11:bool; + t_1_a_12:bool; + t_1_a_13:bool; + t_1_a_14:bool; + t_1_a_15:bool; + t_1_a_16:bool; + t_1_a_17:bool; + t_1_a_18:bool; + t_1_a_19:bool; + t_1_a_20:bool; + t_1_a_21:bool; + t_1_a_22:bool; + t_1_a_23:bool; + t_1_a_24:bool; + t_1_a_25:bool; + t_1_a_26:bool; + t_1_a_27:bool; + t_1_a_28:bool; + t_1_a_29:bool; + t_1_a_30:bool; + t_1_a_31:bool; + t_1_a_32:bool; + t_1_a_33:bool; + t_1_a_34:bool; + t_1_a_35:bool; + t_1_a_36:bool; + t_1_a_37:bool; + t_1_a_38:bool; + t_1_a_39:bool; + t_1_a_40:bool; + t_1_a_41:bool; + t_1_a_42:bool; + t_1_a_43:bool; + t_1_a_44:bool; + t_1_a_45:bool; + t_1_a_46:bool; + t_1_a_47:bool; + t_1_a_48:bool; + t_1_a_49:bool; + t_1_a_50:bool; + t_1_a_51:bool; + t_1_a_52:bool; + t_1_a_53:bool; + t_1_a_54:bool; + t_1_a_55:bool; + t_1_a_56:bool; + t_1_a_57:bool; + t_1_a_58:bool; + t_1_a_59:bool; + t_1_a_60:bool; + t_1_a_61:bool; + t_1_a_62:bool; + t_1_a_63:bool; + t_1_a_64:bool; + t_1_a_65:bool; + t_1_a_66:bool; + t_1_a_67:bool; + t_1_a_68:bool; + t_1_a_69:bool; + t_1_a_70:bool; + t_1_a_71:bool; + t_1_a_72:bool; + t_1_a_73:bool; + t_1_a_74:bool; + t_1_a_75:bool; + t_1_a_76:bool; + t_1_a_77:bool; + t_1_a_78:bool; + t_1_a_79:bool; + t_1_a_80:bool; + t_1_a_81:bool; + t_1_a_82:bool; + t_1_a_83:bool; + t_1_a_84:bool; + t_1_a_85:bool; + t_1_a_86:bool; + t_1_a_87:bool; + t_1_a_88:bool; + t_1_a_89:bool; + t_1_a_90:bool; + t_1_a_91:bool; + t_1_a_92:bool; + t_1_a_93:bool; + t_1_a_94:bool; + t_1_a_95:bool; + t_1_a_96:bool; + t_1_a_97:bool; + t_1_a_98:bool; + t_1_a_99:bool; + t_1_b:int; + t_2_a_0:bool; + t_2_a_1:bool; + t_2_a_2:bool; + t_2_a_3:bool; + t_2_a_4:bool; + t_2_a_5:bool; + t_2_a_6:bool; + t_2_a_7:bool; + t_2_a_8:bool; + t_2_a_9:bool; + t_2_a_10:bool; + t_2_a_11:bool; + t_2_a_12:bool; + t_2_a_13:bool; + t_2_a_14:bool; + t_2_a_15:bool; + t_2_a_16:bool; + t_2_a_17:bool; + t_2_a_18:bool; + t_2_a_19:bool; + t_2_a_20:bool; + t_2_a_21:bool; + t_2_a_22:bool; + t_2_a_23:bool; + t_2_a_24:bool; + t_2_a_25:bool; + t_2_a_26:bool; + t_2_a_27:bool; + t_2_a_28:bool; + t_2_a_29:bool; + t_2_a_30:bool; + t_2_a_31:bool; + t_2_a_32:bool; + t_2_a_33:bool; + t_2_a_34:bool; + t_2_a_35:bool; + t_2_a_36:bool; + t_2_a_37:bool; + t_2_a_38:bool; + t_2_a_39:bool; + t_2_a_40:bool; + t_2_a_41:bool; + t_2_a_42:bool; + t_2_a_43:bool; + t_2_a_44:bool; + t_2_a_45:bool; + t_2_a_46:bool; + t_2_a_47:bool; + t_2_a_48:bool; + t_2_a_49:bool; + t_2_a_50:bool; + t_2_a_51:bool; + t_2_a_52:bool; + t_2_a_53:bool; + t_2_a_54:bool; + t_2_a_55:bool; + t_2_a_56:bool; + t_2_a_57:bool; + t_2_a_58:bool; + t_2_a_59:bool; + t_2_a_60:bool; + t_2_a_61:bool; + t_2_a_62:bool; + t_2_a_63:bool; + t_2_a_64:bool; + t_2_a_65:bool; + t_2_a_66:bool; + t_2_a_67:bool; + t_2_a_68:bool; + t_2_a_69:bool; + t_2_a_70:bool; + t_2_a_71:bool; + t_2_a_72:bool; + t_2_a_73:bool; + t_2_a_74:bool; + t_2_a_75:bool; + t_2_a_76:bool; + t_2_a_77:bool; + t_2_a_78:bool; + t_2_a_79:bool; + t_2_a_80:bool; + t_2_a_81:bool; + t_2_a_82:bool; + t_2_a_83:bool; + t_2_a_84:bool; + t_2_a_85:bool; + t_2_a_86:bool; + t_2_a_87:bool; + t_2_a_88:bool; + t_2_a_89:bool; + t_2_a_90:bool; + t_2_a_91:bool; + t_2_a_92:bool; + t_2_a_93:bool; + t_2_a_94:bool; + t_2_a_95:bool; + t_2_a_96:bool; + t_2_a_97:bool; + t_2_a_98:bool; + t_2_a_99:bool; + t_2_b:int); +var + _v1_0:bool; + _v1_1:bool; + _v1_2:bool; + _v1_3:bool; + _v1_4:bool; + _v1_5:bool; + _v1_6:bool; + _v1_7:bool; + _v1_8:bool; + _v1_9:bool; + _v1_10:bool; + _v1_11:bool; + _v1_12:bool; + _v1_13:bool; + _v1_14:bool; + _v1_15:bool; + _v1_16:bool; + _v1_17:bool; + _v1_18:bool; + _v1_19:bool; + _v1_20:bool; + _v1_21:bool; + _v1_22:bool; + _v1_23:bool; + _v1_24:bool; + _v1_25:bool; + _v1_26:bool; + _v1_27:bool; + _v1_28:bool; + _v1_29:bool; + _v1_30:bool; + _v1_31:bool; + _v1_32:bool; + _v1_33:bool; + _v1_34:bool; + _v1_35:bool; + _v1_36:bool; + _v1_37:bool; + _v1_38:bool; + _v1_39:bool; + _v1_40:bool; + _v1_41:bool; + _v1_42:bool; + _v1_43:bool; + _v1_44:bool; + _v1_45:bool; + _v1_46:bool; + _v1_47:bool; + _v1_48:bool; + _v1_49:bool; + _v1_50:bool; + _v1_51:bool; + _v1_52:bool; + _v1_53:bool; + _v1_54:bool; + _v1_55:bool; + _v1_56:bool; + _v1_57:bool; + _v1_58:bool; + _v1_59:bool; + _v1_60:bool; + _v1_61:bool; + _v1_62:bool; + _v1_63:bool; + _v1_64:bool; + _v1_65:bool; + _v1_66:bool; + _v1_67:bool; + _v1_68:bool; + _v1_69:bool; + _v1_70:bool; + _v1_71:bool; + _v1_72:bool; + _v1_73:bool; + _v1_74:bool; + _v1_75:bool; + _v1_76:bool; + _v1_77:bool; + _v1_78:bool; + _v1_79:bool; + _v1_80:bool; + _v1_81:bool; + _v1_82:bool; + _v1_83:bool; + _v1_84:bool; + _v1_85:bool; + _v1_86:bool; + _v1_87:bool; + _v1_88:bool; + _v1_89:bool; + _v1_90:bool; + _v1_91:bool; + _v1_92:bool; + _v1_93:bool; + _v1_94:bool; + _v1_95:bool; + _v1_96:bool; + _v1_97:bool; + _v1_98:bool; + _v1_99:bool; + _v2_a_0:bool; + _v2_a_1:bool; + _v2_a_2:bool; + _v2_a_3:bool; + _v2_a_4:bool; + _v2_a_5:bool; + _v2_a_6:bool; + _v2_a_7:bool; + _v2_a_8:bool; + _v2_a_9:bool; + _v2_a_10:bool; + _v2_a_11:bool; + _v2_a_12:bool; + _v2_a_13:bool; + _v2_a_14:bool; + _v2_a_15:bool; + _v2_a_16:bool; + _v2_a_17:bool; + _v2_a_18:bool; + _v2_a_19:bool; + _v2_a_20:bool; + _v2_a_21:bool; + _v2_a_22:bool; + _v2_a_23:bool; + _v2_a_24:bool; + _v2_a_25:bool; + _v2_a_26:bool; + _v2_a_27:bool; + _v2_a_28:bool; + _v2_a_29:bool; + _v2_a_30:bool; + _v2_a_31:bool; + _v2_a_32:bool; + _v2_a_33:bool; + _v2_a_34:bool; + _v2_a_35:bool; + _v2_a_36:bool; + _v2_a_37:bool; + _v2_a_38:bool; + _v2_a_39:bool; + _v2_a_40:bool; + _v2_a_41:bool; + _v2_a_42:bool; + _v2_a_43:bool; + _v2_a_44:bool; + _v2_a_45:bool; + _v2_a_46:bool; + _v2_a_47:bool; + _v2_a_48:bool; + _v2_a_49:bool; + _v2_a_50:bool; + _v2_a_51:bool; + _v2_a_52:bool; + _v2_a_53:bool; + _v2_a_54:bool; + _v2_a_55:bool; + _v2_a_56:bool; + _v2_a_57:bool; + _v2_a_58:bool; + _v2_a_59:bool; + _v2_a_60:bool; + _v2_a_61:bool; + _v2_a_62:bool; + _v2_a_63:bool; + _v2_a_64:bool; + _v2_a_65:bool; + _v2_a_66:bool; + _v2_a_67:bool; + _v2_a_68:bool; + _v2_a_69:bool; + _v2_a_70:bool; + _v2_a_71:bool; + _v2_a_72:bool; + _v2_a_73:bool; + _v2_a_74:bool; + _v2_a_75:bool; + _v2_a_76:bool; + _v2_a_77:bool; + _v2_a_78:bool; + _v2_a_79:bool; + _v2_a_80:bool; + _v2_a_81:bool; + _v2_a_82:bool; + _v2_a_83:bool; + _v2_a_84:bool; + _v2_a_85:bool; + _v2_a_86:bool; + _v2_a_87:bool; + _v2_a_88:bool; + _v2_a_89:bool; + _v2_a_90:bool; + _v2_a_91:bool; + _v2_a_92:bool; + _v2_a_93:bool; + _v2_a_94:bool; + _v2_a_95:bool; + _v2_a_96:bool; + _v2_a_97:bool; + _v2_a_98:bool; + _v2_a_99:bool; + _v2_b:int; +let + (t_0_a_96, t_0_a_92, t_0_a_88, t_0_a_84, t_0_a_80, t_0_a_76, t_0_a_72, + t_0_a_68, t_0_a_64, t_0_a_60, t_0_a_56, t_0_a_52, t_0_a_48, t_0_a_44, + t_0_a_40, t_0_a_36, t_0_a_32, t_0_a_28, t_0_a_24, t_0_a_20, t_0_a_16, + t_0_a_12, t_0_a_8, t_0_a_4, t_0_a_0) = (true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true); + (t_0_a_2, t_0_a_6, t_0_a_10, t_0_a_14, t_0_a_18, t_0_a_22, t_0_a_26, + t_0_a_30, t_0_a_34, t_0_a_38, t_0_a_42, t_0_a_46, t_0_a_50, t_0_a_54, + t_0_a_58, t_0_a_62, t_0_a_66, t_0_a_70, t_0_a_74, t_0_a_78, t_0_a_82, + t_0_a_86, t_0_a_90, t_0_a_94, t_0_a_98) = (false, false, false, false, + false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, + false); + t_0_a_1 = true; + t_0_a_3 = true; + (t_0_a_5, t_0_a_7, t_0_a_9, t_0_a_11, t_0_a_13, t_0_a_15, t_0_a_17, + t_0_a_19, t_0_a_21, t_0_a_23, t_0_a_25, t_0_a_27, t_0_a_29, t_0_a_31, + t_0_a_33, t_0_a_35, t_0_a_37, t_0_a_39, t_0_a_41, t_0_a_43, t_0_a_45, + t_0_a_47, t_0_a_49, t_0_a_51, t_0_a_53, t_0_a_55, t_0_a_57, t_0_a_59, + t_0_a_61, t_0_a_63, t_0_a_65, t_0_a_67, t_0_a_69, t_0_a_71, t_0_a_73, + t_0_a_75, t_0_a_77, t_0_a_79, t_0_a_81, t_0_a_83, t_0_a_85, t_0_a_87, + t_0_a_89, t_0_a_91, t_0_a_93, t_0_a_95, t_0_a_97, t_0_a_99) = (false, + false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false); + t_0_b = 42; + (_v2_a_0, _v2_a_1, _v2_a_2, _v2_a_3, _v2_a_4, _v2_a_5, _v2_a_6, _v2_a_7, + _v2_a_8, _v2_a_9, _v2_a_10, _v2_a_11, _v2_a_12, _v2_a_13, _v2_a_14, + _v2_a_15, _v2_a_16, _v2_a_17, _v2_a_18, _v2_a_19, _v2_a_20, _v2_a_21, + _v2_a_22, _v2_a_23, _v2_a_24, _v2_a_25, _v2_a_26, _v2_a_27, _v2_a_28, + _v2_a_29, _v2_a_30, _v2_a_31, _v2_a_32, _v2_a_33, _v2_a_34, _v2_a_35, + _v2_a_36, _v2_a_37, _v2_a_38, _v2_a_39, _v2_a_40, _v2_a_41, _v2_a_42, + _v2_a_43, _v2_a_44, _v2_a_45, _v2_a_46, _v2_a_47, _v2_a_48, _v2_a_49, + _v2_a_50, _v2_a_51, _v2_a_52, _v2_a_53, _v2_a_54, _v2_a_55, _v2_a_56, + _v2_a_57, _v2_a_58, _v2_a_59, _v2_a_60, _v2_a_61, _v2_a_62, _v2_a_63, + _v2_a_64, _v2_a_65, _v2_a_66, _v2_a_67, _v2_a_68, _v2_a_69, _v2_a_70, + _v2_a_71, _v2_a_72, _v2_a_73, _v2_a_74, _v2_a_75, _v2_a_76, _v2_a_77, + _v2_a_78, _v2_a_79, _v2_a_80, _v2_a_81, _v2_a_82, _v2_a_83, _v2_a_84, + _v2_a_85, _v2_a_86, _v2_a_87, _v2_a_88, _v2_a_89, _v2_a_90, _v2_a_91, + _v2_a_92, _v2_a_93, _v2_a_94, _v2_a_95, _v2_a_96, _v2_a_97, _v2_a_98, + _v2_a_99, _v2_b) = (_v1_0, _v1_1, _v1_2, _v1_3, _v1_4, _v1_5, _v1_6, _v1_7, + _v1_8, _v1_9, _v1_10, _v1_11, _v1_12, _v1_13, _v1_14, _v1_15, _v1_16, + _v1_17, _v1_18, _v1_19, _v1_20, _v1_21, _v1_22, _v1_23, _v1_24, _v1_25, + _v1_26, _v1_27, _v1_28, _v1_29, _v1_30, _v1_31, _v1_32, _v1_33, _v1_34, + _v1_35, _v1_36, _v1_37, _v1_38, _v1_39, _v1_40, _v1_41, _v1_42, _v1_43, + _v1_44, _v1_45, _v1_46, _v1_47, _v1_48, _v1_49, _v1_50, _v1_51, _v1_52, + _v1_53, _v1_54, _v1_55, _v1_56, _v1_57, _v1_58, _v1_59, _v1_60, _v1_61, + _v1_62, _v1_63, _v1_64, _v1_65, _v1_66, _v1_67, _v1_68, _v1_69, _v1_70, + _v1_71, _v1_72, _v1_73, _v1_74, _v1_75, _v1_76, _v1_77, _v1_78, _v1_79, + _v1_80, _v1_81, _v1_82, _v1_83, _v1_84, _v1_85, _v1_86, _v1_87, _v1_88, + _v1_89, _v1_90, _v1_91, _v1_92, _v1_93, _v1_94, _v1_95, _v1_96, _v1_97, + _v1_98, _v1_99, 0); + (_v1_0, _v1_1, _v1_2, _v1_3, _v1_4, _v1_5, _v1_6, _v1_7, _v1_8, _v1_9, + _v1_10, _v1_11, _v1_12, _v1_13, _v1_14, _v1_15, _v1_16, _v1_17, _v1_18, + _v1_19, _v1_20, _v1_21, _v1_22, _v1_23, _v1_24, _v1_25, _v1_26, _v1_27, + _v1_28, _v1_29, _v1_30, _v1_31, _v1_32, _v1_33, _v1_34, _v1_35, _v1_36, + _v1_37, _v1_38, _v1_39, _v1_40, _v1_41, _v1_42, _v1_43, _v1_44, _v1_45, + _v1_46, _v1_47, _v1_48, _v1_49, _v1_50, _v1_51, _v1_52, _v1_53, _v1_54, + _v1_55, _v1_56, _v1_57, _v1_58, _v1_59, _v1_60, _v1_61, _v1_62, _v1_63, + _v1_64, _v1_65, _v1_66, _v1_67, _v1_68, _v1_69, _v1_70, _v1_71, _v1_72, + _v1_73, _v1_74, _v1_75, _v1_76, _v1_77, _v1_78, _v1_79, _v1_80, _v1_81, + _v1_82, _v1_83, _v1_84, _v1_85, _v1_86, _v1_87, _v1_88, _v1_89, _v1_90, + _v1_91, _v1_92, _v1_93, _v1_94, _v1_95, _v1_96, _v1_97, _v1_98, _v1_99) = + (true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true); + (t_1_a_0, t_1_a_1, t_1_a_2, t_1_a_3, t_1_a_4, t_1_a_5, t_1_a_6, t_1_a_7, + t_1_a_8, t_1_a_9, t_1_a_10, t_1_a_11, t_1_a_12, t_1_a_13, t_1_a_14, + t_1_a_15, t_1_a_16, t_1_a_17, t_1_a_18, t_1_a_19, t_1_a_20, t_1_a_21, + t_1_a_22, t_1_a_23, t_1_a_24, t_1_a_25, t_1_a_26, t_1_a_27, t_1_a_28, + t_1_a_29, t_1_a_30, t_1_a_31, t_1_a_32, t_1_a_33, t_1_a_34, t_1_a_35, + t_1_a_36, t_1_a_37, t_1_a_38, t_1_a_39, t_1_a_40, t_1_a_41, t_1_a_42, + t_1_a_43, t_1_a_44, t_1_a_45, t_1_a_46, t_1_a_47, t_1_a_48, t_1_a_49, + t_1_a_50, t_1_a_51, t_1_a_52, t_1_a_53, t_1_a_54, t_1_a_55, t_1_a_56, + t_1_a_57, t_1_a_58, t_1_a_59, t_1_a_60, t_1_a_61, t_1_a_62, t_1_a_63, + t_1_a_64, t_1_a_65, t_1_a_66, t_1_a_67, t_1_a_68, t_1_a_69, t_1_a_70, + t_1_a_71, t_1_a_72, t_1_a_73, t_1_a_74, t_1_a_75, t_1_a_76, t_1_a_77, + t_1_a_78, t_1_a_79, t_1_a_80, t_1_a_81, t_1_a_82, t_1_a_83, t_1_a_84, + t_1_a_85, t_1_a_86, t_1_a_87, t_1_a_88, t_1_a_89, t_1_a_90, t_1_a_91, + t_1_a_92, t_1_a_93, t_1_a_94, t_1_a_95, t_1_a_96, t_1_a_97, t_1_a_98, + t_1_a_99, t_1_b, t_2_a_0, t_2_a_1, t_2_a_2, t_2_a_3, t_2_a_4, t_2_a_5, + t_2_a_6, t_2_a_7, t_2_a_8, t_2_a_9, t_2_a_10, t_2_a_11, t_2_a_12, t_2_a_13, + t_2_a_14, t_2_a_15, t_2_a_16, t_2_a_17, t_2_a_18, t_2_a_19, t_2_a_20, + t_2_a_21, t_2_a_22, t_2_a_23, t_2_a_24, t_2_a_25, t_2_a_26, t_2_a_27, + t_2_a_28, t_2_a_29, t_2_a_30, t_2_a_31, t_2_a_32, t_2_a_33, t_2_a_34, + t_2_a_35, t_2_a_36, t_2_a_37, t_2_a_38, t_2_a_39, t_2_a_40, t_2_a_41, + t_2_a_42, t_2_a_43, t_2_a_44, t_2_a_45, t_2_a_46, t_2_a_47, t_2_a_48, + t_2_a_49, t_2_a_50, t_2_a_51, t_2_a_52, t_2_a_53, t_2_a_54, t_2_a_55, + t_2_a_56, t_2_a_57, t_2_a_58, t_2_a_59, t_2_a_60, t_2_a_61, t_2_a_62, + t_2_a_63, t_2_a_64, t_2_a_65, t_2_a_66, t_2_a_67, t_2_a_68, t_2_a_69, + t_2_a_70, t_2_a_71, t_2_a_72, t_2_a_73, t_2_a_74, t_2_a_75, t_2_a_76, + t_2_a_77, t_2_a_78, t_2_a_79, t_2_a_80, t_2_a_81, t_2_a_82, t_2_a_83, + t_2_a_84, t_2_a_85, t_2_a_86, t_2_a_87, t_2_a_88, t_2_a_89, t_2_a_90, + t_2_a_91, t_2_a_92, t_2_a_93, t_2_a_94, t_2_a_95, t_2_a_96, t_2_a_97, + t_2_a_98, t_2_a_99, t_2_b) = (_v2_a_0, _v2_a_1, _v2_a_2, _v2_a_3, _v2_a_4, + _v2_a_5, _v2_a_6, _v2_a_7, _v2_a_8, _v2_a_9, _v2_a_10, _v2_a_11, _v2_a_12, + _v2_a_13, _v2_a_14, _v2_a_15, _v2_a_16, _v2_a_17, _v2_a_18, _v2_a_19, + _v2_a_20, _v2_a_21, _v2_a_22, _v2_a_23, _v2_a_24, _v2_a_25, _v2_a_26, + _v2_a_27, _v2_a_28, _v2_a_29, _v2_a_30, _v2_a_31, _v2_a_32, _v2_a_33, + _v2_a_34, _v2_a_35, _v2_a_36, _v2_a_37, _v2_a_38, _v2_a_39, _v2_a_40, + _v2_a_41, _v2_a_42, _v2_a_43, _v2_a_44, _v2_a_45, _v2_a_46, _v2_a_47, + _v2_a_48, _v2_a_49, _v2_a_50, _v2_a_51, _v2_a_52, _v2_a_53, _v2_a_54, + _v2_a_55, _v2_a_56, _v2_a_57, _v2_a_58, _v2_a_59, _v2_a_60, _v2_a_61, + _v2_a_62, _v2_a_63, _v2_a_64, _v2_a_65, _v2_a_66, _v2_a_67, _v2_a_68, + _v2_a_69, _v2_a_70, _v2_a_71, _v2_a_72, _v2_a_73, _v2_a_74, _v2_a_75, + _v2_a_76, _v2_a_77, _v2_a_78, _v2_a_79, _v2_a_80, _v2_a_81, _v2_a_82, + _v2_a_83, _v2_a_84, _v2_a_85, _v2_a_86, _v2_a_87, _v2_a_88, _v2_a_89, + _v2_a_90, _v2_a_91, _v2_a_92, _v2_a_93, _v2_a_94, _v2_a_95, _v2_a_96, + _v2_a_97, _v2_a_98, _v2_a_99, _v2_b, _v2_a_0, _v2_a_1, _v2_a_2, _v2_a_3, + _v2_a_4, _v2_a_5, _v2_a_6, _v2_a_7, _v2_a_8, _v2_a_9, _v2_a_10, _v2_a_11, + _v2_a_12, _v2_a_13, _v2_a_14, _v2_a_15, _v2_a_16, _v2_a_17, _v2_a_18, + _v2_a_19, _v2_a_20, _v2_a_21, _v2_a_22, _v2_a_23, _v2_a_24, _v2_a_25, + _v2_a_26, _v2_a_27, _v2_a_28, _v2_a_29, _v2_a_30, _v2_a_31, _v2_a_32, + _v2_a_33, _v2_a_34, _v2_a_35, _v2_a_36, _v2_a_37, _v2_a_38, _v2_a_39, + _v2_a_40, _v2_a_41, _v2_a_42, _v2_a_43, _v2_a_44, _v2_a_45, _v2_a_46, + _v2_a_47, _v2_a_48, _v2_a_49, _v2_a_50, _v2_a_51, _v2_a_52, _v2_a_53, + _v2_a_54, _v2_a_55, _v2_a_56, _v2_a_57, _v2_a_58, _v2_a_59, _v2_a_60, + _v2_a_61, _v2_a_62, _v2_a_63, _v2_a_64, _v2_a_65, _v2_a_66, _v2_a_67, + _v2_a_68, _v2_a_69, _v2_a_70, _v2_a_71, _v2_a_72, _v2_a_73, _v2_a_74, + _v2_a_75, _v2_a_76, _v2_a_77, _v2_a_78, _v2_a_79, _v2_a_80, _v2_a_81, + _v2_a_82, _v2_a_83, _v2_a_84, _v2_a_85, _v2_a_86, _v2_a_87, _v2_a_88, + _v2_a_89, _v2_a_90, _v2_a_91, _v2_a_92, _v2_a_93, _v2_a_94, _v2_a_95, + _v2_a_96, _v2_a_97, _v2_a_98, _v2_a_99, _v2_b); +tel +-- end of node left__toto diff --git a/test/TO_SORT/lionel/bug.lus~ b/test/TO_SORT/lionel/bug.lus~ new file mode 100644 index 00000000..aaddd351 --- /dev/null +++ b/test/TO_SORT/lionel/bug.lus~ @@ -0,0 +1,21 @@ +package bug +uses pack1; + +provides + +node system(ck1 : bool) returns (out : int); + +body + +node system(ck1 : bool) returns (out : int); +var + ckout : bool; + out1 : int when ck1; +-- out2 : int when ckout; +let + (out1, ckout) = n1(ck1); +-- out2 = n2(ckout, out1); + out = current(out1); +tel + +end \ No newline at end of file diff --git a/test/TO_SORT/lionel/lus2lic.dot b/test/TO_SORT/lionel/lus2lic.dot new file mode 100644 index 00000000..6a48efe8 --- /dev/null +++ b/test/TO_SORT/lionel/lus2lic.dot @@ -0,0 +1,7 @@ +digraph G { + size="10,7.5"; + ratio="fill"; + rotate=90; + fontsize="12pt"; + rankdir = TB ; +} diff --git a/test/TO_SORT/lionel/testBoite.lus b/test/TO_SORT/lionel/testBoite.lus new file mode 100644 index 00000000..38feb2c7 --- /dev/null +++ b/test/TO_SORT/lionel/testBoite.lus @@ -0,0 +1,105 @@ +package boite + + + +provides + +node boite(dataGET, + dataPUT : bool; + dataIN : int when dataPUT) +--returns (dataOUT : int when dataGET); +returns (--localData_clock : bool; + --localData : int when localData_clock; + dataOUT : int when dataGET); +--var localData_clock : bool; +-- localData : int when localData_clock; + -- pLocalData : int; + + + +body + +node boite(dataGET, + dataPUT : bool; + dataIN : int when dataPUT) +returns (dataOUT : int when dataGET); + + +var localData_clock : bool; + localData : int when localData_clock; + -- pLocalData : int; +let + localData_clock = (dataPUT and (not dataGET)) + -> (dataPUT and (not dataGET)) + or (pre(localData_clock) and not(dataGET)); + + localData = (if dataPUT + then current(dataIN) + else current(pre(localData))) when localData_clock; + +-- if dataPUT and dataGET +-- then -1 +-- else if dataPUT and not dataGET +-- then dataIN +-- else if dataGET and not dataPUT +-- then -1 +-- else pre(localData) + + + dataOUT = (current( + (if dataPUT + then current(dataIN) + else current(localData)) when localData_clock)) when dataGET; + +-- if dataGET and dataPUT +-- then dataIN +-- else if not(dataGET and localData_clock and not(dataPUT)) +-- then -1 +-- else localData + + +-- dataOUT = current(localData) when dataGET; +tel + + + + +-- boite aux lettres +node boite2(dataIN : int; dataGET, dataPUT : bool) +returns (dataOUT : int; localData : int); +-- localDataErasedFromBoiteCP : int; +-- localDataCopydFromBoiteCP : int; +-- copyBoiteCPEvent, erasedBoiteCPEvent : bool); +--var localData : int; + -- pLocalData : int; +let + + localData = -1 -> if dataPUT + then dataIN + else if dataGET + then -1 + else pre localData; + -- observation dans Boite CP + -- ecrasement +-- localDataErasedFromBoiteCP = -1 -> if dataPUT or dataGET +-- then pre localData +-- else -1; +-- erasedBoiteCPEvent = dataPUT or dataGET; + +-- localDataCopydFromBoiteCP = -1;-- if dataPUT + -- then localData + -- else -1; +-- copyBoiteCPEvent = false; -- dataPUT; + + + -- localData = dataIN when dataPUT; + + --pLocalData = localData -> pre(localData); + + dataOUT = if dataGET + then pre localData --pLocalData + else -1; +tel + + +end \ No newline at end of file diff --git a/test/TO_SORT/lionel/testCapt.lus b/test/TO_SORT/lionel/testCapt.lus new file mode 100644 index 00000000..d3668378 --- /dev/null +++ b/test/TO_SORT/lionel/testCapt.lus @@ -0,0 +1,56 @@ +package capt + +provides +node capt(Hcapt : bool) +-- HrinstCount : bool; +-- indCount : int) +returns (dataPUT : bool; + stampedData : int when Hcapt); +-- productionEvent : bool);--stampedData : int when Hcapt); + + +body + + +node capt(Hcapt : bool) + --HrinstCount : bool; + --indCount : int) +returns (dataPUT : bool; + stampedData : int when Hcapt); +-- productionEvent : bool);--stampedData : int when Hcapt); +var localCnt : int; +-- indCountTab : bool^10; +let +--recherche d'un indice libre +--for (localCnt=0;indCountTab[localCnt]=true,localCnt); +-- localCnt = 0 -> if Hcapt +-- then pre(localCnt) + 1 +-- else pre(localCnt); + dataPUT = Hcapt; + stampedData = localCnt when Hcapt; + +-- production observed + +-- il faut utiliser productionEvent = Hcapt +-- il faut utiliser dataCP_IN +-- productionEvent = Hcapt; + +-- gestion de num d'occurence +-- indCountTab[indCount] = false -> if HrinstCount +-- then false +-- else pre(indCountTab[indCount]); + +-- indCountTab[localCnt] = false -> if Hcapt +-- then true +-- else pre(indCountTab[localCnt]); + +-- A RAJOUTER !!! +-- localCnt, indCountTab = updateCnt(indCount, HrinstCount, Hcapt, true^10->pre(indCountTab)); + + localCnt = 0 -> pre(localCnt)+1; + +tel + + + +end \ No newline at end of file diff --git a/test/TO_SORT/lionel/testPilote.lus b/test/TO_SORT/lionel/testPilote.lus new file mode 100644 index 00000000..cfe411ea --- /dev/null +++ b/test/TO_SORT/lionel/testPilote.lus @@ -0,0 +1,74 @@ +package pilote + +provides +node pilote(Hpilote, semAutP : bool; -- +-- HupdatePiloteData : bool; + dataBoiteCP : int) +returns (--semMemTakeP, + putMemP, dataGET : bool; + HupdatePiloteData : bool; + piloteData : int when HupdatePiloteData; + -- localDataErasedFromPilote : int when Hpilote; + -- erasedPiloteEvent, copyPiloteEvent : bool; + -- localDataCopiedFromPilote : int when Hpilote; + ); + + +body + +node pilote(Hpilote, semAutP : bool; -- +-- HupdatePiloteData : bool; + dataBoiteCP : int) +returns (--semMemTakeP, + putMemP, dataGET : bool; + HupdatePiloteData : bool; + piloteData : int when HupdatePiloteData; +-- localDataErasedFromPilote : int when Hpilote; +-- erasedPiloteEvent, copyPiloteEvent : bool; +-- localDataCopiedFromPilote : int when Hpilote; + ); +var localData : int when ckLocalData; + ckLocalData : bool; +let + dataGET = Hpilote; + + ckLocalData = false -> true; + + localData = (if Hpilote then dataBoiteCP else current(pre localData)) when ckLocalData; + ---1 -> if Hpilote + --then dataBoiteCP + --else pre localData; + + +-- semMemTakeP = Hpilote; + + + HupdatePiloteData = Hpilote and semAutP; + + piloteData = current(localData) when HupdatePiloteData; + --if (semAutP and Hpilote) + --then localData --current(localData) + --else -1; + + putMemP = semAutP and Hpilote; + + + -- observation dans pilote + -- ecrasement +-- localDataErasedFromPilote = (-1 -> pre localData) when Hpilote; + -- -1 -> if Hpilote + -- then pre localData + -- else -1; +-- erasedPiloteEvent = Hpilote; + +-- localDataCopiedFromPilote = (localData) when Hpilote; + -- -1 -> if Hpilote + -- then localData + -- else -1; +-- copyPiloteEvent = Hpilote; +-- assert HupdatePiloteData = Hpilote and semAutP; +tel + + + +end \ No newline at end of file diff --git a/test/TO_SORT/lionel/testSystem.lus b/test/TO_SORT/lionel/testSystem.lus new file mode 100644 index 00000000..90b0f313 --- /dev/null +++ b/test/TO_SORT/lionel/testSystem.lus @@ -0,0 +1,218 @@ +package system + +uses capt, boite, pilote; + +provides + + + +node system(in : bool; + Hcapt, Hpilote : bool; + semMemAutP : bool) --Happli : bool;) +returns + (HupdatePiloteData : bool; + -- dataBoiteCP_IN :int when Hcapt; + piloteData : int when HupdatePiloteData; -- when HrinstCount ; when dataBoiteCP_PUT !!!!!!!!!!!!! +-- localDataFromRead : int; +-- HrinstCount : bool; +-- indCount : int; +-- retard : int; nbrCopy : int^10 + ); + +body + + + +node system (in : bool; + Hcapt, Hpilote : bool; + semMemAutP : bool) -- Happli : bool;) +returns (--v : bool; + HupdatePiloteData : bool; + piloteData : int when HupdatePiloteData; + ) -- when dataBoiteCP_PUT; +-- localDataFromRead : int; +-- Hcapt, Hpilote, Happli : bool; +-- HrinstCount : bool; + --indCount : int; +-- retard : int; nbrCopy : int^10); + --var --Hcapt, Hpilote, Happli : bool; -- les horloges + --dataBoiteCP_IN, + -- dataBoiteCP_OUT : int; -- donn?es en entr?es/sorties de la boite aux lettres + -- dataBoiteCP_PUT, dataBoiteCP_GET : bool; -- commandes de la boite aux lettres + -- semMemTakeP, semMemTakeR, semMemGive : bool; -- commandes du s?maphore + -- semMemAutP,semMemAutR : bool; -- autorisations en sortie du s?maphore + --piloteData, readData : int; + -- getMem, + -- putMem : bool; +var +-- free, demandeR : bool; + dataBoiteCP_OUT : int when dataBoiteCP_GET; + dataBoiteCP_IN : int when dataBoiteCP_PUT; +-- piloteData : int when HupdatePiloteData; +-- readData : int; +-- getMem : bool; + dataBoiteCP_PUT : bool; + dataBoiteCP_GET : bool; +-- semMemTakeP : bool; +-- semMemTakeR : bool; +-- semMemGive : bool; +-- semMemAutP : bool; +-- semMemAutR : bool; + putMem : bool; + + +-- localErasedDataFromBoiteCP : int; +-- localCopiedDataFromBoiteCP : int; +-- localErasedDataFromPilote : int when Hpilote; +-- localCopiedDataFromPilote : int when Hpilote; +-- localErasedDataFromMem : int when putMem; +-- localCopiedDataFromMem : int when putMem; +-- productionEvent, +-- consumptionEvent, +-- eraseMemEvent, +-- eraseBoiteCPEvent, +-- erasePiloteEvent, +-- copyBoiteCPEvent, +-- copyPiloteEvent, +-- copyMemEvent : bool; + +-- sortieCapt : int when Hcapt; + + sortieCapt : int when Hcapt; + + toto : bool; + +let + +-- (Hcapt, Hpilote, Happli) = ctrl(in); + + +-- dataBoiteCP_IN = sortieCapt; + + + + -- capt : done !!!!!!!!!!!!!!!!!!!!!!!!!!!! + (dataBoiteCP_PUT, + sortieCapt) +-- productionEvent) + = capt(Hcapt); +-- HrinstCount, +-- indCount); + -- dataBoiteCP_IN : when HrinstCount !! + + + toto = Hcapt and dataBoiteCP_PUT; + + dataBoiteCP_IN = current(sortieCapt) when dataBoiteCP_PUT; + + + -- boiteCP : done !!!!!!!!!!!!!!!!!!!!!!!!!!!! + (dataBoiteCP_OUT) = +-- localErasedDataFromBoiteCP, +-- localCopiedDataFromBoiteCP, +-- copyBoiteCPEvent, +-- eraseBoiteCPEvent) = + boite( + dataBoiteCP_GET, + dataBoiteCP_PUT, + --current(dataBoiteCP_IN) when dataBoiteCP_PUT); + dataBoiteCP_IN); + -- dataBoiteCP_IN : when dataBoiteCP_PUT + -- dataBoiteCP_OUT : when dataBoiteCP_GET + + + + + + + + + -- pilote : done !!!!!!!!!!!!!!!!!!!!!!!!!!!! + (--semMemTakeP, + putMem, + dataBoiteCP_GET, + HupdatePiloteData, + piloteData) + -- when HupdatePiloteData +-- localErasedDataFromPilote, +-- erasePiloteEvent, +-- copyPiloteEvent, +-- localCopiedDataFromPilote) + = pilote(Hpilote, + semMemAutP, +-- HupdatePiloteData, + current(dataBoiteCP_OUT)); + + + -- piloteData : when semMemAutP + -- localErasedDataFromPilote : when Hpilote + -- localCopiedDataFromPilote : when Hpilote + -- assert HupdatePiloteData = Hpilote and semAutP; + + +-- HupdatePiloteData = Hpilote and semMemAutP; + + + -- semMem, mem : done !!!!!!!!!!!!!!!!!!!!!!!!!!!! +-- (semMemGive, +-- readData, +-- localErasedDataFromMem, +-- localCopiedDataFromMem, +-- eraseMemEvent, +-- copyMemEvent) +-- = mem(getMem, +-- putMem, +-- piloteData); +-- (semMemAutP, +-- semMemAutR, +-- free, +-- demandeR) +-- = semMem(semMemTakeP, +-- semMemTakeR, +-- semMemGive); + -- piloteData : when putMem + -- localDataErasedFromMem, localDataCopiedDataFromMem : when putMem + + + + + -- read : done !!!!!!!!!!!!!!!!!!!!!!!!!!!!! +-- (getMem, +-- semMemTakeR, +-- localDataFromRead, +-- consumptionEvent) +-- = read(Happli, +-- semMemAutR, +-- readData); + + -- observer : done !!!!!!!!!!!!!?????????????????? +-- (retard, +-- indCount, +-- HrinstCount, +-- nbrCopy) +-- = observer(current(dataBoiteCP_IN), +-- localDataFromRead, +-- localErasedDataFromBoiteCP, +-- localCopiedDataFromBoiteCP, +-- current(localErasedDataFromPilote), +-- current(localCopiedDataFromPilote), +-- current(localErasedDataFromMem), +-- current(localCopiedDataFromMem), +-- productionEvent, +-- consumptionEvent, +-- eraseMemEvent, +-- eraseBoiteCPEvent, +-- erasePiloteEvent, +-- copyBoiteCPEvent, +-- copyPiloteEvent, +-- copyMemEvent); +-- une valeur bidon; +-- v = not(dataBoiteCP_IN=-1) and not(localDataFromRead=-1); +-- res = false -> v or pre(res); + +assert Hcapt = dataBoiteCP_PUT; + +tel + + +end \ No newline at end of file diff --git a/test/TO_SORT/lionel/xx.lus b/test/TO_SORT/lionel/xx.lus new file mode 100644 index 00000000..f936f055 --- /dev/null +++ b/test/TO_SORT/lionel/xx.lus @@ -0,0 +1,136 @@ +-- This file was generated by lus2lic version u0.240. +-- ../release-lv6/lv6-alpha-R0.240-12-03-09-Linux/bin/lus2lic +-- testBoite.lus testCapt.lus testPilote.lus testSystem.lus -lv4 -n +-- system::system -o xx.lus +-- on peouvou the 12/3/2009 at 13:03:19 + + +node capt__capt( + Hcapt:bool) +returns ( + dataPUT:bool; + stampedData:int when Hcapt); +var + localCnt:int; + _v1:int; + _v2:int; +let + _v2 = _v1 + 1; + _v1 = pre (localCnt); + localCnt = 0 -> _v2; + stampedData = localCnt when Hcapt; + dataPUT = Hcapt; +tel +-- end of node capt__capt + +node boite__boite( + dataGET:bool; + dataPUT:bool; + dataIN:int when dataPUT) +returns ( + dataOUT:int when dataGET); +var + localData_clock:bool; + localData:int when localData_clock; + _v1:bool; + _v2:bool; + _v3:bool; + _v4:bool; + _v5:bool; + _v6:bool; + _v7:bool; + _v8:bool; + _v9:int; + _v10:int when localData_clock; + _v11:int; + _v12:int; + _v13:int; + _v14:int; + _v15:int; + _v16:int when localData_clock; + _v17:int; +let + _v17 = current (_v16); + _v16 = _v15 when localData_clock; + _v15 = if dataPUT then _v13 else _v14; + _v14 = current (localData); + _v13 = current (dataIN); + dataOUT = _v17 when dataGET; + _v12 = if dataPUT then _v9 else _v11; + _v11 = current (_v10); + _v10 = pre (localData); + _v9 = current (dataIN); + localData = _v12 when localData_clock; + _v8 = _v4 or _v7; + _v7 = _v5 and _v6; + _v6 = not dataGET; + _v5 = pre (localData_clock); + _v4 = dataPUT and _v3; + _v3 = not dataGET; + _v2 = dataPUT and _v1; + _v1 = not dataGET; + localData_clock = _v2 -> _v8; +tel +-- end of node boite__boite + +node pilote__pilote( + Hpilote:bool; + semAutP:bool; + dataBoiteCP:int) +returns ( + putMemP:bool; + dataGET:bool; + HupdatePiloteData:bool; + piloteData:int when HupdatePiloteData); +var + ckLocalData:bool; + localData:int when ckLocalData; + _v1:int when ckLocalData; + _v2:int; + _v3:int; + _v4:int; +let + putMemP = semAutP and Hpilote; + _v4 = current (localData); + piloteData = _v4 when HupdatePiloteData; + HupdatePiloteData = Hpilote and semAutP; + _v3 = if Hpilote then dataBoiteCP else _v2; + _v2 = current (_v1); + _v1 = pre (localData); + localData = _v3 when ckLocalData; + ckLocalData = false -> true; + dataGET = Hpilote; +tel +-- end of node pilote__pilote + +node system__system( + in:bool; + Hcapt:bool; + Hpilote:bool; + semMemAutP:bool) +returns ( + HupdatePiloteData:bool; + piloteData:int when HupdatePiloteData); +var + dataBoiteCP_GET:bool; + dataBoiteCP_OUT:int when dataBoiteCP_GET; + dataBoiteCP_PUT:bool; + dataBoiteCP_IN:int when dataBoiteCP_PUT; + putMem:bool; + sortieCapt:int when Hcapt; + toto:bool; + _v1:int; + _v2:int; +let + assert(Hcapt = dataBoiteCP_PUT); + _v2 = current (dataBoiteCP_OUT); + (putMem, dataBoiteCP_GET, HupdatePiloteData, piloteData) = + pilote__pilote(Hpilote, semMemAutP, _v2); + dataBoiteCP_OUT = boite__boite(dataBoiteCP_GET, dataBoiteCP_PUT, + dataBoiteCP_IN); + _v1 = current (sortieCapt); + dataBoiteCP_IN = _v1 when dataBoiteCP_PUT; + toto = Hcapt and dataBoiteCP_PUT; + (dataBoiteCP_PUT, sortieCapt) = capt__capt(Hcapt); +tel +-- end of node system__system diff --git a/test/TO_SORT/lionel/xxx.lus b/test/TO_SORT/lionel/xxx.lus new file mode 100644 index 00000000..ed890776 --- /dev/null +++ b/test/TO_SORT/lionel/xxx.lus @@ -0,0 +1,113 @@ +-- This file was generated by lus2lic version u0.240. +-- ../release-lv6/lv6-alpha-R0.240-12-03-09-Linux/bin/lus2lic +-- testBoite.lus testCapt.lus testPilote.lus testSystem.lus -ec -n +-- system::system -o xx.ec +-- on peouvou the 12/3/2009 at 13:07:23 + + +node system__system( + in:bool; + Hcapt:bool; + Hpilote:bool; + semMemAutP:bool) +returns ( + HupdatePiloteData:bool; + ( + piloteData:int) when HupdatePiloteData); +var + _assert1:bool; + __v42:int; + __v32:int; + __v23:int; + (__v13:int) when ckLocalData; + (_localData2:int) when ckLocalData; + _ckLocalData1:bool; + _Hpilote1:bool; + _semAutP1:bool; + _dataBoiteCP1:int; + __v171:int; + (__v161:int) when localData_clock; + __v151:int; + __v141:int; + __v131:int; + __v121:int; + __v111:int; + (__v101:int) when localData_clock; + __v91:int; + __v81:bool; + __v71:bool; + __v61:bool; + __v51:bool; + __v41:bool; + __v31:bool; + __v22:bool; + __v12:bool; + (_localData1:int) when localData_clock; + _localData_clock1:bool; + _dataGET1:bool; + _dataPUT1:bool; + (_dataIN1:int) when dataPUT; + __v21:int; + __v11:int; + _localCnt1:int; + _Hcapt1:bool; + dataBoiteCP_GET:bool; + (dataBoiteCP_OUT:int) when dataBoiteCP_GET; + dataBoiteCP_PUT:bool; + (dataBoiteCP_IN:int) when dataBoiteCP_PUT; + putMem:bool; + (sortieCapt:int) when Hcapt; + toto:bool; + _v1:int; + _v2:int; +let + assert(_assert1); + __v21 = __v11 + 1; + __v11 = pre (_localCnt1); + _localCnt1 = 0 -> __v21; + _Hcapt1 = Hcapt; + _localData_clock1 = __v22 -> __v81; + sortieCapt = _localCnt1 when _Hcapt1; + dataBoiteCP_PUT = _Hcapt1; + toto = Hcapt and dataBoiteCP_PUT; + dataBoiteCP_IN = _v1 when dataBoiteCP_PUT; + _v1 = current (sortieCapt); + __v171 = current (__v161); + __v161 = __v151 when _localData_clock1; + __v151 = if _dataPUT1 then __v131 else __v141; + __v141 = current (_localData1); + __v131 = current (_dataIN1); + dataBoiteCP_OUT = __v171 when _dataGET1; + __v121 = if _dataPUT1 then __v91 else __v111; + __v111 = current (__v101); + __v101 = pre (_localData1); + __v91 = current (_dataIN1); + _localData1 = __v121 when _localData_clock1; + __v81 = __v41 or __v71; + __v71 = __v51 and __v61; + __v61 = not _dataGET1; + __v51 = pre (_localData_clock1); + __v41 = _dataPUT1 and __v31; + __v31 = not _dataGET1; + __v22 = _dataPUT1 and __v12; + __v12 = not _dataGET1; + _dataIN1 = dataBoiteCP_IN; + _dataPUT1 = dataBoiteCP_PUT; + _dataGET1 = dataBoiteCP_GET; + putMem = _semAutP1 and _Hpilote1; + __v42 = current (_localData2); + HupdatePiloteData = _Hpilote1 and _semAutP1; + piloteData = __v42 when HupdatePiloteData; + __v32 = if _Hpilote1 then _dataBoiteCP1 else __v23; + __v23 = current (__v13); + __v13 = pre (_localData2); + _ckLocalData1 = false -> true; + _localData2 = __v32 when _ckLocalData1; + dataBoiteCP_GET = _Hpilote1; + _dataBoiteCP1 = _v2; + _semAutP1 = semMemAutP; + _Hpilote1 = Hpilote; + _v2 = current (dataBoiteCP_OUT); + _assert1 = Hcapt = dataBoiteCP_PUT; +tel +-- end of node system__system diff --git a/test/TO_SORT/lionel/xxx.lus~ b/test/TO_SORT/lionel/xxx.lus~ new file mode 100644 index 00000000..b4254d69 --- /dev/null +++ b/test/TO_SORT/lionel/xxx.lus~ @@ -0,0 +1,113 @@ +-- This file was generated by lus2lic version u0.240. +-- ../release-lv6/lv6-alpha-R0.240-12-03-09-Linux/bin/lus2lic +-- testBoite.lus testCapt.lus testPilote.lus testSystem.lus -ec -n +-- system::system -o xx.ec +-- on peouvou the 12/3/2009 at 13:07:23 + + +node system__system( + in:bool; + Hcapt:bool; + Hpilote:bool; + semMemAutP:bool) +returns ( + HupdatePiloteData:bool; + ( + piloteData:int) when HupdatePiloteData); +var + _assert1:bool; + __v42:int; + __v32:int; + __v23:int; + (__v13:int) when ckLocalData; + (_localData2:int) when ckLocalData; + _ckLocalData1:bool; + _Hpilote1:bool; + _semAutP1:bool; + _dataBoiteCP1:int; + __v171:int; + (__v161:int) when localData_clock; + __v151:int; + __v141:int; + __v131:int; + __v121:int; + __v111:int; + (__v101:int) when localData_clock; + __v91:int; + __v81:bool; + __v71:bool; + __v61:bool; + __v51:bool; + __v41:bool; + __v31:bool; + __v22:bool; + __v12:bool; + (_localData1:int) when localData_clock; + _localData_clock1:bool; + _dataGET1:bool; + _dataPUT1:bool; + (_dataIN1:int) when dataPUT; + __v21:int; + __v11:int; + _localCnt1:int; + _Hcapt1:bool; + dataBoiteCP_GET:bool; + (dataBoiteCP_OUT:int) when dataBoiteCP_GET; + dataBoiteCP_PUT:bool; + (dataBoiteCP_IN:int) when dataBoiteCP_PUT; + putMem:bool; + (sortieCapt:int) when Hcapt; + toto:bool; + _v1:int; + _v2:int; +let + assert(_assert1); + __v21 = __v11 + 1; + __v11 = pre (_localCnt1); + _localCnt1 = 0 -> __v21; + sortieCapt = _localCnt1 when _Hcapt1; + dataBoiteCP_PUT = _Hcapt1; + _Hcapt1 = Hcapt; + toto = Hcapt and dataBoiteCP_PUT; + dataBoiteCP_IN = _v1 when dataBoiteCP_PUT; + _v1 = current (sortieCapt); + __v171 = current (__v161); + __v161 = __v151 when _localData_clock1; + __v151 = if _dataPUT1 then __v131 else __v141; + __v141 = current (_localData1); + __v131 = current (_dataIN1); + dataBoiteCP_OUT = __v171 when _dataGET1; + __v121 = if _dataPUT1 then __v91 else __v111; + __v111 = current (__v101); + __v101 = pre (_localData1); + __v91 = current (_dataIN1); + _localData1 = __v121 when _localData_clock1; + __v81 = __v41 or __v71; + __v71 = __v51 and __v61; + __v61 = not _dataGET1; + __v51 = pre (_localData_clock1); + __v41 = _dataPUT1 and __v31; + __v31 = not _dataGET1; + __v22 = _dataPUT1 and __v12; + __v12 = not _dataGET1; + _localData_clock1 = __v22 -> __v81; + _dataIN1 = dataBoiteCP_IN; + _dataPUT1 = dataBoiteCP_PUT; + _dataGET1 = dataBoiteCP_GET; + putMem = _semAutP1 and _Hpilote1; + __v42 = current (_localData2); + piloteData = __v42 when HupdatePiloteData; + HupdatePiloteData = _Hpilote1 and _semAutP1; + __v32 = if _Hpilote1 then _dataBoiteCP1 else __v23; + __v23 = current (__v13); + __v13 = pre (_localData2); + _localData2 = __v32 when _ckLocalData1; + _ckLocalData1 = false -> true; + dataBoiteCP_GET = _Hpilote1; + _dataBoiteCP1 = _v2; + _semAutP1 = semMemAutP; + _Hpilote1 = Hpilote; + _v2 = current (dataBoiteCP_OUT); + _assert1 = Hcapt = dataBoiteCP_PUT; +tel +-- end of node system__system diff --git a/src/lustre.lus b/test/TO_SORT/lustre.lus similarity index 100% rename from src/lustre.lus rename to test/TO_SORT/lustre.lus diff --git a/map.lus b/test/TO_SORT/map.lus similarity index 100% rename from map.lus rename to test/TO_SORT/map.lus diff --git a/multipar.lus b/test/TO_SORT/multipar.lus similarity index 100% rename from multipar.lus rename to test/TO_SORT/multipar.lus diff --git a/nodeparam.lus b/test/TO_SORT/nodeparam.lus similarity index 100% rename from nodeparam.lus rename to test/TO_SORT/nodeparam.lus diff --git a/over2.lus b/test/TO_SORT/over2.lus similarity index 100% rename from over2.lus rename to test/TO_SORT/over2.lus diff --git a/over3.lus b/test/TO_SORT/over3.lus similarity index 100% rename from over3.lus rename to test/TO_SORT/over3.lus diff --git a/overload.lus b/test/TO_SORT/overload.lus similarity index 100% rename from overload.lus rename to test/TO_SORT/overload.lus diff --git a/test/TO_SORT/packages.lus b/test/TO_SORT/packages.lus new file mode 100644 index 00000000..8bdb4373 --- /dev/null +++ b/test/TO_SORT/packages.lus @@ -0,0 +1,78 @@ +----------------------------- +-- modSimple: un model simple +-- * necessite : un type +-- * fournit : un noeud +---------------------------- +model modSimple + needs + type t; + provides + node fby1(init, fb: t) returns (next: t); +body + +node fby1(init, fb: t) returns (next: t); +let + next = init -> pre fb; +tel +end + +----------------------- +-- qq instances de modSimple +----------------------- +package pint is modSimple(int); +package pbool is modSimple(bool); +package preal is modSimple(real); + + +-------------------------- +-- un package intermediaire +------------------------- +package inter + uses pbool, pint, preal, Lustre; + provides + node preced(in: selType) returns (out, out2: selType); + const n : int; + type selType; +body + + type selType = { i: int; b: bool; r: real }; + + ----------------------- + -- qq instances de modSimple + ----------------------- + --package pint is modSimple(int); + --package pbool is modSimple(bool); + --package preal is modSimple(real); + + --package pSel is modSimple( { i: int; b: bool; r: real } ); + + const n: int = -4; + node preced(in: selType) returns (out, out2: selType); + let + out2 = selType { i = 0; b = true; r = 0.}; --pSel::fby1(in); + out.i = 1; + out.b = Lustre::And(in.b, true); + out.r = 1.02; + tel +end +--------------------------- +-- le package principal +-------------------------- + package mainPack + uses inter; + provides + node preced(in: inter::selType) returns (out: inter::selType); + body + +type T = int^N; +const X = N; + N : int = -2 * inter::n; + +--node preced(in: bool) returns (out: bool); +node preced(in: inter::selType) returns (out: inter::selType); +var out2 : inter::selType; +let + out, out2 = inter::preced( in ); +tel +end + diff --git a/test/TO_SORT/patrick.lus b/test/TO_SORT/patrick.lus new file mode 100644 index 00000000..a000c918 --- /dev/null +++ b/test/TO_SORT/patrick.lus @@ -0,0 +1,11 @@ + +node patrick (a,b:int; c,d: bool) +returns (s:int); +var + x: int; + y: int; +let + assert (a>0); + assert (b>0); + s = if c then a else 1 + if d then b else 4; +tel diff --git a/sargs.lus b/test/TO_SORT/sargs.lus similarity index 100% rename from sargs.lus rename to test/TO_SORT/sargs.lus diff --git a/test/TO_SORT/t.lus b/test/TO_SORT/t.lus new file mode 100644 index 00000000..c2ed7eec --- /dev/null +++ b/test/TO_SORT/t.lus @@ -0,0 +1,33 @@ + +const A=1^2^1; +const B = if false then 1^2 else 2^2; + +node toto ( x : bool) returns ( + a : int^2^3; + b : int^2 +); +let + b = B; + a = A; + --b = operator +(B,A[0]); +tel + +node map2 +<< + type t1; + type t2; + const n: int; + node n(x: t1; y: t2) returns (z: t3) +>> +(X: t1^n; Y:t2^n) returns (Z: t3^n); +let + Z = with (n=1) then [ n(X[0], Y[0]) ] + else ( + [n(X[0], Y[0])] | map2<<t1,t2,n-1>>(X[1..n-1],Y[1..n-1]) + ) ; +tel + +-- not supposed to work... +const A = + [[ 1, 2 ] , [ 3 , 4], [5, 6] ] ++ [[ 1, 2 ] , [ 3 , 4], [5, 6] ] ; diff --git a/test/TO_SORT/titi.lus b/test/TO_SORT/titi.lus new file mode 100644 index 00000000..c7667d85 --- /dev/null +++ b/test/TO_SORT/titi.lus @@ -0,0 +1,23 @@ +type s = { f1: int ; f2: int^2 }; + + +-- node test(y: s^4^4; z: int) returns(x: s^4^4); +-- let +-- x=y; +-- -- x [1 .. 3 step 2][0 .. 1][0][0].f1 = z ; +-- x [1 .. 2][0][0].f1 = z ; +-- tel + +node simple(a:int) returns (oo: int); +let + oo = a+4; +tel + +-- t[1..2] = (truc { a = true^100; b = 0 })^2; + + +node simple2(x:int) returns ( + o: int); +let + o = simple(x); +tel diff --git a/test/TO_SORT/toto.lus b/test/TO_SORT/toto.lus new file mode 100644 index 00000000..d15b085c --- /dev/null +++ b/test/TO_SORT/toto.lus @@ -0,0 +1,31 @@ +type s = { f1: int ; f2: int^2 }; + + +-- node test(y: s^4^4; z: int) returns(x: s^4^4); +-- let +-- x=y; +-- -- x [1 .. 3 step 2][0 .. 1][0][0].f1 = z ; +-- x [1 .. 2][0][0].f1 = z ; +-- tel + +node simple(a:s) returns (o: s^3); +let + o = a^3; +tel + +-- t[1..2] = (truc { a = true^100; b = 0 })^2; + + +node simple2(x:s) returns ( + o: s^3^2; + i: s^2); +let + o[0] = simple(x); + o[1] = simple(x); + +-- o[0..1] = simple(x) ^ 2; +-- i = 2; +-- i = o[0][0].f1; + + i = s { f1 = 42; f2 = [5, 6] } ^ 2; +tel diff --git a/ts04.lus b/test/TO_SORT/ts04.lus similarity index 100% rename from ts04.lus rename to test/TO_SORT/ts04.lus diff --git a/test/TO_SORT/xx.lus b/test/TO_SORT/xx.lus new file mode 100644 index 00000000..aecd3b9d --- /dev/null +++ b/test/TO_SORT/xx.lus @@ -0,0 +1,5 @@ +node matrice2__n_node_alias(i1:int; i2:A_int_2) returns (o:int); +let + o = Lustre::red<<Lustre::plus, 2>>(i1, i2); +tel +type A_int_2 = int^2; diff --git a/test/TO_SORT/xxx.lus b/test/TO_SORT/xxx.lus new file mode 100644 index 00000000..833b909e --- /dev/null +++ b/test/TO_SORT/xxx.lus @@ -0,0 +1,8 @@ + +node matrice2 ( a : int ) returns ( res : int ); +let +-- res = red <<red <<red <<iplus, 2 >>, 2>>, 2>> (0, 1^2^2^2 ); + res = red <<red <<+, 2 >>, 2>> (0, 1^2^2 ); +-- res = red <<+, 2>> (0, 1^2 ); + +tel diff --git a/test/TO_SORT/yyy.lus b/test/TO_SORT/yyy.lus new file mode 100644 index 00000000..f95e5e04 --- /dev/null +++ b/test/TO_SORT/yyy.lus @@ -0,0 +1,2 @@ + + node alias = red<< iplus, 2>> diff --git a/test/TO_SORT/zzz.lus b/test/TO_SORT/zzz.lus new file mode 100644 index 00000000..6934cee0 --- /dev/null +++ b/test/TO_SORT/zzz.lus @@ -0,0 +1,8 @@ +type A_int_2 = int^2; +node matrice2__n_node_alias(i1:int; i2:A_int_2) returns (o:int); +var + _acc1:int; +let + _acc1 = Lustre::iplus(i1, i2[0]); + o = Lustre::iplus(_acc1, i2[1]); +tel diff --git a/test/TO_SORT/zzz2.lus b/test/TO_SORT/zzz2.lus new file mode 100644 index 00000000..78c9b2ea --- /dev/null +++ b/test/TO_SORT/zzz2.lus @@ -0,0 +1,12 @@ +type A_int_2 = int^2; +node matrice2__n_node_alias(i1:int; i2:A_int_2) returns (o:int); +var + _acc1:int; + _v1:int; + _v2:int; +let + _acc1 = i1 + _v1; + _v1 = i2[0]; + o = _acc1 + _v2; + _v2 = i2[1]; +tel \ No newline at end of file diff --git a/tests/should_work/call/bad_call02.lus b/test/should_work/call/bad_call02.lus similarity index 100% rename from tests/should_work/call/bad_call02.lus rename to test/should_work/call/bad_call02.lus diff --git a/tests/should_work/call/call01.lus b/test/should_work/call/call01.lus similarity index 100% rename from tests/should_work/call/call01.lus rename to test/should_work/call/call01.lus diff --git a/tests/should_work/call/call02.lus b/test/should_work/call/call02.lus similarity index 100% rename from tests/should_work/call/call02.lus rename to test/should_work/call/call02.lus diff --git a/tests/should_work/call/call03.lus b/test/should_work/call/call03.lus similarity index 100% rename from tests/should_work/call/call03.lus rename to test/should_work/call/call03.lus diff --git a/tests/should_work/call/call04.lus b/test/should_work/call/call04.lus similarity index 100% rename from tests/should_work/call/call04.lus rename to test/should_work/call/call04.lus diff --git a/tests/should_work/call/call05.lus b/test/should_work/call/call05.lus similarity index 100% rename from tests/should_work/call/call05.lus rename to test/should_work/call/call05.lus diff --git a/tests/should_work/call/call06.lus b/test/should_work/call/call06.lus similarity index 100% rename from tests/should_work/call/call06.lus rename to test/should_work/call/call06.lus diff --git a/tests/should_work/call/call07.lus b/test/should_work/call/call07.lus similarity index 100% rename from tests/should_work/call/call07.lus rename to test/should_work/call/call07.lus diff --git a/tests/should_work/poly/ply01.lus b/test/should_work/poly/ply01.lus similarity index 100% rename from tests/should_work/poly/ply01.lus rename to test/should_work/poly/ply01.lus diff --git a/tests/should_work/poly/ply02.lus b/test/should_work/poly/ply02.lus similarity index 100% rename from tests/should_work/poly/ply02.lus rename to test/should_work/poly/ply02.lus diff --git a/tests/should_work/poly/ply03.lus b/test/should_work/poly/ply03.lus similarity index 100% rename from tests/should_work/poly/ply03.lus rename to test/should_work/poly/ply03.lus diff --git a/tests/should_work/static/cond01.lus b/test/should_work/static/cond01.lus similarity index 100% rename from tests/should_work/static/cond01.lus rename to test/should_work/static/cond01.lus diff --git a/tests/should_work/static/predef01.lus b/test/should_work/static/predef01.lus similarity index 100% rename from tests/should_work/static/predef01.lus rename to test/should_work/static/predef01.lus diff --git a/tests/should_work/static/predef02.lus b/test/should_work/static/predef02.lus similarity index 100% rename from tests/should_work/static/predef02.lus rename to test/should_work/static/predef02.lus diff --git a/tests/should_work/static/predef03.lus b/test/should_work/static/predef03.lus similarity index 100% rename from tests/should_work/static/predef03.lus rename to test/should_work/static/predef03.lus diff --git a/tests/should_work/static/ts01.lus b/test/should_work/static/ts01.lus similarity index 100% rename from tests/should_work/static/ts01.lus rename to test/should_work/static/ts01.lus diff --git a/tests/should_work/static/ts02.lus b/test/should_work/static/ts02.lus similarity index 100% rename from tests/should_work/static/ts02.lus rename to test/should_work/static/ts02.lus diff --git a/tests/should_work/static/ts03.lus b/test/should_work/static/ts03.lus similarity index 100% rename from tests/should_work/static/ts03.lus rename to test/should_work/static/ts03.lus diff --git a/src/test/test.res.exp b/test/test.res.exp similarity index 100% rename from src/test/test.res.exp rename to test/test.res.exp diff --git a/_test-old/Condact.lus b/tests-pascal/_test-old/Condact.lus similarity index 100% rename from _test-old/Condact.lus rename to tests-pascal/_test-old/Condact.lus diff --git a/_test-old/Makefile b/tests-pascal/_test-old/Makefile similarity index 100% rename from _test-old/Makefile rename to tests-pascal/_test-old/Makefile diff --git a/_test-old/contractForElementSelectionInArray/contractForElementSelectionInArray.lus b/tests-pascal/_test-old/contractForElementSelectionInArray/contractForElementSelectionInArray.lus similarity index 100% rename from _test-old/contractForElementSelectionInArray/contractForElementSelectionInArray.lus rename to tests-pascal/_test-old/contractForElementSelectionInArray/contractForElementSelectionInArray.lus diff --git a/_test-old/contractForElementSelectionInArray/main.lus b/tests-pascal/_test-old/contractForElementSelectionInArray/main.lus similarity index 100% rename from _test-old/contractForElementSelectionInArray/main.lus rename to tests-pascal/_test-old/contractForElementSelectionInArray/main.lus diff --git a/_test-old/contractForElementSelectionInArray/noeudsIndependants.lus b/tests-pascal/_test-old/contractForElementSelectionInArray/noeudsIndependants.lus similarity index 100% rename from _test-old/contractForElementSelectionInArray/noeudsIndependants.lus rename to tests-pascal/_test-old/contractForElementSelectionInArray/noeudsIndependants.lus diff --git a/_test-old/contractForElementSelectionInArray/packageTableau.lus b/tests-pascal/_test-old/contractForElementSelectionInArray/packageTableau.lus similarity index 100% rename from _test-old/contractForElementSelectionInArray/packageTableau.lus rename to tests-pascal/_test-old/contractForElementSelectionInArray/packageTableau.lus diff --git a/_test-old/contractForElementSelectionInArray/readme b/tests-pascal/_test-old/contractForElementSelectionInArray/readme similarity index 100% rename from _test-old/contractForElementSelectionInArray/readme rename to tests-pascal/_test-old/contractForElementSelectionInArray/readme diff --git a/_test-old/contractForElementSelectionInArray/tri.lus b/tests-pascal/_test-old/contractForElementSelectionInArray/tri.lus similarity index 100% rename from _test-old/contractForElementSelectionInArray/tri.lus rename to tests-pascal/_test-old/contractForElementSelectionInArray/tri.lus diff --git a/_test-old/modelInst.lus b/tests-pascal/_test-old/modelInst.lus similarity index 100% rename from _test-old/modelInst.lus rename to tests-pascal/_test-old/modelInst.lus diff --git a/_test-old/packages.lus b/tests-pascal/_test-old/packages.lus similarity index 100% rename from _test-old/packages.lus rename to tests-pascal/_test-old/packages.lus diff --git a/_test-old/packages2.lus b/tests-pascal/_test-old/packages2.lus similarity index 100% rename from _test-old/packages2.lus rename to tests-pascal/_test-old/packages2.lus diff --git a/_test-old/qs.lv6 b/tests-pascal/_test-old/qs.lv6 similarity index 100% rename from _test-old/qs.lv6 rename to tests-pascal/_test-old/qs.lv6 diff --git a/_test-old/readme b/tests-pascal/_test-old/readme similarity index 100% rename from _test-old/readme rename to tests-pascal/_test-old/readme diff --git a/_test-old/test.diff b/tests-pascal/_test-old/test.diff similarity index 100% rename from _test-old/test.diff rename to tests-pascal/_test-old/test.diff diff --git a/_test-old/test.exp b/tests-pascal/_test-old/test.exp similarity index 100% rename from _test-old/test.exp rename to tests-pascal/_test-old/test.exp diff --git a/_test-old/test.res b/tests-pascal/_test-old/test.res similarity index 100% rename from _test-old/test.res rename to tests-pascal/_test-old/test.res diff --git a/_test-old/tests/cons.lus b/tests-pascal/_test-old/tests/cons.lus similarity index 100% rename from _test-old/tests/cons.lus rename to tests-pascal/_test-old/tests/cons.lus diff --git a/_test-old/tests/const-array.lus b/tests-pascal/_test-old/tests/const-array.lus similarity index 100% rename from _test-old/tests/const-array.lus rename to tests-pascal/_test-old/tests/const-array.lus diff --git a/_test-old/tests/const-bool.lus b/tests-pascal/_test-old/tests/const-bool.lus similarity index 100% rename from _test-old/tests/const-bool.lus rename to tests-pascal/_test-old/tests/const-bool.lus diff --git a/_test-old/tests/const-simple.lus b/tests-pascal/_test-old/tests/const-simple.lus similarity index 100% rename from _test-old/tests/const-simple.lus rename to tests-pascal/_test-old/tests/const-simple.lus diff --git a/_test-old/tests/const-struct.lus b/tests-pascal/_test-old/tests/const-struct.lus similarity index 100% rename from _test-old/tests/const-struct.lus rename to tests-pascal/_test-old/tests/const-struct.lus diff --git a/_test-old/tests/left.lus b/tests-pascal/_test-old/tests/left.lus similarity index 100% rename from _test-old/tests/left.lus rename to tests-pascal/_test-old/tests/left.lus diff --git a/_test-old/tests/newpacks.lus b/tests-pascal/_test-old/tests/newpacks.lus similarity index 100% rename from _test-old/tests/newpacks.lus rename to tests-pascal/_test-old/tests/newpacks.lus diff --git a/_test-old/tests/node-simple.lus b/tests-pascal/_test-old/tests/node-simple.lus similarity index 100% rename from _test-old/tests/node-simple.lus rename to tests-pascal/_test-old/tests/node-simple.lus diff --git a/_test-old/tests/p.lus b/tests-pascal/_test-old/tests/p.lus similarity index 100% rename from _test-old/tests/p.lus rename to tests-pascal/_test-old/tests/p.lus diff --git a/_test-old/tests/packages.lus b/tests-pascal/_test-old/tests/packages.lus similarity index 100% rename from _test-old/tests/packages.lus rename to tests-pascal/_test-old/tests/packages.lus diff --git a/_test-old/tests/packs.lus b/tests-pascal/_test-old/tests/packs.lus similarity index 100% rename from _test-old/tests/packs.lus rename to tests-pascal/_test-old/tests/packs.lus diff --git a/_test-old/tests/q.lus b/tests-pascal/_test-old/tests/q.lus similarity index 100% rename from _test-old/tests/q.lus rename to tests-pascal/_test-old/tests/q.lus diff --git a/_test-old/tests/struct0.lus b/tests-pascal/_test-old/tests/struct0.lus similarity index 100% rename from _test-old/tests/struct0.lus rename to tests-pascal/_test-old/tests/struct0.lus diff --git a/_test-old/tests/t.lus b/tests-pascal/_test-old/tests/t.lus similarity index 100% rename from _test-old/tests/t.lus rename to tests-pascal/_test-old/tests/t.lus diff --git a/_test-old/tests/t0.lus b/tests-pascal/_test-old/tests/t0.lus similarity index 100% rename from _test-old/tests/t0.lus rename to tests-pascal/_test-old/tests/t0.lus diff --git a/_test-old/tests/t1.lus b/tests-pascal/_test-old/tests/t1.lus similarity index 100% rename from _test-old/tests/t1.lus rename to tests-pascal/_test-old/tests/t1.lus diff --git a/_test-old/tests/t2.lus b/tests-pascal/_test-old/tests/t2.lus similarity index 100% rename from _test-old/tests/t2.lus rename to tests-pascal/_test-old/tests/t2.lus diff --git a/_test-old/tests/test.lus b/tests-pascal/_test-old/tests/test.lus similarity index 100% rename from _test-old/tests/test.lus rename to tests-pascal/_test-old/tests/test.lus diff --git a/_test-old/tests/trivial.lus b/tests-pascal/_test-old/tests/trivial.lus similarity index 100% rename from _test-old/tests/trivial.lus rename to tests-pascal/_test-old/tests/trivial.lus diff --git a/_tests/Makefile b/tests-pascal/_tests/Makefile similarity index 100% rename from _tests/Makefile rename to tests-pascal/_tests/Makefile diff --git a/_tests/should_fail/bad_file_name b/tests-pascal/_tests/should_fail/bad_file_name similarity index 100% rename from _tests/should_fail/bad_file_name rename to tests-pascal/_tests/should_fail/bad_file_name diff --git a/_tests/should_fail/clock/bad_call02.lus b/tests-pascal/_tests/should_fail/clock/bad_call02.lus similarity index 100% rename from _tests/should_fail/clock/bad_call02.lus rename to tests-pascal/_tests/should_fail/clock/bad_call02.lus diff --git a/_tests/should_fail/clock/bad_id.lus b/tests-pascal/_tests/should_fail/clock/bad_id.lus similarity index 100% rename from _tests/should_fail/clock/bad_id.lus rename to tests-pascal/_tests/should_fail/clock/bad_id.lus diff --git a/_tests/should_fail/clock/clock.lus b/tests-pascal/_tests/should_fail/clock/clock.lus similarity index 100% rename from _tests/should_fail/clock/clock.lus rename to tests-pascal/_tests/should_fail/clock/clock.lus diff --git a/_tests/should_fail/clock/clock2.lus b/tests-pascal/_tests/should_fail/clock/clock2.lus similarity index 100% rename from _tests/should_fail/clock/clock2.lus rename to tests-pascal/_tests/should_fail/clock/clock2.lus diff --git a/_tests/should_fail/clock/inonout.lus b/tests-pascal/_tests/should_fail/clock/inonout.lus similarity index 100% rename from _tests/should_fail/clock/inonout.lus rename to tests-pascal/_tests/should_fail/clock/inonout.lus diff --git a/_tests/should_fail/clock/when_enum.lus b/tests-pascal/_tests/should_fail/clock/when_enum.lus similarity index 100% rename from _tests/should_fail/clock/when_enum.lus rename to tests-pascal/_tests/should_fail/clock/when_enum.lus diff --git a/_tests/should_fail/semantics/activation1.lus b/tests-pascal/_tests/should_fail/semantics/activation1.lus similarity index 100% rename from _tests/should_fail/semantics/activation1.lus rename to tests-pascal/_tests/should_fail/semantics/activation1.lus diff --git a/_tests/should_fail/semantics/activation2.lus b/tests-pascal/_tests/should_fail/semantics/activation2.lus similarity index 100% rename from _tests/should_fail/semantics/activation2.lus rename to tests-pascal/_tests/should_fail/semantics/activation2.lus diff --git a/_tests/should_fail/semantics/bad_call01.lus b/tests-pascal/_tests/should_fail/semantics/bad_call01.lus similarity index 100% rename from _tests/should_fail/semantics/bad_call01.lus rename to tests-pascal/_tests/should_fail/semantics/bad_call01.lus diff --git a/_tests/should_fail/semantics/bug.lus b/tests-pascal/_tests/should_fail/semantics/bug.lus similarity index 100% rename from _tests/should_fail/semantics/bug.lus rename to tests-pascal/_tests/should_fail/semantics/bug.lus diff --git a/_tests/should_fail/semantics/const.lus b/tests-pascal/_tests/should_fail/semantics/const.lus similarity index 100% rename from _tests/should_fail/semantics/const.lus rename to tests-pascal/_tests/should_fail/semantics/const.lus diff --git a/_tests/should_fail/semantics/const2.lus b/tests-pascal/_tests/should_fail/semantics/const2.lus similarity index 100% rename from _tests/should_fail/semantics/const2.lus rename to tests-pascal/_tests/should_fail/semantics/const2.lus diff --git a/_tests/should_fail/semantics/const3.lus b/tests-pascal/_tests/should_fail/semantics/const3.lus similarity index 100% rename from _tests/should_fail/semantics/const3.lus rename to tests-pascal/_tests/should_fail/semantics/const3.lus diff --git a/_tests/should_fail/semantics/cpt_dc.lus b/tests-pascal/_tests/should_fail/semantics/cpt_dc.lus similarity index 100% rename from _tests/should_fail/semantics/cpt_dc.lus rename to tests-pascal/_tests/should_fail/semantics/cpt_dc.lus diff --git a/_tests/should_fail/semantics/def.lus b/tests-pascal/_tests/should_fail/semantics/def.lus similarity index 100% rename from _tests/should_fail/semantics/def.lus rename to tests-pascal/_tests/should_fail/semantics/def.lus diff --git a/_tests/should_fail/semantics/import2.lus b/tests-pascal/_tests/should_fail/semantics/import2.lus similarity index 100% rename from _tests/should_fail/semantics/import2.lus rename to tests-pascal/_tests/should_fail/semantics/import2.lus diff --git a/_tests/should_fail/semantics/m.lus b/tests-pascal/_tests/should_fail/semantics/m.lus similarity index 100% rename from _tests/should_fail/semantics/m.lus rename to tests-pascal/_tests/should_fail/semantics/m.lus diff --git a/_tests/should_fail/semantics/not_a_constant.lus b/tests-pascal/_tests/should_fail/semantics/not_a_constant.lus similarity index 100% rename from _tests/should_fail/semantics/not_a_constant.lus rename to tests-pascal/_tests/should_fail/semantics/not_a_constant.lus diff --git a/_tests/should_fail/semantics/piege.lus b/tests-pascal/_tests/should_fail/semantics/piege.lus similarity index 100% rename from _tests/should_fail/semantics/piege.lus rename to tests-pascal/_tests/should_fail/semantics/piege.lus diff --git a/_tests/should_fail/semantics/tranche.lus b/tests-pascal/_tests/should_fail/semantics/tranche.lus similarity index 100% rename from _tests/should_fail/semantics/tranche.lus rename to tests-pascal/_tests/should_fail/semantics/tranche.lus diff --git a/_tests/should_fail/semantics/x.lus b/tests-pascal/_tests/should_fail/semantics/x.lus similarity index 100% rename from _tests/should_fail/semantics/x.lus rename to tests-pascal/_tests/should_fail/semantics/x.lus diff --git a/_tests/should_fail/syntax/old_style_and_pack.lus b/tests-pascal/_tests/should_fail/syntax/old_style_and_pack.lus similarity index 100% rename from _tests/should_fail/syntax/old_style_and_pack.lus rename to tests-pascal/_tests/should_fail/syntax/old_style_and_pack.lus diff --git a/_tests/should_fail/syntax/record.lus b/tests-pascal/_tests/should_fail/syntax/record.lus similarity index 100% rename from _tests/should_fail/syntax/record.lus rename to tests-pascal/_tests/should_fail/syntax/record.lus diff --git a/_tests/should_fail/type/Gyro.lus b/tests-pascal/_tests/should_fail/type/Gyro.lus similarity index 100% rename from _tests/should_fail/type/Gyro.lus rename to tests-pascal/_tests/should_fail/type/Gyro.lus diff --git a/_tests/should_fail/type/bad_call03.lus b/tests-pascal/_tests/should_fail/type/bad_call03.lus similarity index 100% rename from _tests/should_fail/type/bad_call03.lus rename to tests-pascal/_tests/should_fail/type/bad_call03.lus diff --git a/_tests/should_fail/type/const2.lus b/tests-pascal/_tests/should_fail/type/const2.lus similarity index 100% rename from _tests/should_fail/type/const2.lus rename to tests-pascal/_tests/should_fail/type/const2.lus diff --git a/_tests/should_fail/type/packages.lus b/tests-pascal/_tests/should_fail/type/packages.lus similarity index 100% rename from _tests/should_fail/type/packages.lus rename to tests-pascal/_tests/should_fail/type/packages.lus diff --git a/_tests/should_fail/type/packages2.lus b/tests-pascal/_tests/should_fail/type/packages2.lus similarity index 100% rename from _tests/should_fail/type/packages2.lus rename to tests-pascal/_tests/should_fail/type/packages2.lus diff --git a/_tests/should_fail/type/parametric_node.lus b/tests-pascal/_tests/should_fail/type/parametric_node.lus similarity index 100% rename from _tests/should_fail/type/parametric_node.lus rename to tests-pascal/_tests/should_fail/type/parametric_node.lus diff --git a/_tests/should_fail/type/parametric_node2.lus b/tests-pascal/_tests/should_fail/type/parametric_node2.lus similarity index 100% rename from _tests/should_fail/type/parametric_node2.lus rename to tests-pascal/_tests/should_fail/type/parametric_node2.lus diff --git a/_tests/should_fail/type/parametric_node3.lus b/tests-pascal/_tests/should_fail/type/parametric_node3.lus similarity index 100% rename from _tests/should_fail/type/parametric_node3.lus rename to tests-pascal/_tests/should_fail/type/parametric_node3.lus diff --git a/_tests/should_fail/type/parametric_node4.lus b/tests-pascal/_tests/should_fail/type/parametric_node4.lus similarity index 100% rename from _tests/should_fail/type/parametric_node4.lus rename to tests-pascal/_tests/should_fail/type/parametric_node4.lus diff --git a/_tests/should_work/NONREG/COUNTER.lus b/tests-pascal/_tests/should_work/NONREG/COUNTER.lus similarity index 100% rename from _tests/should_work/NONREG/COUNTER.lus rename to tests-pascal/_tests/should_work/NONREG/COUNTER.lus diff --git a/_tests/should_work/NONREG/CURRENT.lus b/tests-pascal/_tests/should_work/NONREG/CURRENT.lus similarity index 100% rename from _tests/should_work/NONREG/CURRENT.lus rename to tests-pascal/_tests/should_work/NONREG/CURRENT.lus diff --git a/_tests/should_work/NONREG/EDGE.lus b/tests-pascal/_tests/should_work/NONREG/EDGE.lus similarity index 100% rename from _tests/should_work/NONREG/EDGE.lus rename to tests-pascal/_tests/should_work/NONREG/EDGE.lus diff --git a/_tests/should_work/NONREG/FALLING_EDGE.lus b/tests-pascal/_tests/should_work/NONREG/FALLING_EDGE.lus similarity index 100% rename from _tests/should_work/NONREG/FALLING_EDGE.lus rename to tests-pascal/_tests/should_work/NONREG/FALLING_EDGE.lus diff --git a/_tests/should_work/NONREG/Int.lus b/tests-pascal/_tests/should_work/NONREG/Int.lus similarity index 100% rename from _tests/should_work/NONREG/Int.lus rename to tests-pascal/_tests/should_work/NONREG/Int.lus diff --git a/_tests/should_work/NONREG/PCOND.lus b/tests-pascal/_tests/should_work/NONREG/PCOND.lus similarity index 100% rename from _tests/should_work/NONREG/PCOND.lus rename to tests-pascal/_tests/should_work/NONREG/PCOND.lus diff --git a/_tests/should_work/NONREG/PCOND1.lus b/tests-pascal/_tests/should_work/NONREG/PCOND1.lus similarity index 100% rename from _tests/should_work/NONREG/PCOND1.lus rename to tests-pascal/_tests/should_work/NONREG/PCOND1.lus diff --git a/_tests/should_work/NONREG/SOURIS.lus b/tests-pascal/_tests/should_work/NONREG/SOURIS.lus similarity index 100% rename from _tests/should_work/NONREG/SOURIS.lus rename to tests-pascal/_tests/should_work/NONREG/SOURIS.lus diff --git a/_tests/should_work/NONREG/STABLE.lus b/tests-pascal/_tests/should_work/NONREG/STABLE.lus similarity index 100% rename from _tests/should_work/NONREG/STABLE.lus rename to tests-pascal/_tests/should_work/NONREG/STABLE.lus diff --git a/_tests/should_work/NONREG/SWITCH.lus b/tests-pascal/_tests/should_work/NONREG/SWITCH.lus similarity index 100% rename from _tests/should_work/NONREG/SWITCH.lus rename to tests-pascal/_tests/should_work/NONREG/SWITCH.lus diff --git a/_tests/should_work/NONREG/SWITCH1.lus b/tests-pascal/_tests/should_work/NONREG/SWITCH1.lus similarity index 100% rename from _tests/should_work/NONREG/SWITCH1.lus rename to tests-pascal/_tests/should_work/NONREG/SWITCH1.lus diff --git a/_tests/should_work/NONREG/TIME_STABLE.lus b/tests-pascal/_tests/should_work/NONREG/TIME_STABLE.lus similarity index 100% rename from _tests/should_work/NONREG/TIME_STABLE.lus rename to tests-pascal/_tests/should_work/NONREG/TIME_STABLE.lus diff --git a/_tests/should_work/NONREG/TIME_STABLE1.lus b/tests-pascal/_tests/should_work/NONREG/TIME_STABLE1.lus similarity index 100% rename from _tests/should_work/NONREG/TIME_STABLE1.lus rename to tests-pascal/_tests/should_work/NONREG/TIME_STABLE1.lus diff --git a/_tests/should_work/NONREG/Watch.lus b/tests-pascal/_tests/should_work/NONREG/Watch.lus similarity index 100% rename from _tests/should_work/NONREG/Watch.lus rename to tests-pascal/_tests/should_work/NONREG/Watch.lus diff --git a/_tests/should_work/NONREG/X.lus b/tests-pascal/_tests/should_work/NONREG/X.lus similarity index 100% rename from _tests/should_work/NONREG/X.lus rename to tests-pascal/_tests/should_work/NONREG/X.lus diff --git a/_tests/should_work/NONREG/X1.lus b/tests-pascal/_tests/should_work/NONREG/X1.lus similarity index 100% rename from _tests/should_work/NONREG/X1.lus rename to tests-pascal/_tests/should_work/NONREG/X1.lus diff --git a/_tests/should_work/NONREG/X2.lus b/tests-pascal/_tests/should_work/NONREG/X2.lus similarity index 100% rename from _tests/should_work/NONREG/X2.lus rename to tests-pascal/_tests/should_work/NONREG/X2.lus diff --git a/_tests/should_work/NONREG/X3.lus b/tests-pascal/_tests/should_work/NONREG/X3.lus similarity index 100% rename from _tests/should_work/NONREG/X3.lus rename to tests-pascal/_tests/should_work/NONREG/X3.lus diff --git a/_tests/should_work/NONREG/X6.lus b/tests-pascal/_tests/should_work/NONREG/X6.lus similarity index 100% rename from _tests/should_work/NONREG/X6.lus rename to tests-pascal/_tests/should_work/NONREG/X6.lus diff --git a/_tests/should_work/NONREG/_N_uu.lus b/tests-pascal/_tests/should_work/NONREG/_N_uu.lus similarity index 100% rename from _tests/should_work/NONREG/_N_uu.lus rename to tests-pascal/_tests/should_work/NONREG/_N_uu.lus diff --git a/_tests/should_work/NONREG/activation_ec.lus b/tests-pascal/_tests/should_work/NONREG/activation_ec.lus similarity index 100% rename from _tests/should_work/NONREG/activation_ec.lus rename to tests-pascal/_tests/should_work/NONREG/activation_ec.lus diff --git a/_tests/should_work/NONREG/after.lus b/tests-pascal/_tests/should_work/NONREG/after.lus similarity index 100% rename from _tests/should_work/NONREG/after.lus rename to tests-pascal/_tests/should_work/NONREG/after.lus diff --git a/_tests/should_work/NONREG/alarme.lus b/tests-pascal/_tests/should_work/NONREG/alarme.lus similarity index 100% rename from _tests/should_work/NONREG/alarme.lus rename to tests-pascal/_tests/should_work/NONREG/alarme.lus diff --git a/_tests/should_work/NONREG/arbitre.lus b/tests-pascal/_tests/should_work/NONREG/arbitre.lus similarity index 100% rename from _tests/should_work/NONREG/arbitre.lus rename to tests-pascal/_tests/should_work/NONREG/arbitre.lus diff --git a/_tests/should_work/NONREG/argos.lus b/tests-pascal/_tests/should_work/NONREG/argos.lus similarity index 100% rename from _tests/should_work/NONREG/argos.lus rename to tests-pascal/_tests/should_work/NONREG/argos.lus diff --git a/_tests/should_work/NONREG/assertion.lus b/tests-pascal/_tests/should_work/NONREG/assertion.lus similarity index 100% rename from _tests/should_work/NONREG/assertion.lus rename to tests-pascal/_tests/should_work/NONREG/assertion.lus diff --git a/_tests/should_work/NONREG/aux.lus b/tests-pascal/_tests/should_work/NONREG/aux.lus similarity index 100% rename from _tests/should_work/NONREG/aux.lus rename to tests-pascal/_tests/should_work/NONREG/aux.lus diff --git a/_tests/should_work/NONREG/aux1.lus b/tests-pascal/_tests/should_work/NONREG/aux1.lus similarity index 100% rename from _tests/should_work/NONREG/aux1.lus rename to tests-pascal/_tests/should_work/NONREG/aux1.lus diff --git a/_tests/should_work/NONREG/bascule.lus b/tests-pascal/_tests/should_work/NONREG/bascule.lus similarity index 100% rename from _tests/should_work/NONREG/bascule.lus rename to tests-pascal/_tests/should_work/NONREG/bascule.lus diff --git a/_tests/should_work/NONREG/call.lus b/tests-pascal/_tests/should_work/NONREG/call.lus similarity index 100% rename from _tests/should_work/NONREG/call.lus rename to tests-pascal/_tests/should_work/NONREG/call.lus diff --git a/_tests/should_work/NONREG/ck2.lus b/tests-pascal/_tests/should_work/NONREG/ck2.lus similarity index 100% rename from _tests/should_work/NONREG/ck2.lus rename to tests-pascal/_tests/should_work/NONREG/ck2.lus diff --git a/_tests/should_work/NONREG/ck3.lus b/tests-pascal/_tests/should_work/NONREG/ck3.lus similarity index 100% rename from _tests/should_work/NONREG/ck3.lus rename to tests-pascal/_tests/should_work/NONREG/ck3.lus diff --git a/_tests/should_work/NONREG/ck4.lus b/tests-pascal/_tests/should_work/NONREG/ck4.lus similarity index 100% rename from _tests/should_work/NONREG/ck4.lus rename to tests-pascal/_tests/should_work/NONREG/ck4.lus diff --git a/_tests/should_work/NONREG/ck5.lus b/tests-pascal/_tests/should_work/NONREG/ck5.lus similarity index 100% rename from _tests/should_work/NONREG/ck5.lus rename to tests-pascal/_tests/should_work/NONREG/ck5.lus diff --git a/_tests/should_work/NONREG/ck6.lus b/tests-pascal/_tests/should_work/NONREG/ck6.lus similarity index 100% rename from _tests/should_work/NONREG/ck6.lus rename to tests-pascal/_tests/should_work/NONREG/ck6.lus diff --git a/_tests/should_work/NONREG/ck7.lus b/tests-pascal/_tests/should_work/NONREG/ck7.lus similarity index 100% rename from _tests/should_work/NONREG/ck7.lus rename to tests-pascal/_tests/should_work/NONREG/ck7.lus diff --git a/_tests/should_work/NONREG/clock.lus b/tests-pascal/_tests/should_work/NONREG/clock.lus similarity index 100% rename from _tests/should_work/NONREG/clock.lus rename to tests-pascal/_tests/should_work/NONREG/clock.lus diff --git a/_tests/should_work/NONREG/cminus.lus b/tests-pascal/_tests/should_work/NONREG/cminus.lus similarity index 100% rename from _tests/should_work/NONREG/cminus.lus rename to tests-pascal/_tests/should_work/NONREG/cminus.lus diff --git a/_tests/should_work/NONREG/compteur.lus b/tests-pascal/_tests/should_work/NONREG/compteur.lus similarity index 100% rename from _tests/should_work/NONREG/compteur.lus rename to tests-pascal/_tests/should_work/NONREG/compteur.lus diff --git a/_tests/should_work/NONREG/count.lus b/tests-pascal/_tests/should_work/NONREG/count.lus similarity index 100% rename from _tests/should_work/NONREG/count.lus rename to tests-pascal/_tests/should_work/NONREG/count.lus diff --git a/_tests/should_work/NONREG/cpt.lus b/tests-pascal/_tests/should_work/NONREG/cpt.lus similarity index 100% rename from _tests/should_work/NONREG/cpt.lus rename to tests-pascal/_tests/should_work/NONREG/cpt.lus diff --git a/_tests/should_work/NONREG/cst.lus b/tests-pascal/_tests/should_work/NONREG/cst.lus similarity index 100% rename from _tests/should_work/NONREG/cst.lus rename to tests-pascal/_tests/should_work/NONREG/cst.lus diff --git a/_tests/should_work/NONREG/deconne.lus b/tests-pascal/_tests/should_work/NONREG/deconne.lus similarity index 100% rename from _tests/should_work/NONREG/deconne.lus rename to tests-pascal/_tests/should_work/NONREG/deconne.lus diff --git a/_tests/should_work/NONREG/dep.lus b/tests-pascal/_tests/should_work/NONREG/dep.lus similarity index 100% rename from _tests/should_work/NONREG/dep.lus rename to tests-pascal/_tests/should_work/NONREG/dep.lus diff --git a/_tests/should_work/NONREG/dependeur.lus b/tests-pascal/_tests/should_work/NONREG/dependeur.lus similarity index 100% rename from _tests/should_work/NONREG/dependeur.lus rename to tests-pascal/_tests/should_work/NONREG/dependeur.lus diff --git a/_tests/should_work/NONREG/dependeur_struct.lus b/tests-pascal/_tests/should_work/NONREG/dependeur_struct.lus similarity index 100% rename from _tests/should_work/NONREG/dependeur_struct.lus rename to tests-pascal/_tests/should_work/NONREG/dependeur_struct.lus diff --git a/_tests/should_work/NONREG/drapfab.lus b/tests-pascal/_tests/should_work/NONREG/drapfab.lus similarity index 100% rename from _tests/should_work/NONREG/drapfab.lus rename to tests-pascal/_tests/should_work/NONREG/drapfab.lus diff --git a/_tests/should_work/NONREG/enum.lus b/tests-pascal/_tests/should_work/NONREG/enum.lus similarity index 100% rename from _tests/should_work/NONREG/enum.lus rename to tests-pascal/_tests/should_work/NONREG/enum.lus diff --git a/_tests/should_work/NONREG/enum0.lus b/tests-pascal/_tests/should_work/NONREG/enum0.lus similarity index 100% rename from _tests/should_work/NONREG/enum0.lus rename to tests-pascal/_tests/should_work/NONREG/enum0.lus diff --git a/_tests/should_work/NONREG/eq1.lus b/tests-pascal/_tests/should_work/NONREG/eq1.lus similarity index 100% rename from _tests/should_work/NONREG/eq1.lus rename to tests-pascal/_tests/should_work/NONREG/eq1.lus diff --git a/_tests/should_work/NONREG/ex.lus b/tests-pascal/_tests/should_work/NONREG/ex.lus similarity index 100% rename from _tests/should_work/NONREG/ex.lus rename to tests-pascal/_tests/should_work/NONREG/ex.lus diff --git a/_tests/should_work/NONREG/exclusion.lus b/tests-pascal/_tests/should_work/NONREG/exclusion.lus similarity index 100% rename from _tests/should_work/NONREG/exclusion.lus rename to tests-pascal/_tests/should_work/NONREG/exclusion.lus diff --git a/_tests/should_work/NONREG/fby.lus b/tests-pascal/_tests/should_work/NONREG/fby.lus similarity index 100% rename from _tests/should_work/NONREG/fby.lus rename to tests-pascal/_tests/should_work/NONREG/fby.lus diff --git a/_tests/should_work/NONREG/flo.lus b/tests-pascal/_tests/should_work/NONREG/flo.lus similarity index 100% rename from _tests/should_work/NONREG/flo.lus rename to tests-pascal/_tests/should_work/NONREG/flo.lus diff --git a/_tests/should_work/NONREG/fresh_name.lus b/tests-pascal/_tests/should_work/NONREG/fresh_name.lus similarity index 100% rename from _tests/should_work/NONREG/fresh_name.lus rename to tests-pascal/_tests/should_work/NONREG/fresh_name.lus diff --git a/_tests/should_work/NONREG/hanane.lus b/tests-pascal/_tests/should_work/NONREG/hanane.lus similarity index 100% rename from _tests/should_work/NONREG/hanane.lus rename to tests-pascal/_tests/should_work/NONREG/hanane.lus diff --git a/_tests/should_work/NONREG/impl_priority.lus b/tests-pascal/_tests/should_work/NONREG/impl_priority.lus similarity index 100% rename from _tests/should_work/NONREG/impl_priority.lus rename to tests-pascal/_tests/should_work/NONREG/impl_priority.lus diff --git a/_tests/should_work/NONREG/import1.lus b/tests-pascal/_tests/should_work/NONREG/import1.lus similarity index 100% rename from _tests/should_work/NONREG/import1.lus rename to tests-pascal/_tests/should_work/NONREG/import1.lus diff --git a/_tests/should_work/NONREG/initial.lus b/tests-pascal/_tests/should_work/NONREG/initial.lus similarity index 100% rename from _tests/should_work/NONREG/initial.lus rename to tests-pascal/_tests/should_work/NONREG/initial.lus diff --git a/_tests/should_work/NONREG/integrator.lus b/tests-pascal/_tests/should_work/NONREG/integrator.lus similarity index 100% rename from _tests/should_work/NONREG/integrator.lus rename to tests-pascal/_tests/should_work/NONREG/integrator.lus diff --git a/_tests/should_work/NONREG/long_et_stupide_nom_de_noeud.lus b/tests-pascal/_tests/should_work/NONREG/long_et_stupide_nom_de_noeud.lus similarity index 100% rename from _tests/should_work/NONREG/long_et_stupide_nom_de_noeud.lus rename to tests-pascal/_tests/should_work/NONREG/long_et_stupide_nom_de_noeud.lus diff --git a/_tests/should_work/NONREG/merge.lus b/tests-pascal/_tests/should_work/NONREG/merge.lus similarity index 100% rename from _tests/should_work/NONREG/merge.lus rename to tests-pascal/_tests/should_work/NONREG/merge.lus diff --git a/_tests/should_work/NONREG/minmax1.lus b/tests-pascal/_tests/should_work/NONREG/minmax1.lus similarity index 100% rename from _tests/should_work/NONREG/minmax1.lus rename to tests-pascal/_tests/should_work/NONREG/minmax1.lus diff --git a/_tests/should_work/NONREG/minmax2.lus b/tests-pascal/_tests/should_work/NONREG/minmax2.lus similarity index 100% rename from _tests/should_work/NONREG/minmax2.lus rename to tests-pascal/_tests/should_work/NONREG/minmax2.lus diff --git a/_tests/should_work/NONREG/minmax3.lus b/tests-pascal/_tests/should_work/NONREG/minmax3.lus similarity index 100% rename from _tests/should_work/NONREG/minmax3.lus rename to tests-pascal/_tests/should_work/NONREG/minmax3.lus diff --git a/_tests/should_work/NONREG/minmax4.lus b/tests-pascal/_tests/should_work/NONREG/minmax4.lus similarity index 100% rename from _tests/should_work/NONREG/minmax4.lus rename to tests-pascal/_tests/should_work/NONREG/minmax4.lus diff --git a/_tests/should_work/NONREG/minmax4_bis.lus b/tests-pascal/_tests/should_work/NONREG/minmax4_bis.lus similarity index 100% rename from _tests/should_work/NONREG/minmax4_bis.lus rename to tests-pascal/_tests/should_work/NONREG/minmax4_bis.lus diff --git a/_tests/should_work/NONREG/minmax5.lus b/tests-pascal/_tests/should_work/NONREG/minmax5.lus similarity index 100% rename from _tests/should_work/NONREG/minmax5.lus rename to tests-pascal/_tests/should_work/NONREG/minmax5.lus diff --git a/_tests/should_work/NONREG/minmax5_random.lus b/tests-pascal/_tests/should_work/NONREG/minmax5_random.lus similarity index 100% rename from _tests/should_work/NONREG/minmax5_random.lus rename to tests-pascal/_tests/should_work/NONREG/minmax5_random.lus diff --git a/_tests/should_work/NONREG/minmax6.lus b/tests-pascal/_tests/should_work/NONREG/minmax6.lus similarity index 100% rename from _tests/should_work/NONREG/minmax6.lus rename to tests-pascal/_tests/should_work/NONREG/minmax6.lus diff --git a/_tests/should_work/NONREG/mm.lus b/tests-pascal/_tests/should_work/NONREG/mm.lus similarity index 100% rename from _tests/should_work/NONREG/mm.lus rename to tests-pascal/_tests/should_work/NONREG/mm.lus diff --git a/_tests/should_work/NONREG/mm1.lus b/tests-pascal/_tests/should_work/NONREG/mm1.lus similarity index 100% rename from _tests/should_work/NONREG/mm1.lus rename to tests-pascal/_tests/should_work/NONREG/mm1.lus diff --git a/_tests/should_work/NONREG/mm22.lus b/tests-pascal/_tests/should_work/NONREG/mm22.lus similarity index 100% rename from _tests/should_work/NONREG/mm22.lus rename to tests-pascal/_tests/should_work/NONREG/mm22.lus diff --git a/_tests/should_work/NONREG/mm3.lus b/tests-pascal/_tests/should_work/NONREG/mm3.lus similarity index 100% rename from _tests/should_work/NONREG/mm3.lus rename to tests-pascal/_tests/should_work/NONREG/mm3.lus diff --git a/_tests/should_work/NONREG/model.lus b/tests-pascal/_tests/should_work/NONREG/model.lus similarity index 100% rename from _tests/should_work/NONREG/model.lus rename to tests-pascal/_tests/should_work/NONREG/model.lus diff --git a/_tests/should_work/NONREG/model2.lus b/tests-pascal/_tests/should_work/NONREG/model2.lus similarity index 100% rename from _tests/should_work/NONREG/model2.lus rename to tests-pascal/_tests/should_work/NONREG/model2.lus diff --git a/_tests/should_work/NONREG/mouse.lus b/tests-pascal/_tests/should_work/NONREG/mouse.lus similarity index 100% rename from _tests/should_work/NONREG/mouse.lus rename to tests-pascal/_tests/should_work/NONREG/mouse.lus diff --git a/_tests/should_work/NONREG/mouse1.lus b/tests-pascal/_tests/should_work/NONREG/mouse1.lus similarity index 100% rename from _tests/should_work/NONREG/mouse1.lus rename to tests-pascal/_tests/should_work/NONREG/mouse1.lus diff --git a/_tests/should_work/NONREG/mouse2.lus b/tests-pascal/_tests/should_work/NONREG/mouse2.lus similarity index 100% rename from _tests/should_work/NONREG/mouse2.lus rename to tests-pascal/_tests/should_work/NONREG/mouse2.lus diff --git a/_tests/should_work/NONREG/mouse3.lus b/tests-pascal/_tests/should_work/NONREG/mouse3.lus similarity index 100% rename from _tests/should_work/NONREG/mouse3.lus rename to tests-pascal/_tests/should_work/NONREG/mouse3.lus diff --git a/_tests/should_work/NONREG/multiclock.lus b/tests-pascal/_tests/should_work/NONREG/multiclock.lus similarity index 100% rename from _tests/should_work/NONREG/multiclock.lus rename to tests-pascal/_tests/should_work/NONREG/multiclock.lus diff --git a/_tests/should_work/NONREG/nc1.lus b/tests-pascal/_tests/should_work/NONREG/nc1.lus similarity index 100% rename from _tests/should_work/NONREG/nc1.lus rename to tests-pascal/_tests/should_work/NONREG/nc1.lus diff --git a/_tests/should_work/NONREG/nc10.lus b/tests-pascal/_tests/should_work/NONREG/nc10.lus similarity index 100% rename from _tests/should_work/NONREG/nc10.lus rename to tests-pascal/_tests/should_work/NONREG/nc10.lus diff --git a/_tests/should_work/NONREG/nc2.lus b/tests-pascal/_tests/should_work/NONREG/nc2.lus similarity index 100% rename from _tests/should_work/NONREG/nc2.lus rename to tests-pascal/_tests/should_work/NONREG/nc2.lus diff --git a/_tests/should_work/NONREG/nc3.lus b/tests-pascal/_tests/should_work/NONREG/nc3.lus similarity index 100% rename from _tests/should_work/NONREG/nc3.lus rename to tests-pascal/_tests/should_work/NONREG/nc3.lus diff --git a/_tests/should_work/NONREG/nc4.lus b/tests-pascal/_tests/should_work/NONREG/nc4.lus similarity index 100% rename from _tests/should_work/NONREG/nc4.lus rename to tests-pascal/_tests/should_work/NONREG/nc4.lus diff --git a/_tests/should_work/NONREG/nc5.lus b/tests-pascal/_tests/should_work/NONREG/nc5.lus similarity index 100% rename from _tests/should_work/NONREG/nc5.lus rename to tests-pascal/_tests/should_work/NONREG/nc5.lus diff --git a/_tests/should_work/NONREG/nc6.lus b/tests-pascal/_tests/should_work/NONREG/nc6.lus similarity index 100% rename from _tests/should_work/NONREG/nc6.lus rename to tests-pascal/_tests/should_work/NONREG/nc6.lus diff --git a/_tests/should_work/NONREG/nc7.lus b/tests-pascal/_tests/should_work/NONREG/nc7.lus similarity index 100% rename from _tests/should_work/NONREG/nc7.lus rename to tests-pascal/_tests/should_work/NONREG/nc7.lus diff --git a/_tests/should_work/NONREG/nc8.lus b/tests-pascal/_tests/should_work/NONREG/nc8.lus similarity index 100% rename from _tests/should_work/NONREG/nc8.lus rename to tests-pascal/_tests/should_work/NONREG/nc8.lus diff --git a/_tests/should_work/NONREG/nc9.lus b/tests-pascal/_tests/should_work/NONREG/nc9.lus similarity index 100% rename from _tests/should_work/NONREG/nc9.lus rename to tests-pascal/_tests/should_work/NONREG/nc9.lus diff --git a/_tests/should_work/NONREG/nested.lus b/tests-pascal/_tests/should_work/NONREG/nested.lus similarity index 100% rename from _tests/should_work/NONREG/nested.lus rename to tests-pascal/_tests/should_work/NONREG/nested.lus diff --git a/_tests/should_work/NONREG/node_caller1.lus b/tests-pascal/_tests/should_work/NONREG/node_caller1.lus similarity index 100% rename from _tests/should_work/NONREG/node_caller1.lus rename to tests-pascal/_tests/should_work/NONREG/node_caller1.lus diff --git a/_tests/should_work/NONREG/o2l_feux_compl.lus b/tests-pascal/_tests/should_work/NONREG/o2l_feux_compl.lus similarity index 100% rename from _tests/should_work/NONREG/o2l_feux_compl.lus rename to tests-pascal/_tests/should_work/NONREG/o2l_feux_compl.lus diff --git a/_tests/should_work/NONREG/packed_cst.lus b/tests-pascal/_tests/should_work/NONREG/packed_cst.lus similarity index 100% rename from _tests/should_work/NONREG/packed_cst.lus rename to tests-pascal/_tests/should_work/NONREG/packed_cst.lus diff --git a/_tests/should_work/NONREG/param_node.lus b/tests-pascal/_tests/should_work/NONREG/param_node.lus similarity index 100% rename from _tests/should_work/NONREG/param_node.lus rename to tests-pascal/_tests/should_work/NONREG/param_node.lus diff --git a/_tests/should_work/NONREG/param_node2.lus b/tests-pascal/_tests/should_work/NONREG/param_node2.lus similarity index 100% rename from _tests/should_work/NONREG/param_node2.lus rename to tests-pascal/_tests/should_work/NONREG/param_node2.lus diff --git a/_tests/should_work/NONREG/param_node3.lus b/tests-pascal/_tests/should_work/NONREG/param_node3.lus similarity index 100% rename from _tests/should_work/NONREG/param_node3.lus rename to tests-pascal/_tests/should_work/NONREG/param_node3.lus diff --git a/_tests/should_work/NONREG/param_node4.lus b/tests-pascal/_tests/should_work/NONREG/param_node4.lus similarity index 100% rename from _tests/should_work/NONREG/param_node4.lus rename to tests-pascal/_tests/should_work/NONREG/param_node4.lus diff --git a/_tests/should_work/NONREG/param_struct.lus b/tests-pascal/_tests/should_work/NONREG/param_struct.lus similarity index 100% rename from _tests/should_work/NONREG/param_struct.lus rename to tests-pascal/_tests/should_work/NONREG/param_struct.lus diff --git a/_tests/should_work/NONREG/patrick.lus b/tests-pascal/_tests/should_work/NONREG/patrick.lus similarity index 100% rename from _tests/should_work/NONREG/patrick.lus rename to tests-pascal/_tests/should_work/NONREG/patrick.lus diff --git a/_tests/should_work/NONREG/poussoir.lus b/tests-pascal/_tests/should_work/NONREG/poussoir.lus similarity index 100% rename from _tests/should_work/NONREG/poussoir.lus rename to tests-pascal/_tests/should_work/NONREG/poussoir.lus diff --git a/_tests/should_work/NONREG/rs.lus b/tests-pascal/_tests/should_work/NONREG/rs.lus similarity index 100% rename from _tests/should_work/NONREG/rs.lus rename to tests-pascal/_tests/should_work/NONREG/rs.lus diff --git a/_tests/should_work/NONREG/s.lus b/tests-pascal/_tests/should_work/NONREG/s.lus similarity index 100% rename from _tests/should_work/NONREG/s.lus rename to tests-pascal/_tests/should_work/NONREG/s.lus diff --git a/_tests/should_work/NONREG/simple.lus b/tests-pascal/_tests/should_work/NONREG/simple.lus similarity index 100% rename from _tests/should_work/NONREG/simple.lus rename to tests-pascal/_tests/should_work/NONREG/simple.lus diff --git a/_tests/should_work/NONREG/sincos.lus b/tests-pascal/_tests/should_work/NONREG/sincos.lus similarity index 100% rename from _tests/should_work/NONREG/sincos.lus rename to tests-pascal/_tests/should_work/NONREG/sincos.lus diff --git a/_tests/should_work/NONREG/speedcontrol.lus b/tests-pascal/_tests/should_work/NONREG/speedcontrol.lus similarity index 100% rename from _tests/should_work/NONREG/speedcontrol.lus rename to tests-pascal/_tests/should_work/NONREG/speedcontrol.lus diff --git a/_tests/should_work/NONREG/stopwatch.lus b/tests-pascal/_tests/should_work/NONREG/stopwatch.lus similarity index 100% rename from _tests/should_work/NONREG/stopwatch.lus rename to tests-pascal/_tests/should_work/NONREG/stopwatch.lus diff --git a/_tests/should_work/NONREG/test.exp b/tests-pascal/_tests/should_work/NONREG/test.exp similarity index 100% rename from _tests/should_work/NONREG/test.exp rename to tests-pascal/_tests/should_work/NONREG/test.exp diff --git a/_tests/should_work/NONREG/test.res b/tests-pascal/_tests/should_work/NONREG/test.res similarity index 100% rename from _tests/should_work/NONREG/test.res rename to tests-pascal/_tests/should_work/NONREG/test.res diff --git a/_tests/should_work/NONREG/testCA.lus b/tests-pascal/_tests/should_work/NONREG/testCA.lus similarity index 100% rename from _tests/should_work/NONREG/testCA.lus rename to tests-pascal/_tests/should_work/NONREG/testCA.lus diff --git a/_tests/should_work/NONREG/test_clash.lus b/tests-pascal/_tests/should_work/NONREG/test_clash.lus similarity index 100% rename from _tests/should_work/NONREG/test_clash.lus rename to tests-pascal/_tests/should_work/NONREG/test_clash.lus diff --git a/_tests/should_work/NONREG/test_const.lus b/tests-pascal/_tests/should_work/NONREG/test_const.lus similarity index 100% rename from _tests/should_work/NONREG/test_const.lus rename to tests-pascal/_tests/should_work/NONREG/test_const.lus diff --git a/_tests/should_work/NONREG/test_node_expand.lus b/tests-pascal/_tests/should_work/NONREG/test_node_expand.lus similarity index 100% rename from _tests/should_work/NONREG/test_node_expand.lus rename to tests-pascal/_tests/should_work/NONREG/test_node_expand.lus diff --git a/_tests/should_work/NONREG/test_node_expand2.lus b/tests-pascal/_tests/should_work/NONREG/test_node_expand2.lus similarity index 100% rename from _tests/should_work/NONREG/test_node_expand2.lus rename to tests-pascal/_tests/should_work/NONREG/test_node_expand2.lus diff --git a/_tests/should_work/NONREG/trivial.lus b/tests-pascal/_tests/should_work/NONREG/trivial.lus similarity index 100% rename from _tests/should_work/NONREG/trivial.lus rename to tests-pascal/_tests/should_work/NONREG/trivial.lus diff --git a/_tests/should_work/NONREG/trivial2.lus b/tests-pascal/_tests/should_work/NONREG/trivial2.lus similarity index 100% rename from _tests/should_work/NONREG/trivial2.lus rename to tests-pascal/_tests/should_work/NONREG/trivial2.lus diff --git a/_tests/should_work/NONREG/tuple.lus b/tests-pascal/_tests/should_work/NONREG/tuple.lus similarity index 100% rename from _tests/should_work/NONREG/tuple.lus rename to tests-pascal/_tests/should_work/NONREG/tuple.lus diff --git a/_tests/should_work/NONREG/type_decl.lus b/tests-pascal/_tests/should_work/NONREG/type_decl.lus similarity index 100% rename from _tests/should_work/NONREG/type_decl.lus rename to tests-pascal/_tests/should_work/NONREG/type_decl.lus diff --git a/_tests/should_work/NONREG/uu.lus b/tests-pascal/_tests/should_work/NONREG/uu.lus similarity index 100% rename from _tests/should_work/NONREG/uu.lus rename to tests-pascal/_tests/should_work/NONREG/uu.lus diff --git a/_tests/should_work/NONREG/v1.lus b/tests-pascal/_tests/should_work/NONREG/v1.lus similarity index 100% rename from _tests/should_work/NONREG/v1.lus rename to tests-pascal/_tests/should_work/NONREG/v1.lus diff --git a/_tests/should_work/Pascal/access.lus b/tests-pascal/_tests/should_work/Pascal/access.lus similarity index 100% rename from _tests/should_work/Pascal/access.lus rename to tests-pascal/_tests/should_work/Pascal/access.lus diff --git a/_tests/should_work/Pascal/consensus.lus b/tests-pascal/_tests/should_work/Pascal/consensus.lus similarity index 100% rename from _tests/should_work/Pascal/consensus.lus rename to tests-pascal/_tests/should_work/Pascal/consensus.lus diff --git a/_tests/should_work/Pascal/consensus2.lus b/tests-pascal/_tests/should_work/Pascal/consensus2.lus similarity index 100% rename from _tests/should_work/Pascal/consensus2.lus rename to tests-pascal/_tests/should_work/Pascal/consensus2.lus diff --git a/_tests/should_work/Pascal/fby.lus b/tests-pascal/_tests/should_work/Pascal/fby.lus similarity index 100% rename from _tests/should_work/Pascal/fby.lus rename to tests-pascal/_tests/should_work/Pascal/fby.lus diff --git a/_tests/should_work/Pascal/func_with_body.lus b/tests-pascal/_tests/should_work/Pascal/func_with_body.lus similarity index 100% rename from _tests/should_work/Pascal/func_with_body.lus rename to tests-pascal/_tests/should_work/Pascal/func_with_body.lus diff --git a/_tests/should_work/Pascal/heater_control.lus b/tests-pascal/_tests/should_work/Pascal/heater_control.lus similarity index 100% rename from _tests/should_work/Pascal/heater_control.lus rename to tests-pascal/_tests/should_work/Pascal/heater_control.lus diff --git a/_tests/should_work/Pascal/left.lus b/tests-pascal/_tests/should_work/Pascal/left.lus similarity index 100% rename from _tests/should_work/Pascal/left.lus rename to tests-pascal/_tests/should_work/Pascal/left.lus diff --git a/_tests/should_work/Pascal/newpacks.lus b/tests-pascal/_tests/should_work/Pascal/newpacks.lus similarity index 100% rename from _tests/should_work/Pascal/newpacks.lus rename to tests-pascal/_tests/should_work/Pascal/newpacks.lus diff --git a/_tests/should_work/Pascal/onlyroll.lus b/tests-pascal/_tests/should_work/Pascal/onlyroll.lus similarity index 100% rename from _tests/should_work/Pascal/onlyroll.lus rename to tests-pascal/_tests/should_work/Pascal/onlyroll.lus diff --git a/_tests/should_work/Pascal/p.lus b/tests-pascal/_tests/should_work/Pascal/p.lus similarity index 100% rename from _tests/should_work/Pascal/p.lus rename to tests-pascal/_tests/should_work/Pascal/p.lus diff --git a/_tests/should_work/Pascal/packs.lus b/tests-pascal/_tests/should_work/Pascal/packs.lus similarity index 100% rename from _tests/should_work/Pascal/packs.lus rename to tests-pascal/_tests/should_work/Pascal/packs.lus diff --git a/_tests/should_work/Pascal/pfs.lus b/tests-pascal/_tests/should_work/Pascal/pfs.lus similarity index 100% rename from _tests/should_work/Pascal/pfs.lus rename to tests-pascal/_tests/should_work/Pascal/pfs.lus diff --git a/_tests/should_work/Pascal/struct.lus b/tests-pascal/_tests/should_work/Pascal/struct.lus similarity index 100% rename from _tests/should_work/Pascal/struct.lus rename to tests-pascal/_tests/should_work/Pascal/struct.lus diff --git a/_tests/should_work/Pascal/struct0.lus b/tests-pascal/_tests/should_work/Pascal/struct0.lus similarity index 100% rename from _tests/should_work/Pascal/struct0.lus rename to tests-pascal/_tests/should_work/Pascal/struct0.lus diff --git a/_tests/should_work/Pascal/t.lus b/tests-pascal/_tests/should_work/Pascal/t.lus similarity index 100% rename from _tests/should_work/Pascal/t.lus rename to tests-pascal/_tests/should_work/Pascal/t.lus diff --git a/_tests/should_work/Pascal/t0.lus b/tests-pascal/_tests/should_work/Pascal/t0.lus similarity index 100% rename from _tests/should_work/Pascal/t0.lus rename to tests-pascal/_tests/should_work/Pascal/t0.lus diff --git a/_tests/should_work/Pascal/t1.lus b/tests-pascal/_tests/should_work/Pascal/t1.lus similarity index 100% rename from _tests/should_work/Pascal/t1.lus rename to tests-pascal/_tests/should_work/Pascal/t1.lus diff --git a/_tests/should_work/Pascal/t2.lus b/tests-pascal/_tests/should_work/Pascal/t2.lus similarity index 100% rename from _tests/should_work/Pascal/t2.lus rename to tests-pascal/_tests/should_work/Pascal/t2.lus diff --git a/_tests/should_work/Pascal/test.lus b/tests-pascal/_tests/should_work/Pascal/test.lus similarity index 100% rename from _tests/should_work/Pascal/test.lus rename to tests-pascal/_tests/should_work/Pascal/test.lus diff --git a/_tests/should_work/Pascal/trivial.lus b/tests-pascal/_tests/should_work/Pascal/trivial.lus similarity index 100% rename from _tests/should_work/Pascal/trivial.lus rename to tests-pascal/_tests/should_work/Pascal/trivial.lus diff --git a/_tests/should_work/clock/clock.lus b/tests-pascal/_tests/should_work/clock/clock.lus similarity index 100% rename from _tests/should_work/clock/clock.lus rename to tests-pascal/_tests/should_work/clock/clock.lus diff --git a/_tests/should_work/clock/clock2.lus b/tests-pascal/_tests/should_work/clock/clock2.lus similarity index 100% rename from _tests/should_work/clock/clock2.lus rename to tests-pascal/_tests/should_work/clock/clock2.lus diff --git a/_tests/should_work/clock/clock_ite.lus b/tests-pascal/_tests/should_work/clock/clock_ite.lus similarity index 100% rename from _tests/should_work/clock/clock_ite.lus rename to tests-pascal/_tests/should_work/clock/clock_ite.lus diff --git a/_tests/should_work/clock/when_enum.lus b/tests-pascal/_tests/should_work/clock/when_enum.lus similarity index 100% rename from _tests/should_work/clock/when_enum.lus rename to tests-pascal/_tests/should_work/clock/when_enum.lus diff --git a/_tests/should_work/clock/when_node.lus b/tests-pascal/_tests/should_work/clock/when_node.lus similarity index 100% rename from _tests/should_work/clock/when_node.lus rename to tests-pascal/_tests/should_work/clock/when_node.lus diff --git a/_tests/should_work/clock/when_not.lus b/tests-pascal/_tests/should_work/clock/when_not.lus similarity index 100% rename from _tests/should_work/clock/when_not.lus rename to tests-pascal/_tests/should_work/clock/when_not.lus diff --git a/_tests/should_work/clock/when_tuple.lus b/tests-pascal/_tests/should_work/clock/when_tuple.lus similarity index 100% rename from _tests/should_work/clock/when_tuple.lus rename to tests-pascal/_tests/should_work/clock/when_tuple.lus diff --git a/_tests/should_work/demo/Gyroscope2.lus b/tests-pascal/_tests/should_work/demo/Gyroscope2.lus similarity index 100% rename from _tests/should_work/demo/Gyroscope2.lus rename to tests-pascal/_tests/should_work/demo/Gyroscope2.lus diff --git a/_tests/should_work/demo/alias.lus b/tests-pascal/_tests/should_work/demo/alias.lus similarity index 100% rename from _tests/should_work/demo/alias.lus rename to tests-pascal/_tests/should_work/demo/alias.lus diff --git a/_tests/should_work/demo/bred.lus b/tests-pascal/_tests/should_work/demo/bred.lus similarity index 100% rename from _tests/should_work/demo/bred.lus rename to tests-pascal/_tests/should_work/demo/bred.lus diff --git a/_tests/should_work/demo/bred_lv4.lus b/tests-pascal/_tests/should_work/demo/bred_lv4.lus similarity index 100% rename from _tests/should_work/demo/bred_lv4.lus rename to tests-pascal/_tests/should_work/demo/bred_lv4.lus diff --git a/_tests/should_work/demo/clock.lus b/tests-pascal/_tests/should_work/demo/clock.lus similarity index 100% rename from _tests/should_work/demo/clock.lus rename to tests-pascal/_tests/should_work/demo/clock.lus diff --git a/_tests/should_work/demo/clock1_2ms.lus b/tests-pascal/_tests/should_work/demo/clock1_2ms.lus similarity index 100% rename from _tests/should_work/demo/clock1_2ms.lus rename to tests-pascal/_tests/should_work/demo/clock1_2ms.lus diff --git a/_tests/should_work/demo/decl.lus b/tests-pascal/_tests/should_work/demo/decl.lus similarity index 100% rename from _tests/should_work/demo/decl.lus rename to tests-pascal/_tests/should_work/demo/decl.lus diff --git a/_tests/should_work/demo/declaration.lus b/tests-pascal/_tests/should_work/demo/declaration.lus similarity index 100% rename from _tests/should_work/demo/declaration.lus rename to tests-pascal/_tests/should_work/demo/declaration.lus diff --git a/_tests/should_work/demo/def.lus b/tests-pascal/_tests/should_work/demo/def.lus similarity index 100% rename from _tests/should_work/demo/def.lus rename to tests-pascal/_tests/should_work/demo/def.lus diff --git a/_tests/should_work/demo/filliter.lus b/tests-pascal/_tests/should_work/demo/filliter.lus similarity index 100% rename from _tests/should_work/demo/filliter.lus rename to tests-pascal/_tests/should_work/demo/filliter.lus diff --git a/_tests/should_work/demo/filter.lus b/tests-pascal/_tests/should_work/demo/filter.lus similarity index 100% rename from _tests/should_work/demo/filter.lus rename to tests-pascal/_tests/should_work/demo/filter.lus diff --git a/_tests/should_work/demo/lustre_test1_ok.lus b/tests-pascal/_tests/should_work/demo/lustre_test1_ok.lus similarity index 100% rename from _tests/should_work/demo/lustre_test1_ok.lus rename to tests-pascal/_tests/should_work/demo/lustre_test1_ok.lus diff --git a/_tests/should_work/demo/map_red_iter.lus b/tests-pascal/_tests/should_work/demo/map_red_iter.lus similarity index 100% rename from _tests/should_work/demo/map_red_iter.lus rename to tests-pascal/_tests/should_work/demo/map_red_iter.lus diff --git a/_tests/should_work/demo/mapdeRed.lus b/tests-pascal/_tests/should_work/demo/mapdeRed.lus similarity index 100% rename from _tests/should_work/demo/mapdeRed.lus rename to tests-pascal/_tests/should_work/demo/mapdeRed.lus diff --git a/_tests/should_work/demo/mapinf.lus b/tests-pascal/_tests/should_work/demo/mapinf.lus similarity index 100% rename from _tests/should_work/demo/mapinf.lus rename to tests-pascal/_tests/should_work/demo/mapinf.lus diff --git a/_tests/should_work/demo/mapiter.lus b/tests-pascal/_tests/should_work/demo/mapiter.lus similarity index 100% rename from _tests/should_work/demo/mapiter.lus rename to tests-pascal/_tests/should_work/demo/mapiter.lus diff --git a/_tests/should_work/demo/mappredef.lus b/tests-pascal/_tests/should_work/demo/mappredef.lus similarity index 100% rename from _tests/should_work/demo/mappredef.lus rename to tests-pascal/_tests/should_work/demo/mappredef.lus diff --git a/_tests/should_work/demo/plus.lus b/tests-pascal/_tests/should_work/demo/plus.lus similarity index 100% rename from _tests/should_work/demo/plus.lus rename to tests-pascal/_tests/should_work/demo/plus.lus diff --git a/_tests/should_work/demo/pre_x.lus b/tests-pascal/_tests/should_work/demo/pre_x.lus similarity index 100% rename from _tests/should_work/demo/pre_x.lus rename to tests-pascal/_tests/should_work/demo/pre_x.lus diff --git a/_tests/should_work/demo/rediter.lus b/tests-pascal/_tests/should_work/demo/rediter.lus similarity index 100% rename from _tests/should_work/demo/rediter.lus rename to tests-pascal/_tests/should_work/demo/rediter.lus diff --git a/_tests/should_work/demo/redoptest.lus b/tests-pascal/_tests/should_work/demo/redoptest.lus similarity index 100% rename from _tests/should_work/demo/redoptest.lus rename to tests-pascal/_tests/should_work/demo/redoptest.lus diff --git a/_tests/should_work/demo/sample_time_change.lus b/tests-pascal/_tests/should_work/demo/sample_time_change.lus similarity index 100% rename from _tests/should_work/demo/sample_time_change.lus rename to tests-pascal/_tests/should_work/demo/sample_time_change.lus diff --git a/_tests/should_work/demo/test.exp b/tests-pascal/_tests/should_work/demo/test.exp similarity index 100% rename from _tests/should_work/demo/test.exp rename to tests-pascal/_tests/should_work/demo/test.exp diff --git a/_tests/should_work/fab_test/bob.lus b/tests-pascal/_tests/should_work/fab_test/bob.lus similarity index 100% rename from _tests/should_work/fab_test/bob.lus rename to tests-pascal/_tests/should_work/fab_test/bob.lus diff --git a/_tests/should_work/fab_test/def.lus b/tests-pascal/_tests/should_work/fab_test/def.lus similarity index 100% rename from _tests/should_work/fab_test/def.lus rename to tests-pascal/_tests/should_work/fab_test/def.lus diff --git a/_tests/should_work/fab_test/ex.lus b/tests-pascal/_tests/should_work/fab_test/ex.lus similarity index 100% rename from _tests/should_work/fab_test/ex.lus rename to tests-pascal/_tests/should_work/fab_test/ex.lus diff --git a/_tests/should_work/fab_test/iter.lus b/tests-pascal/_tests/should_work/fab_test/iter.lus similarity index 100% rename from _tests/should_work/fab_test/iter.lus rename to tests-pascal/_tests/should_work/fab_test/iter.lus diff --git a/_tests/should_work/fab_test/iterate.lus b/tests-pascal/_tests/should_work/fab_test/iterate.lus similarity index 100% rename from _tests/should_work/fab_test/iterate.lus rename to tests-pascal/_tests/should_work/fab_test/iterate.lus diff --git a/_tests/should_work/fab_test/iterate.trace b/tests-pascal/_tests/should_work/fab_test/iterate.trace similarity index 100% rename from _tests/should_work/fab_test/iterate.trace rename to tests-pascal/_tests/should_work/fab_test/iterate.trace diff --git a/_tests/should_work/fab_test/iterate_var.trace b/tests-pascal/_tests/should_work/fab_test/iterate_var.trace similarity index 100% rename from _tests/should_work/fab_test/iterate_var.trace rename to tests-pascal/_tests/should_work/fab_test/iterate_var.trace diff --git a/_tests/should_work/fab_test/lecteur.lus b/tests-pascal/_tests/should_work/fab_test/lecteur.lus similarity index 100% rename from _tests/should_work/fab_test/lecteur.lus rename to tests-pascal/_tests/should_work/fab_test/lecteur.lus diff --git a/_tests/should_work/fab_test/lucky.lus b/tests-pascal/_tests/should_work/fab_test/lucky.lus similarity index 100% rename from _tests/should_work/fab_test/lucky.lus rename to tests-pascal/_tests/should_work/fab_test/lucky.lus diff --git a/_tests/should_work/fab_test/morel.lus b/tests-pascal/_tests/should_work/fab_test/morel.lus similarity index 100% rename from _tests/should_work/fab_test/morel.lus rename to tests-pascal/_tests/should_work/fab_test/morel.lus diff --git a/_tests/should_work/fab_test/morel2.lus b/tests-pascal/_tests/should_work/fab_test/morel2.lus similarity index 100% rename from _tests/should_work/fab_test/morel2.lus rename to tests-pascal/_tests/should_work/fab_test/morel2.lus diff --git a/_tests/should_work/fab_test/morel3.lus b/tests-pascal/_tests/should_work/fab_test/morel3.lus similarity index 100% rename from _tests/should_work/fab_test/morel3.lus rename to tests-pascal/_tests/should_work/fab_test/morel3.lus diff --git a/_tests/should_work/fab_test/morel4.lus b/tests-pascal/_tests/should_work/fab_test/morel4.lus similarity index 100% rename from _tests/should_work/fab_test/morel4.lus rename to tests-pascal/_tests/should_work/fab_test/morel4.lus diff --git a/_tests/should_work/fab_test/morel5.lus b/tests-pascal/_tests/should_work/fab_test/morel5.lus similarity index 100% rename from _tests/should_work/fab_test/morel5.lus rename to tests-pascal/_tests/should_work/fab_test/morel5.lus diff --git a/_tests/should_work/fab_test/noAlarm.lus b/tests-pascal/_tests/should_work/fab_test/noAlarm.lus similarity index 100% rename from _tests/should_work/fab_test/noAlarm.lus rename to tests-pascal/_tests/should_work/fab_test/noAlarm.lus diff --git a/_tests/should_work/fab_test/notTwo.lus b/tests-pascal/_tests/should_work/fab_test/notTwo.lus similarity index 100% rename from _tests/should_work/fab_test/notTwo.lus rename to tests-pascal/_tests/should_work/fab_test/notTwo.lus diff --git a/_tests/should_work/fab_test/onlyroll.lus b/tests-pascal/_tests/should_work/fab_test/onlyroll.lus similarity index 100% rename from _tests/should_work/fab_test/onlyroll.lus rename to tests-pascal/_tests/should_work/fab_test/onlyroll.lus diff --git a/_tests/should_work/fab_test/onlyroll2.lus b/tests-pascal/_tests/should_work/fab_test/onlyroll2.lus similarity index 100% rename from _tests/should_work/fab_test/onlyroll2.lus rename to tests-pascal/_tests/should_work/fab_test/onlyroll2.lus diff --git a/_tests/should_work/fab_test/test.exp b/tests-pascal/_tests/should_work/fab_test/test.exp similarity index 100% rename from _tests/should_work/fab_test/test.exp rename to tests-pascal/_tests/should_work/fab_test/test.exp diff --git a/_tests/should_work/fab_test/test.lus b/tests-pascal/_tests/should_work/fab_test/test.lus similarity index 100% rename from _tests/should_work/fab_test/test.lus rename to tests-pascal/_tests/should_work/fab_test/test.lus diff --git a/_tests/should_work/fab_test/test.res b/tests-pascal/_tests/should_work/fab_test/test.res similarity index 100% rename from _tests/should_work/fab_test/test.res rename to tests-pascal/_tests/should_work/fab_test/test.res diff --git a/_tests/should_work/fab_test/titi.lus b/tests-pascal/_tests/should_work/fab_test/titi.lus similarity index 100% rename from _tests/should_work/fab_test/titi.lus rename to tests-pascal/_tests/should_work/fab_test/titi.lus diff --git a/_tests/should_work/fab_test/toolate.lus b/tests-pascal/_tests/should_work/fab_test/toolate.lus similarity index 100% rename from _tests/should_work/fab_test/toolate.lus rename to tests-pascal/_tests/should_work/fab_test/toolate.lus diff --git a/_tests/should_work/fab_test/toto.lus b/tests-pascal/_tests/should_work/fab_test/toto.lus similarity index 100% rename from _tests/should_work/fab_test/toto.lus rename to tests-pascal/_tests/should_work/fab_test/toto.lus diff --git a/_tests/should_work/lionel/FillFollowedByRed.lus b/tests-pascal/_tests/should_work/lionel/FillFollowedByRed.lus similarity index 100% rename from _tests/should_work/lionel/FillFollowedByRed.lus rename to tests-pascal/_tests/should_work/lionel/FillFollowedByRed.lus diff --git a/_tests/should_work/lionel/Gyroscope.lus b/tests-pascal/_tests/should_work/lionel/Gyroscope.lus similarity index 100% rename from _tests/should_work/lionel/Gyroscope.lus rename to tests-pascal/_tests/should_work/lionel/Gyroscope.lus diff --git a/_tests/should_work/lionel/ProduitBool/produitBool.lus b/tests-pascal/_tests/should_work/lionel/ProduitBool/produitBool.lus similarity index 100% rename from _tests/should_work/lionel/ProduitBool/produitBool.lus rename to tests-pascal/_tests/should_work/lionel/ProduitBool/produitBool.lus diff --git a/_tests/should_work/lionel/ProduitBool/shiftFill_ludic.lus b/tests-pascal/_tests/should_work/lionel/ProduitBool/shiftFill_ludic.lus similarity index 100% rename from _tests/should_work/lionel/ProduitBool/shiftFill_ludic.lus rename to tests-pascal/_tests/should_work/lionel/ProduitBool/shiftFill_ludic.lus diff --git a/_tests/should_work/lionel/ProduitBool/shift_ludic.lus b/tests-pascal/_tests/should_work/lionel/ProduitBool/shift_ludic.lus similarity index 100% rename from _tests/should_work/lionel/ProduitBool/shift_ludic.lus rename to tests-pascal/_tests/should_work/lionel/ProduitBool/shift_ludic.lus diff --git a/_tests/should_work/lionel/arrays.lus b/tests-pascal/_tests/should_work/lionel/arrays.lus similarity index 100% rename from _tests/should_work/lionel/arrays.lus rename to tests-pascal/_tests/should_work/lionel/arrays.lus diff --git a/_tests/should_work/lionel/bug.lus b/tests-pascal/_tests/should_work/lionel/bug.lus similarity index 100% rename from _tests/should_work/lionel/bug.lus rename to tests-pascal/_tests/should_work/lionel/bug.lus diff --git a/_tests/should_work/lionel/calculs_max.lus b/tests-pascal/_tests/should_work/lionel/calculs_max.lus similarity index 100% rename from _tests/should_work/lionel/calculs_max.lus rename to tests-pascal/_tests/should_work/lionel/calculs_max.lus diff --git a/_tests/should_work/lionel/clock.lus b/tests-pascal/_tests/should_work/lionel/clock.lus similarity index 100% rename from _tests/should_work/lionel/clock.lus rename to tests-pascal/_tests/should_work/lionel/clock.lus diff --git a/_tests/should_work/lionel/deSimone.lus b/tests-pascal/_tests/should_work/lionel/deSimone.lus similarity index 100% rename from _tests/should_work/lionel/deSimone.lus rename to tests-pascal/_tests/should_work/lionel/deSimone.lus diff --git a/_tests/should_work/lionel/iterFibo.lus b/tests-pascal/_tests/should_work/lionel/iterFibo.lus similarity index 100% rename from _tests/should_work/lionel/iterFibo.lus rename to tests-pascal/_tests/should_work/lionel/iterFibo.lus diff --git a/_tests/should_work/lionel/mapiter.lus b/tests-pascal/_tests/should_work/lionel/mapiter.lus similarity index 100% rename from _tests/should_work/lionel/mapiter.lus rename to tests-pascal/_tests/should_work/lionel/mapiter.lus diff --git a/_tests/should_work/lionel/matrice.lus b/tests-pascal/_tests/should_work/lionel/matrice.lus similarity index 100% rename from _tests/should_work/lionel/matrice.lus rename to tests-pascal/_tests/should_work/lionel/matrice.lus diff --git a/_tests/should_work/lionel/matrice2.lus b/tests-pascal/_tests/should_work/lionel/matrice2.lus similarity index 100% rename from _tests/should_work/lionel/matrice2.lus rename to tests-pascal/_tests/should_work/lionel/matrice2.lus diff --git a/_tests/should_work/lionel/minus.lus b/tests-pascal/_tests/should_work/lionel/minus.lus similarity index 100% rename from _tests/should_work/lionel/minus.lus rename to tests-pascal/_tests/should_work/lionel/minus.lus diff --git a/_tests/should_work/lionel/moyenne.lus b/tests-pascal/_tests/should_work/lionel/moyenne.lus similarity index 100% rename from _tests/should_work/lionel/moyenne.lus rename to tests-pascal/_tests/should_work/lionel/moyenne.lus diff --git a/_tests/should_work/lionel/normal.lus b/tests-pascal/_tests/should_work/lionel/normal.lus similarity index 100% rename from _tests/should_work/lionel/normal.lus rename to tests-pascal/_tests/should_work/lionel/normal.lus diff --git a/_tests/should_work/lionel/pack1.lus b/tests-pascal/_tests/should_work/lionel/pack1.lus similarity index 100% rename from _tests/should_work/lionel/pack1.lus rename to tests-pascal/_tests/should_work/lionel/pack1.lus diff --git a/_tests/should_work/lionel/pilote-1.0.lus b/tests-pascal/_tests/should_work/lionel/pilote-1.0.lus similarity index 100% rename from _tests/should_work/lionel/pilote-1.0.lus rename to tests-pascal/_tests/should_work/lionel/pilote-1.0.lus diff --git a/_tests/should_work/lionel/pipeline.lus b/tests-pascal/_tests/should_work/lionel/pipeline.lus similarity index 100% rename from _tests/should_work/lionel/pipeline.lus rename to tests-pascal/_tests/should_work/lionel/pipeline.lus diff --git a/_tests/should_work/lionel/predefOp.lus b/tests-pascal/_tests/should_work/lionel/predefOp.lus similarity index 100% rename from _tests/should_work/lionel/predefOp.lus rename to tests-pascal/_tests/should_work/lionel/predefOp.lus diff --git a/_tests/should_work/lionel/redIf.lus b/tests-pascal/_tests/should_work/lionel/redIf.lus similarity index 100% rename from _tests/should_work/lionel/redIf.lus rename to tests-pascal/_tests/should_work/lionel/redIf.lus diff --git a/_tests/should_work/lionel/remplissage-1.0.lus b/tests-pascal/_tests/should_work/lionel/remplissage-1.0.lus similarity index 100% rename from _tests/should_work/lionel/remplissage-1.0.lus rename to tests-pascal/_tests/should_work/lionel/remplissage-1.0.lus diff --git a/_tests/should_work/lionel/simpleRed.lus b/tests-pascal/_tests/should_work/lionel/simpleRed.lus similarity index 100% rename from _tests/should_work/lionel/simpleRed.lus rename to tests-pascal/_tests/should_work/lionel/simpleRed.lus diff --git a/_tests/should_work/lionel/test.exp b/tests-pascal/_tests/should_work/lionel/test.exp similarity index 100% rename from _tests/should_work/lionel/test.exp rename to tests-pascal/_tests/should_work/lionel/test.exp diff --git a/_tests/should_work/lionel/testSilus.lus b/tests-pascal/_tests/should_work/lionel/testSilus.lus similarity index 100% rename from _tests/should_work/lionel/testSilus.lus rename to tests-pascal/_tests/should_work/lionel/testSilus.lus diff --git a/_tests/should_work/lionel/triSel.lus b/tests-pascal/_tests/should_work/lionel/triSel.lus similarity index 100% rename from _tests/should_work/lionel/triSel.lus rename to tests-pascal/_tests/should_work/lionel/triSel.lus diff --git a/_tests/should_work/packEnvTest/Condact.lus b/tests-pascal/_tests/should_work/packEnvTest/Condact.lus similarity index 100% rename from _tests/should_work/packEnvTest/Condact.lus rename to tests-pascal/_tests/should_work/packEnvTest/Condact.lus diff --git a/_tests/should_work/packEnvTest/complex.lus b/tests-pascal/_tests/should_work/packEnvTest/complex.lus similarity index 100% rename from _tests/should_work/packEnvTest/complex.lus rename to tests-pascal/_tests/should_work/packEnvTest/complex.lus diff --git a/_tests/should_work/packEnvTest/contractForElementSelectionInArray/contractForElementSelectionInArray.lus b/tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/contractForElementSelectionInArray.lus similarity index 100% rename from _tests/should_work/packEnvTest/contractForElementSelectionInArray/contractForElementSelectionInArray.lus rename to tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/contractForElementSelectionInArray.lus diff --git a/_tests/should_work/packEnvTest/contractForElementSelectionInArray/main.lus b/tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/main.lus similarity index 100% rename from _tests/should_work/packEnvTest/contractForElementSelectionInArray/main.lus rename to tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/main.lus diff --git a/_tests/should_work/packEnvTest/contractForElementSelectionInArray/noeudsIndependants.lus b/tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/noeudsIndependants.lus similarity index 100% rename from _tests/should_work/packEnvTest/contractForElementSelectionInArray/noeudsIndependants.lus rename to tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/noeudsIndependants.lus diff --git a/_tests/should_work/packEnvTest/contractForElementSelectionInArray/packageTableau.lus b/tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/packageTableau.lus similarity index 100% rename from _tests/should_work/packEnvTest/contractForElementSelectionInArray/packageTableau.lus rename to tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/packageTableau.lus diff --git a/_tests/should_work/packEnvTest/contractForElementSelectionInArray/tri.lus b/tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/tri.lus similarity index 100% rename from _tests/should_work/packEnvTest/contractForElementSelectionInArray/tri.lus rename to tests-pascal/_tests/should_work/packEnvTest/contractForElementSelectionInArray/tri.lus diff --git a/_tests/should_work/packEnvTest/iter.lus b/tests-pascal/_tests/should_work/packEnvTest/iter.lus similarity index 100% rename from _tests/should_work/packEnvTest/iter.lus rename to tests-pascal/_tests/should_work/packEnvTest/iter.lus diff --git a/_tests/should_work/packEnvTest/model.lus b/tests-pascal/_tests/should_work/packEnvTest/model.lus similarity index 100% rename from _tests/should_work/packEnvTest/model.lus rename to tests-pascal/_tests/should_work/packEnvTest/model.lus diff --git a/_tests/should_work/packEnvTest/modelInst.lus b/tests-pascal/_tests/should_work/packEnvTest/modelInst.lus similarity index 100% rename from _tests/should_work/packEnvTest/modelInst.lus rename to tests-pascal/_tests/should_work/packEnvTest/modelInst.lus diff --git a/_tests/should_work/packEnvTest/packages.lus b/tests-pascal/_tests/should_work/packEnvTest/packages.lus similarity index 100% rename from _tests/should_work/packEnvTest/packages.lus rename to tests-pascal/_tests/should_work/packEnvTest/packages.lus diff --git a/_tests/should_work/packEnvTest/packages2.lus b/tests-pascal/_tests/should_work/packEnvTest/packages2.lus similarity index 100% rename from _tests/should_work/packEnvTest/packages2.lus rename to tests-pascal/_tests/should_work/packEnvTest/packages2.lus diff --git a/_tests/should_work/packEnvTest/polymorphic_pack.lus b/tests-pascal/_tests/should_work/packEnvTest/polymorphic_pack.lus similarity index 100% rename from _tests/should_work/packEnvTest/polymorphic_pack.lus rename to tests-pascal/_tests/should_work/packEnvTest/polymorphic_pack.lus diff --git a/_tests/should_work/to_sort_out/asservi.lus b/tests-pascal/_tests/should_work/to_sort_out/asservi.lus similarity index 100% rename from _tests/should_work/to_sort_out/asservi.lus rename to tests-pascal/_tests/should_work/to_sort_out/asservi.lus diff --git a/_tests/should_work/to_sort_out/test.res b/tests-pascal/_tests/should_work/to_sort_out/test.res similarity index 100% rename from _tests/should_work/to_sort_out/test.res rename to tests-pascal/_tests/should_work/to_sort_out/test.res diff --git a/_tests/test.res.exp b/tests-pascal/_tests/test.res.exp similarity index 100% rename from _tests/test.res.exp rename to tests-pascal/_tests/test.res.exp diff --git a/_tests/test_ec.res.exp b/tests-pascal/_tests/test_ec.res.exp similarity index 100% rename from _tests/test_ec.res.exp rename to tests-pascal/_tests/test_ec.res.exp diff --git a/_tests/test_lv4.res.exp b/tests-pascal/_tests/test_lv4.res.exp similarity index 100% rename from _tests/test_lv4.res.exp rename to tests-pascal/_tests/test_lv4.res.exp diff --git a/moretests/Makefile b/tests-pascal/moretests/Makefile similarity index 100% rename from moretests/Makefile rename to tests-pascal/moretests/Makefile diff --git a/moretests/should_fail/misc/wrongmap.lus b/tests-pascal/moretests/should_fail/misc/wrongmap.lus similarity index 100% rename from moretests/should_fail/misc/wrongmap.lus rename to tests-pascal/moretests/should_fail/misc/wrongmap.lus diff --git a/moretests/should_work/aliases/alias.lus b/tests-pascal/moretests/should_work/aliases/alias.lus similarity index 100% rename from moretests/should_work/aliases/alias.lus rename to tests-pascal/moretests/should_work/aliases/alias.lus diff --git a/moretests/should_work/aliases/ex.lus b/tests-pascal/moretests/should_work/aliases/ex.lus similarity index 100% rename from moretests/should_work/aliases/ex.lus rename to tests-pascal/moretests/should_work/aliases/ex.lus diff --git a/moretests/test.res.exp b/tests-pascal/moretests/test.res.exp similarity index 100% rename from moretests/test.res.exp rename to tests-pascal/moretests/test.res.exp diff --git a/todo.org b/todo.org new file mode 100644 index 00000000..3a31f78f --- /dev/null +++ b/todo.org @@ -0,0 +1,160 @@ +#+TODO: TODO(!) STARTED(!) WAITING(!) | DONE(d!) CANCELED(c) +#+CATEGORY: lv6 + + + +* Urgent + +** TODO Mettre à jour le tout nouveau file:README.org wrt src + SCHEDULED: <2012-12-10 Mon> + - State "TODO" from "" [2012-12-10 Mon 17:02] + +** TODO Renommer tous les modules et faire du ménage + SCHEDULED: <2012-12-10 Mon> + - State "TODO" from "" [2012-12-10 Mon 16:55] + +** TODO rebrancher le nodeExpand.ml et structArrayExpand.ml + SCHEDULED: <2012-12-10 Mon> + - State "TODO" from "" [2012-12-10 Mon 16:55] + +file:~/lus2lic/src/nodesExpand.ml + +file:~/lus2lic/src/structArrayExpand.mli + + +Pascal les a débranché lors de son ménage d'été. + + + +** TODO Refaire marcher les tests de non-reg qui sont cassés + SCHEDULED: <2012-12-10 Mon> +suites aux modifs de Pascal de l'été 2012 + - State "TODO" from "" [2012-10-26 Fri 14:59] + +En fait, ce qui est cassé, c'est surtout le -ec puisqu'il n'a pas +rebranché l'expansion de tableau et de noeud. + +il a fait + - mv tests _tests + - mkdir tests + - cp _tests/Makefile tests + - créer des tests qu'il a mis dans tests... + +*** TODO Merger mes tests et les nouveaux tests de Pascal + - State "TODO" from "" [2012-12-10 Mon 17:13] + + + +* Pas dur + +** TODO Mettre le sha dans l'affichage de --version +car c'est plus facile dans git pour retrouver ses petits + - State "TODO" from "" [2012-10-26 Fri 14:59] + +** STARTED Intégrer le résultat de mly2bnf dans le manuel + +* A faire + +** TODO Définir les fonctions de UglyStuff proprement + - State "TODO" from "" [2012-12-10 Mon 16:38] +file:~/lus2lic/src/uglyStuff.ml + + + +** TODO Rajouter le with à la caml pour les structures + - State "TODO" from "" [2012-10-26 Fri 14:59] + +** TODO Dans file:src/eff.ml::195 on pourrait virer la notion de call by name +qui ne sert que pour les structures. Mais au niveau du Eff, on +pourrait s'en être débarrassé au profit d'un appel par position. A +faire au moment de la compilation des expressions. + +question : est-ce que cela nous prive d'une optim pour le traitement +du with ? +comment fait caml ? + - State "TODO" from "" [2012-10-26 Fri 14:59] + + +** TODO on devrait se passer de 'static_arg list' pour le champ =PREDEF_CALL= +(c'est censé marcher) +cf file:./src/eff.ml::206 + - State "TODO" from "" [2012-10-26 Fri 14:59] + +** TODO L'ideal serait de se passer du PREDEF_CALL (et de passer par le CALL normal) + - State "TODO" from "" [2012-10-26 Fri 14:59] + +** TODO le Eff.WITH (aka if statique) n'a pas lieu d'être ! +y virer !! + - State "TODO" from "" [2012-10-26 Fri 14:59] + +* Vieux trucs (?) + +** TODO operateurs iterables + - State "TODO" from "" [2012-03-30 Fri 17:03] +- mettre dans la doc +- voir si on ne pourrait pas completer la liste +en mettant tous les operateurs unaires de + file:~/lus2lic/src/syntaxTreeCore.ml::91 +dans + file:~/lus2lic/src/predef.ml::62 +- tout au moins, eviter les assert false sur +#+BEGIN_CENTER lustre :exports bug_map_fby.lus +type state = struct { + idy : int; + leader : int; + level : int +}; +const n=5; +const inits = [ + state { idy = 33; leader = 5; level = 2} , + state { idy = 41; leader = 5; level = 3} , + state { idy = 21; leader = 5; level = 4} , + state { idy = 10; leader = 10; level = 0} , + state { idy = 75; leader = 75; level = 0} +] ; +const O = false; +const I = true; +const connect = [ + [ O, I, O, O, I ], + [ I, O, I, O, O ], + [ O, I, O, I, O ], + [ O, O, I, O, I ], + [ I, O, O, I, O ] +]; +node algo (clk: bool; ps: state; neigh: bool^5) returns (ns: state); +let + ns = if clk then + state { idy = ps.idy ; leader = ps.leader; level = ps.level + 1 } + else + state { idy = ps.idy ; leader = ps.leader; level = ps.level }; +tel +node simu(ck:bool^5) returns (s: state^n); +var ps : state^n; +let + ps = map<<fby, 5>>(inits, s); + s = map<<algo, n>> (ck, ps, connect); +tel +#+END_CENTER + + +** TODO Revoir le nommage des instances de noeuds parametriques + par ex, pour should_work/NONREG/param_struct.lus + ca invente des noms bien débiles du point de vue du nom du pack. + Style 'mk_tab__param_struct::toto_toto_3' + alors qu'aucun package ne s'appelle 'mk_tab__param_struct' + +** TODO Changer la facon de numeroter les versions dans lus2lic (faire comme dans lurette) + [2010-11-08 Mon] +** TODO Verifier les boucles combinatoires quand on genere du ec (car ec2c ne fait pas la verif !) + [2010-06-07 Mon] + +** TODO Refaire une passe pour virer une fois pour toute cette histoire d'idref dans Eff. + cf file:/~/lus2lic/src/eff.ml line 189 +QU: Pascal l'a fait ? + +** TODO lic2c : le jour ou on genere du code C, y'a peut-etre des trucs a recuperer + - State "TODO" from "" [2012-12-10 Mon 14:32] +des trucs chez cedric pasteur (thesard marc p) qui a une +implementation pour optimiser la maj des tableaux + + -- GitLab