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