From a2f521dd15d3377a8a10e46fefdf415ad68effa9 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Tue, 18 Dec 2007 11:15:49 +0100
Subject: [PATCH] Renaming modules: syntaxe -> syntaxTree, srcTab -> syntaxTab,
 compUtils -> syntaxTabUtils

---
 src/Makefile                              |    8 +-
 src/TAGS                                  | 1005 +++++++++++----------
 src/compUtils.ml                          |   24 -
 src/compile.ml                            |    6 +-
 src/expandPack.ml                         |  205 ++---
 src/expandPack.mli                        |   17 +-
 src/lazyCompiler.ml                       |   20 +-
 src/lazyCompiler.mli                      |    4 +-
 src/main.ml                               |   14 +-
 src/symbolTab.ml                          |    2 +-
 src/symbolTab.mli                         |    4 +-
 src/{srcTab.ml => syntaxTab.ml}           |  175 ++--
 src/{srcTab.mli => syntaxTab.mli}         |    0
 src/syntaxTabUtils.ml                     |   25 +
 src/{compUtils.mli => syntaxTabUtils.mli} |    0
 src/version.ml                            |    4 +-
 16 files changed, 754 insertions(+), 759 deletions(-)
 delete mode 100644 src/compUtils.ml
 rename src/{srcTab.ml => syntaxTab.ml} (79%)
 rename src/{srcTab.mli => syntaxTab.mli} (100%)
 create mode 100644 src/syntaxTabUtils.ml
 rename src/{compUtils.mli => syntaxTabUtils.mli} (100%)

diff --git a/src/Makefile b/src/Makefile
index 13cde385..0d653155 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -17,15 +17,15 @@ SOURCES =  \
 	./parser.mly \
 	./lexer.mll \
 	./dump.ml \
-	./compUtils.mli \
-	./compUtils.ml \
+	./syntaxTabUtils.mli \
+	./syntaxTabUtils.ml \
 	./expandPack.mli \
 	./expandPack.ml \
 	./symbolTab.mli \
 	./symbolTab.ml \
-	./srcTab.mli \
 	./compileData.ml \
-	./srcTab.ml \
+	./syntaxTab.mli \
+	./syntaxTab.ml \
 	./evalConst.mli \
 	./evalConst.ml \
 	./evalType.mli \
diff --git a/src/TAGS b/src/TAGS
index a6011e4a..b67e7ea4 100644
--- a/src/TAGS
+++ b/src/TAGS
@@ -1,166 +1,162 @@
 
-./compUtils.ml,46
-CompUtils1,0
-let put_in_tabput_in_tab7,96
-
 ./compile.ml,78
 Compile1,0
-let rec first_pack_infirst_pack_in33,908
-let doitdoit40,1086
+let rec first_pack_infirst_pack_in31,872
+let doitdoit38,1050
 
 ./compileData.ml,4079
 CompileData1,0
-type id_solverid_solver116,3199
-	id2constid2const117,3218
-	id2typeid2type118,3266
-and type_efftype_eff130,3749
-    Bool_type_effBool_type_eff131,3764
-  | Int_type_effInt_type_eff132,3782
-  | Real_type_effReal_type_eff133,3799
-  | External_type_effExternal_type_eff134,3817
-  | Enum_type_effEnum_type_eff135,3854
-  | Array_type_effArray_type_eff136,3911
-  | Struct_type_effStruct_type_eff137,3952
-and slice_effslice_eff146,4435
-  se_firstse_first147,4453
-  se_lastse_last148,4471
-  se_stepse_step149,4488
-  se_widthse_width150,4505
-and left_effleft_eff164,5027
-    LeftEffVarLeftEffVar165,5042
-  | LeftEffFieldLeftEffField166,5078
-  | LeftEffArrayLeftEffArray167,5130
-  | LeftEffSliceLeftEffSlice168,5178
-and eq_effeq_eff175,5522
-  eqf_left_listeqf_left_list176,5537
-and const_effconst_eff188,6054
-    Bool_const_effBool_const_eff190,6088
-  | Int_const_effInt_const_eff191,6115
-  | Real_const_effReal_const_eff192,6140
-  | Extern_const_effExtern_const_eff194,6223
-  | Enum_const_effEnum_const_eff195,6271
-  | Struct_const_effStruct_const_eff197,6383
-  | Array_const_effArray_const_eff199,6514
-and val_effval_eff206,6874
-    ConstEffConstEff207,6888
-  | VarEffVarEff208,6914
-and var_effvar_eff215,7248
-  vf_namevf_name216,7264
-  vf_naturevf_nature217,7286
-  vf_typevf_type218,7313
-  vf_clockvf_clock219,7336
-and clock_effclock_eff221,7362
-    BaseClockEffBaseClockEff222,7379
-  | VarClockEffVarClockEff223,7396
-and oper_half_effoper_half_eff233,7920
-    FuncRefFuncRef234,7941
-  | NodeRefNodeRef235,7965
-and func_efffunc_eff241,8260
-  fe_namefe_name242,8277
-  fe_in_typesfe_in_types243,8299
-  fe_out_typesfe_out_types244,8332
-and node_half_effnode_half_eff252,8713
-and node_effnode_eff265,9326
-  nf_keynf_key266,9343
-  nf_in_typesnf_in_types267,9365
-  nf_out_typesnf_out_types268,9398
-  nf_in_formal_clocksnf_in_formal_clocks269,9431
-  nf_out_formal_clocksnf_out_formal_clocks270,9474
-and item_keyitem_key278,9838
-and node_keynode_key279,9864
-and static_arg_effstatic_arg_eff289,10329
-    ConstStaticArgEffConstStaticArgEff290,10350
-  | TypeStaticArgEffTypeStaticArgEff291,10397
-  | OperStaticArgEffOperStaticArgEff292,10443
-and oper_effoper_eff301,10961
-    PredefOperPredefOper302,10976
-  | FuncOperFuncOper303,11005
-  | NodeOperNodeOper304,11030
-and oper_aliasoper_alias313,11527
-    CheckedOperCheckedOper314,11544
-  | HalfCheckedNodeHalfCheckedNode315,11572
-type 'a chkflagedchkflaged326,12087
-    CheckingChecking327,12107
-  | CheckedChecked328,12120
-  | BadCheckedBadChecked329,12138
-world_envworld_env332,12159
-  wenv_srcwenv_src333,12173
-  wenv_mod_srcswenv_mod_srcs334,12214
-  wenv_pack_srcswenv_pack_srcs335,12284
-  wenv_pack_envswenv_pack_envs336,12355
-and pack_envpack_env342,12639
-  penv_worldpenv_world343,12656
-  penv_type_tablepenv_type_table345,12720
-  penv_const_tablepenv_const_table346,12785
-  penv_oper_tablepenv_oper_table347,12850
-  penv_node_tablepenv_node_table348,12908
-and local_envlocal_env354,13203
-  lenv_node_keylenv_node_key355,13221
-  lenv_globalslenv_globals356,13250
-  lenv_typeslenv_types357,13278
-  lenv_valslenv_vals358,13325
-  lenv_operslenv_opers359,13371
-let (make_simple_node_keymake_simple_node_key363,13458
-let const_and_type_id_solverconst_and_type_id_solver379,13944
-let type_of_const_efftype_of_const_eff400,14456
-let type_of_left_efftype_of_left_eff422,15146
-let rec string_of_type_effstring_of_type_eff441,15680
-and string_of_type_eff_liststring_of_type_eff_list449,16032
-let rec string_of_const_effstring_of_const_eff455,16186
-let rec string_of_node_keystring_of_node_key477,16905
-let string_of_clockstring_of_clock511,17748
-exception Compile_node_errorCompile_node_error521,18106
-exception Global_node_errorGlobal_node_error522,18164
-let node_error_stringnode_error_string527,18400
-let print_compile_node_errorprint_compile_node_error534,18693
-let print_global_node_errorprint_global_node_error540,18847
+type id_solverid_solver116,3203
+	id2constid2const117,3222
+	id2typeid2type118,3270
+and type_efftype_eff130,3753
+    Bool_type_effBool_type_eff131,3768
+  | Int_type_effInt_type_eff132,3786
+  | Real_type_effReal_type_eff133,3803
+  | External_type_effExternal_type_eff134,3821
+  | Enum_type_effEnum_type_eff135,3858
+  | Array_type_effArray_type_eff136,3915
+  | Struct_type_effStruct_type_eff137,3956
+and slice_effslice_eff146,4439
+  se_firstse_first147,4457
+  se_lastse_last148,4475
+  se_stepse_step149,4492
+  se_widthse_width150,4509
+and left_effleft_eff164,5031
+    LeftEffVarLeftEffVar165,5046
+  | LeftEffFieldLeftEffField166,5082
+  | LeftEffArrayLeftEffArray167,5134
+  | LeftEffSliceLeftEffSlice168,5182
+and eq_effeq_eff175,5526
+  eqf_left_listeqf_left_list176,5541
+and const_effconst_eff188,6058
+    Bool_const_effBool_const_eff190,6092
+  | Int_const_effInt_const_eff191,6119
+  | Real_const_effReal_const_eff192,6144
+  | Extern_const_effExtern_const_eff194,6227
+  | Enum_const_effEnum_const_eff195,6275
+  | Struct_const_effStruct_const_eff197,6387
+  | Array_const_effArray_const_eff199,6518
+and val_effval_eff206,6878
+    ConstEffConstEff207,6892
+  | VarEffVarEff208,6918
+and var_effvar_eff215,7252
+  vf_namevf_name216,7268
+  vf_naturevf_nature217,7290
+  vf_typevf_type218,7317
+  vf_clockvf_clock219,7340
+and clock_effclock_eff221,7366
+    BaseClockEffBaseClockEff222,7383
+  | VarClockEffVarClockEff223,7400
+and oper_half_effoper_half_eff233,7924
+    FuncRefFuncRef234,7945
+  | NodeRefNodeRef235,7969
+and func_efffunc_eff241,8264
+  fe_namefe_name242,8281
+  fe_in_typesfe_in_types243,8303
+  fe_out_typesfe_out_types244,8336
+and node_half_effnode_half_eff252,8717
+and node_effnode_eff265,9333
+  nf_keynf_key266,9350
+  nf_in_typesnf_in_types267,9372
+  nf_out_typesnf_out_types268,9405
+  nf_in_formal_clocksnf_in_formal_clocks269,9438
+  nf_out_formal_clocksnf_out_formal_clocks270,9481
+and item_keyitem_key278,9845
+and node_keynode_key279,9871
+and static_arg_effstatic_arg_eff289,10336
+    ConstStaticArgEffConstStaticArgEff290,10357
+  | TypeStaticArgEffTypeStaticArgEff291,10404
+  | OperStaticArgEffOperStaticArgEff292,10450
+and oper_effoper_eff301,10968
+    PredefOperPredefOper302,10983
+  | FuncOperFuncOper303,11012
+  | NodeOperNodeOper304,11037
+and oper_aliasoper_alias313,11534
+    CheckedOperCheckedOper314,11551
+  | HalfCheckedNodeHalfCheckedNode315,11579
+type 'a chkflagedchkflaged328,12096
+    CheckingChecking329,12116
+  | CheckedChecked330,12129
+  | BadCheckedBadChecked331,12147
+world_envworld_env334,12168
+  wenv_srcwenv_src335,12182
+  wenv_mod_srcswenv_mod_srcs336,12226
+  wenv_pack_srcswenv_pack_srcs337,12299
+  wenv_pack_envswenv_pack_envs338,12373
+and pack_envpack_env344,12657
+  penv_worldpenv_world345,12674
+  penv_type_tablepenv_type_table347,12741
+  penv_const_tablepenv_const_table348,12806
+  penv_oper_tablepenv_oper_table349,12871
+  penv_node_tablepenv_node_table350,12929
+and local_envlocal_env356,13224
+  lenv_node_keylenv_node_key357,13242
+  lenv_globalslenv_globals358,13271
+  lenv_typeslenv_types359,13299
+  lenv_valslenv_vals360,13346
+  lenv_operslenv_opers361,13392
+let (make_simple_node_keymake_simple_node_key365,13479
+let const_and_type_id_solverconst_and_type_id_solver381,13965
+let type_of_const_efftype_of_const_eff402,14477
+let type_of_left_efftype_of_left_eff424,15167
+let rec string_of_type_effstring_of_type_eff443,15701
+and string_of_type_eff_liststring_of_type_eff_list451,16053
+let rec string_of_const_effstring_of_const_eff457,16207
+let rec string_of_node_keystring_of_node_key479,16926
+let string_of_clockstring_of_clock513,17769
+exception Compile_node_errorCompile_node_error523,18128
+exception Global_node_errorGlobal_node_error524,18186
+let node_error_stringnode_error_string529,18422
+let print_compile_node_errorprint_compile_node_error536,18715
+let print_global_node_errorprint_global_node_error542,18870
 
 ./dump.ml,1958
 Dump1,0
-let (op2stringop2string11,211
-let rec dump_packbodydump_packbody70,1891
-and dump_constdump_const103,2905
-and dump_const_defdump_const_def110,3155
-and dump_typedump_type121,3633
-and dump_type_defdump_type_def129,3894
-and dump_id_listdump_id_list146,4539
-and dump_field_listdump_field_list155,4883
-and dump_fielddump_field161,5109
-and dump_funcdump_func175,5552
-and dump_param_listdump_param_list184,5932
-and dump_paramdump_param193,6188
-and dump_item_info_listdump_item_info_list201,6514
-and dump_item_infodump_item_info210,6758
-and dump_static_param_listdump_static_param_list224,7151
-and dump_static_paramdump_static_param233,7410
-and dump_nodedump_node249,7983
-and dump_node_bodydump_node_body266,8632
-and dump_var_decl_listdump_var_decl_list292,9597
-and dump_line_var_decl_listdump_line_var_decl_list299,9881
-and dump_var_decldump_var_decl305,10139
-and dump_type_expdump_type_exp316,10522
-and dump_assert_listdump_assert_list331,10998
-and dump_eq_listdump_eq_list342,11334
-and dump_left_part_listdump_left_part_list352,11627
-and dump_left_partdump_left_part360,11876
-and dump_val_expdump_val_exp373,12424
-and dump_val_exp_listdump_val_exp_list382,12683
-and dump_by_pos_expdump_by_pos_exp391,13004
-and dump_leaf_expdump_leaf_exp494,17644
-and dump_unary_expdump_unary_exp497,17725
-and dump_binary_expdump_binary_exp504,17872
-and dump_ternary_expdump_ternary_exp512,18059
-and dump_nary_expdump_nary_exp524,18331
-and dump_oper_expdump_oper_exp532,18486
-and dump_static_arg_listdump_static_arg_list548,18856
-and dump_static_argdump_static_arg558,19136
-and dump_slice_infodump_slice_info576,19565
-and dump_by_name_expdump_by_name_exp588,19926
-and dump_named_parsdump_named_pars603,20285
-let dump_packinstancedump_packinstance621,20635
-let dump_packgivendump_packgiven627,20825
-let rec dump_packinfodump_packinfo641,21236
-let dump_modelinfodump_modelinfo660,21957
+let (op2stringop2string11,214
+let rec dump_packbodydump_packbody70,1897
+and dump_constdump_const103,2914
+and dump_const_defdump_const_def110,3164
+and dump_typedump_type121,3642
+and dump_type_defdump_type_def129,3903
+and dump_id_listdump_id_list146,4548
+and dump_field_listdump_field_list155,4892
+and dump_fielddump_field161,5118
+and dump_funcdump_func175,5561
+and dump_param_listdump_param_list184,5941
+and dump_paramdump_param193,6197
+and dump_item_info_listdump_item_info_list201,6523
+and dump_item_infodump_item_info210,6767
+and dump_static_param_listdump_static_param_list224,7160
+and dump_static_paramdump_static_param233,7419
+and dump_nodedump_node249,7992
+and dump_node_bodydump_node_body266,8641
+and dump_var_decl_listdump_var_decl_list292,9606
+and dump_line_var_decl_listdump_line_var_decl_list299,9890
+and dump_var_decldump_var_decl305,10148
+and dump_type_expdump_type_exp316,10531
+and dump_assert_listdump_assert_list331,11007
+and dump_eq_listdump_eq_list342,11343
+and dump_left_part_listdump_left_part_list352,11636
+and dump_left_partdump_left_part360,11885
+and dump_val_expdump_val_exp373,12433
+and dump_val_exp_listdump_val_exp_list382,12692
+and dump_by_pos_expdump_by_pos_exp391,13013
+and dump_leaf_expdump_leaf_exp494,17653
+and dump_unary_expdump_unary_exp497,17734
+and dump_binary_expdump_binary_exp504,17881
+and dump_ternary_expdump_ternary_exp512,18068
+and dump_nary_expdump_nary_exp524,18340
+and dump_oper_expdump_oper_exp532,18495
+and dump_static_arg_listdump_static_arg_list548,18865
+and dump_static_argdump_static_arg558,19145
+and dump_slice_infodump_slice_info576,19574
+and dump_by_name_expdump_by_name_exp588,19935
+and dump_named_parsdump_named_pars603,20294
+let dump_packinstancedump_packinstance621,20644
+let dump_packgivendump_packgiven627,20837
+let rec dump_packinfodump_packinfo641,21251
+let dump_modelinfodump_modelinfo660,21985
 
 ./errors.ml,346
 Errors1,0
@@ -174,30 +170,30 @@ let print_internal_errorprint_internal_error138,4982
 
 ./evalConst.ml,582
 EvalConst1,0
-exception EvalArray_errorEvalArray_error16,332
-exception EvalConst_errorEvalConst_error23,600
-let type_errortype_error28,780
-let arity_errorarity_error32,945
-let uneval_erroruneval_error37,1137
-let op_computerop_computer50,1630
-let make_slice_constmake_slice_const329,9920
-let make_array_constmake_array_const343,10329
-let make_struct_constmake_struct_const381,11398
-let rec eval_consteval_const508,15333
-and eval_array_sizeeval_array_size749,22844
-and eval_array_indexeval_array_index782,23777
-and eval_array_sliceeval_array_slice820,24971
-
-./evalType.ml,80
+exception EvalArray_errorEvalArray_error14,318
+exception EvalConst_errorEvalConst_error21,586
+let type_errortype_error26,766
+let arity_errorarity_error30,931
+let uneval_erroruneval_error35,1123
+let op_computerop_computer48,1616
+let make_slice_constmake_slice_const327,9906
+let make_array_constmake_array_const341,10315
+let make_struct_constmake_struct_const379,11384
+let rec eval_consteval_const506,15319
+and eval_array_sizeeval_array_size747,22830
+and eval_array_indexeval_array_index780,23763
+and eval_array_sliceeval_array_slice818,24957
+
+./evalType.ml,79
 EvalType1,0
-exception EvalType_errorEvalType_error11,155
-let rec ff26,511
+exception EvalType_errorEvalType_error9,144
+let rec ff24,500
 
-./expandPack.ml,38
+./expandPack.ml,37
 ExpandPack1,0
-let doitdoit35,1161
+let (doitdoit8,131
 
-./ident.ml,837
+./ident.ml,876
 Ident1,0
 tt4,74
 type pack_namepack_name5,90
@@ -213,339 +209,344 @@ let (long_to_stringlong_to_string28,510
 let (make_longmake_long31,569
 let dft_pack_namedft_pack_name34,636
 let (set_dft_pack_nameset_dft_pack_name36,710
-type idrefidref40,794
-      id_packid_pack42,814
-      id_idid_id43,845
-let (pack_of_idrefpack_of_idref46,874
-let (name_of_idrefname_of_idref49,948
-let idref_of_stringidref_of_string54,1038
-let (long_of_stringlong_of_string61,1277
-let string_of_idrefstring_of_idref68,1504
-let (long_of_idreflong_of_idref74,1609
-
-./lazyCompiler.ml,914
+let (to_pack_nameto_pack_name40,794
+type idrefidref50,853
+      id_packid_pack52,873
+      id_idid_id53,904
+let (pack_of_idrefpack_of_idref56,933
+let (name_of_idrefname_of_idref59,1007
+let idref_of_stringidref_of_string64,1089
+let (long_of_stringlong_of_string71,1328
+let string_of_idrefstring_of_idref78,1555
+let (long_of_idreflong_of_idref84,1660
+
+./lazyCompiler.ml,917
 LazyCompiler1,0
-type 'a chkflagedchkflaged22,314
-   CheckingChecking23,334
-|  CheckedChecked24,346
-|  BadCheckedBadChecked25,363
-exception Recursion_errorRecursion_error31,533
-exception BadCheckRef_errorBadCheckRef_error34,636
-let recursion_errorrecursion_error37,666
-tt49,979
-  src_tabsrc_tab50,990
-  typestypes52,1035
-  constsconsts53,1104
-  nodesnodes54,1174
-  prov_typesprov_types56,1262
-  prov_constsprov_consts57,1336
-  prov_nodesprov_nodes58,1411
-let createcreate61,1483
-let rec do_typedo_type91,2245
-    do_prov_typedo_prov_type119,3198
-      and check_type_defcheck_type_def180,5109
-    do_constdo_const266,7828
-    do_prov_constdo_prov_const296,8853
-    check_const_defcheck_const_def354,10673
-    solve_type_idrefsolve_type_idref414,12602
-    solve_const_idrefsolve_const_idref443,13490
-let do_nodedo_node476,14439
-let test_typestest_types483,14646
-
-./lxm.ml,599
+type 'a chkflagedchkflaged21,302
+    CheckingChecking22,322
+  | CheckedChecked23,335
+  | BadCheckedBadChecked24,353
+exception Recursion_errorRecursion_error30,524
+exception BadCheckRef_errorBadCheckRef_error33,627
+let recursion_errorrecursion_error36,657
+tt48,970
+  src_tabsrc_tab49,981
+  typestypes51,1026
+  constsconsts52,1095
+  nodesnodes53,1165
+  prov_typesprov_types55,1253
+  prov_constsprov_consts56,1327
+  prov_nodesprov_nodes57,1402
+let createcreate60,1474
+let rec do_typedo_type90,2236
+    do_prov_typedo_prov_type118,3189
+      and check_type_defcheck_type_def179,5099
+    do_constdo_const264,7801
+    do_prov_constdo_prov_const294,8826
+    check_const_defcheck_const_def352,10646
+    solve_type_idrefsolve_type_idref412,12578
+    solve_const_idrefsolve_const_idref441,13466
+let do_nodedo_node474,14415
+let test_typestest_types481,14622
+
+./lxm.ml,598
 Lxm1,0
-let line_numline_num9,125
-let line_start_posline_start_pos10,146
-let new_linenew_line12,174
-tt19,317
-	_str_str20,328
-	_line_line21,345
-	_cstart_cstart22,360
-	_cend_cend23,377
-let strstr26,393
-let idid27,414
-let pack_namepack_name28,450
-let lineline29,503
-let cstartcstart30,526
-let cendcend31,553
-let detailsdetails34,603
-let positionposition38,715
-type 'a srcflagedsrcflaged44,862
-   srcsrc45,884
-   itit46,897
-let (flagitflagit49,950
-let dummydummy53,1046
-let last_lexemelast_lexeme55,1116
-let makemake57,1146
-let last_madelast_made67,1446
-
-./main.ml,583
+let line_numline_num7,112
+let line_start_posline_start_pos8,133
+let new_linenew_line10,161
+tt17,304
+	_str_str18,315
+	_line_line19,332
+	_cstart_cstart20,347
+	_cend_cend21,364
+let strstr24,380
+let idid25,401
+let pack_namepack_name26,437
+let lineline27,490
+let cstartcstart28,513
+let cendcend29,540
+let detailsdetails32,590
+let positionposition36,702
+type 'a srcflagedsrcflaged42,849
+   srcsrc43,871
+   itit44,884
+let (flagitflagit47,937
+let dummydummy51,1033
+let last_lexemelast_lexeme53,1103
+let makemake55,1133
+let last_madelast_made65,1433
+
+./main.ml,582
 Main1,0
-let usage_msgusage_msg70,757
-type lpp_argslpp_args76,1007
-  mutable infileinfile77,1025
-  mutable main_nodemain_node78,1053
-  mutable runmoderunmode79,1084
-let rec _LPP_ARGS_LPP_ARGS81,1115
-and set_infileset_infile87,1293
-and set_run_modeset_run_mode98,1545
-and print_versionprint_version101,1617
-and arg_listarg_list104,1699
-    parse_argsparse_args125,2358
-let test_lextest_lex133,2552
-let lus_loadlus_load146,2875
-let dump_bodydump_body151,2968
-let dump_nsdump_ns157,3145
-let get_source_listget_source_list175,3629
-let mainmain188,3959
-
-./parserUtils.ml,120
+let usage_msgusage_msg51,1018
+type lpp_argslpp_args57,1268
+  mutable infileinfile58,1286
+  mutable main_nodemain_node59,1314
+  mutable runmoderunmode60,1345
+let rec _LPP_ARGS_LPP_ARGS62,1376
+and set_infileset_infile68,1554
+and set_run_modeset_run_mode79,1806
+and print_versionprint_version82,1878
+and arg_listarg_list85,1960
+    parse_argsparse_args106,2619
+let test_lextest_lex114,2813
+let lus_loadlus_load127,3136
+let dump_bodydump_body132,3229
+let dump_nsdump_ns138,3409
+let get_source_listget_source_list156,3896
+let mainmain169,4239
+
+./parserUtils.ml,124
 ParserUtils1,0
-let flat_flaged_listflat_flaged_list38,944
-let flat_twice_flaged_listflat_twice_flaged_list76,1934
-
-./srcTab.ml,870
-SrcTab1,0
-type pack_mngpack_mng47,1402
-  pm_lxmpm_lxm49,1445
-  pm_raw_srcpm_raw_src51,1486
-  pm_actual_srcpm_actual_src53,1546
-  pm_user_itemspm_user_items56,1657
-  pm_body_stabpm_body_stab58,1787
-  pm_provide_stabpm_provide_stab60,1877
-tt75,2354
-  st_listst_list77,2406
-  st_raw_mod_tabst_raw_mod_tab78,2447
-  st_raw_pack_tabst_raw_pack_tab79,2511
-  st_pack_mng_tabst_pack_mng_tab81,2619
-let pack_listpack_list86,2687
-let pack_body_envpack_body_env92,2806
-let pack_prov_envpack_prov_env98,2933
-let init_user_itemsinit_user_items108,3273
-let create_pack_mngcreate_pack_mng183,5641
-let rec createcreate219,6724
-    init_raw_tabsinit_raw_tabs251,7738
-    init_pack_mng_stabsinit_pack_mng_stabs290,8981
-let find_typefind_type379,11530
-let find_constfind_const383,11645
-let find_operfind_oper387,11761
-let dumpdump395,11894
-
-./symbolTab.ml,661
+let flat_flagged_listflat_flagged_list35,932
+let flat_twice_flagged_listflat_twice_flagged_list73,1926
+
+./symbolTab.ml,659
 SymbolTab1,0
-type 'a hereflagedhereflaged10,82
-  HereHere11,103
-| NotHereNotHere12,116
-tt14,141
-  st_constsst_consts15,152
-  st_typesst_types16,224
-  st_opersst_opers17,294
-let createcreate21,415
-let find_typefind_type27,536
-let find_constfind_const35,730
-let find_operfind_oper43,925
-let add_import_constadd_import_const52,1147
-let add_import_typeadd_import_type56,1269
-let add_import_operadd_import_oper60,1389
-let add_constadd_const64,1509
-let add_typeadd_type68,1628
-let add_operadd_oper85,2159
-let iter_typesiter_types89,2270
-let iter_constsiter_consts90,2326
-let iter_opersiter_opers91,2384
-let dumpdump93,2441
-
-./syntaxe.ml,6149
-Syntaxe1,0
-type 'a errorerror16,415
-    OkOk17,433
-  | ErrorError18,446
-type parse_treeparse_tree24,600
-    PRPackBodyPRPackBody25,619
-  | PRPack_or_modelsPRPack_or_models26,646
-  pack_or_modelpack_or_model28,693
-    NSPackNSPack29,711
-  | NSModelNSModel30,748
-  model_infomodel_info32,790
-    mo_namemo_name33,807
-    mo_usesmo_uses34,840
-    mo_needsmo_needs35,880
-    mo_providesmo_provides37,969
-    mo_bodymo_body38,1020
-and pack_infopack_info40,1049
-    pa_namepa_name41,1067
-    pa_defpa_def42,1091
-  pack_defpack_def45,1123
-    PackGivenPackGiven46,1137
-  | PackInstancePackInstance47,1165
-  pack_givenpack_given49,1203
-    pg_usespg_uses50,1221
-    pg_providespg_provides52,1313
-    pg_bodypg_body53,1364
-  pack_instancepack_instance56,1397
-    pi_modelpi_model57,1417
-    pi_argspi_args58,1442
-  packbodypackbody66,1667
-    pk_const_tablepk_const_table67,1682
-    pk_type_tablepk_type_table68,1748
-    pk_oper_tablepk_oper_table69,1814
-    pk_def_listpk_def_list70,1880
-  item_identitem_ident73,1928
-    ConstItemConstItem77,2035
-  | TypeItemTypeItem78,2060
-  | OperItemOperItem79,2085
-  item_infoitem_info81,2114
-    ConstInfoConstInfo82,2128
-  | TypeInfoTypeInfo83,2156
-  | OperInfoOperInfo84,2183
-  const_infoconst_info89,2380
-    ExternalConstExternalConst90,2396
-  | EnumConstEnumConst91,2439
-  | DefinedConstDefinedConst92,2482
-  type_infotype_info97,2707
-    ExternalTypeExternalType98,2721
-  | AliasedTypeAliasedType99,2751
-  | EnumTypeEnumType100,2792
-  | StructTypeStructType102,2907
-  struct_type_infostruct_type_info112,3396
-    st_namest_name113,3419
-    st_flistst_flist114,3443
-    st_ftablest_ftable115,3473
-and field_infofield_info117,3538
-  fd_namefd_name118,3557
-  fd_typefd_type119,3580
-  fd_valuefd_value120,3604
-  type_exptype_exp128,3966
-  type_exp_coretype_exp_core130,4007
-    Bool_type_expBool_type_exp131,4025
-  | Int_type_expInt_type_exp132,4043
-  | Real_type_expReal_type_exp133,4060
-  | Named_type_expNamed_type_exp134,4078
-  | Array_type_expArray_type_exp135,4114
-  oper_infooper_info141,4380
-    NodeNode142,4394
-  | FuncFunc143,4417
-  func_infofunc_info148,4607
-    fn_namefn_name149,4623
-    fn_inparsfn_inpars150,4650
-    fn_outparsfn_outpars151,4702
-  node_infonode_info158,4966
-    ni_nameni_name159,4982
-    ni_staticlistni_staticlist160,5012
-    ni_valueni_value161,5062
-and node_profilenode_profile163,5090
-and node_defnode_def164,5161
-    NodeExternNodeExtern165,5176
-  | NodeBodyNodeBody166,5207
-  | NodeAliasNodeAlias167,5234
-and node_bodynode_body174,5604
-  nbdy_inlistnbdy_inlist175,5622
-  nbdy_outlistnbdy_outlist176,5656
-  nbdy_loclistnbdy_loclist177,5690
-  nbdy_vartablenbdy_vartable178,5724
-  nbdy_assertsnbdy_asserts179,5760
-  nbdy_eqsnbdy_eqs180,5806
-and var_info_tablevar_info_table182,5852
-and static_paramstatic_param183,5914
-    StaticParamTypeStaticParamType184,5933
-  | StaticParamConstStaticParamConst185,5965
-  | StaticParamNodeStaticParamNode186,6010
-and var_infovar_info187,6096
-  va_natureva_nature188,6113
-  va_nameva_name189,6139
-  va_typeva_type190,6162
-  va_clockva_clock191,6186
-and var_naturevar_nature193,6213
-    VarInputVarInput194,6230
-  | VarOutputVarOutput195,6243
-  | VarLocalVarLocal196,6257
-and eq_infoeq_info197,6270
-  eq_lefteq_left198,6286
-  eq_righteq_right199,6315
-and clock_expclock_exp202,6397
-    BaseClockBaseClock203,6413
-  | NamedClockNamedClock204,6427
-and left_partleft_part205,6463
-    LeftVarLeftVar207,6534
-  | LeftFieldLeftField208,6569
-  | LeftArrayLeftArray209,6620
-  | LeftSliceLeftSlice210,6673
-and slice_infoslice_info211,6727
-  si_firstsi_first212,6746
-  si_lastsi_last213,6769
-  si_stepsi_step214,6792
-and val_expval_exp227,7336
-    CallByPosCallByPos228,7350
-  | CallByNameCallByName229,7408
-and by_pos_opby_pos_op232,7533
-    NULL_expNULL_exp234,7568
-  | TRUE_nTRUE_n235,7581
-  | FALSE_nFALSE_n236,7592
-  | ICONST_nICONST_n237,7604
-  | RCONST_nRCONST_n238,7628
-  | IDENT_nIDENT_n239,7652
-  | NOT_nNOT_n241,7697
-  | UMINUS_nUMINUS_n242,7707
-  | PRE_nPRE_n243,7720
-  | CURRENT_nCURRENT_n244,7730
-  | REAL2INT_nREAL2INT_n245,7744
-  | INT2REAL_nINT2REAL_n246,7759
-  | ARROW_nARROW_n248,7795
-  | FBY_nFBY_n249,7807
-  | WHEN_nWHEN_n250,7817
-  | AND_nAND_n251,7828
-  | OR_nOR_n252,7838
-  | XOR_nXOR_n253,7847
-  | IMPL_nIMPL_n254,7857
-  | EQ_nEQ_n255,7868
-  | NEQ_nNEQ_n256,7877
-  | LT_nLT_n257,7887
-  | LTE_nLTE_n258,7896
-  | GT_nGT_n259,7906
-  | GTE_nGTE_n260,7915
-  | DIV_nDIV_n261,7925
-  | MOD_nMOD_n262,7935
-  | MINUS_nMINUS_n263,7945
-  | PLUS_nPLUS_n264,7957
-  | SLASH_nSLASH_n265,7968
-  | TIMES_nTIMES_n266,7980
-  | POWER_nPOWER_n267,7992
-  | HAT_nHAT_n268,8004
-  | CONCAT_nCONCAT_n269,8014
-  | IF_nIF_n271,8049
-  | WITH_nWITH_n272,8058
-  | NOR_nNOR_n274,8089
-  | DIESE_nDIESE_n275,8099
-  | TUPLE_nTUPLE_n276,8111
-  | ARRAY_nARRAY_n277,8123
-  | PROJ_nPROJ_n283,8394
-  | CALL_nCALL_n285,8459
-  | ARRAY_ACCES_nARRAY_ACCES_n287,8534
-  | ARRAY_SLICE_nARRAY_SLICE_n288,8563
-  | STRUCT_ACCESS_nSTRUCT_ACCESS_n290,8639
-and by_name_opby_name_op296,8792
-    BYNAME_CALL_nBYNAME_CALL_n297,8809
-  | STRUCT_EXP_nSTRUCT_EXP_n299,8874
-and oper_expoper_exp301,8932
-    CallPreDefCallPreDef302,8947
-  | CallUsrDefCallUsrDef303,8975
-and static_argstatic_arg311,9241
-    StaticArgIdentStaticArgIdent312,9258
-  | StaticArgConstStaticArgConst313,9292
-  | StaticArgTypeStaticArgType314,9322
-  | StaticArgNodeStaticArgNode315,9353
-let give_pack_this_namegive_pack_this_name322,9523
-let leafexpleafexp337,9832
-let unexpunexp341,9904
-let binexpbinexp345,9979
-let ternexpternexp349,10063
-let naryexpnaryexp353,10155
-let bynameexpbynameexp357,10234
-let make_packbodymake_packbody372,10753
-let add_infoadd_info391,11321
-let lexeme_of_val_explexeme_of_val_exp423,12257
-let rec lexeme_of_left_partlexeme_of_left_part427,12387
-let lexeme_of_pack_or_modellexeme_of_pack_or_model434,12599
+type 'a hereflagedhereflaged9,70
+  HereHere10,91
+| NotHereNotHere11,104
+tt13,129
+  st_constsst_consts14,140
+  st_typesst_types15,212
+  st_opersst_opers16,282
+let createcreate20,403
+let find_typefind_type26,524
+let find_constfind_const34,718
+let find_operfind_oper42,913
+let add_import_constadd_import_const51,1135
+let add_import_typeadd_import_type55,1257
+let add_import_operadd_import_oper59,1377
+let add_constadd_const63,1497
+let add_typeadd_type67,1616
+let add_operadd_oper84,2147
+let iter_typesiter_types88,2258
+let iter_constsiter_consts89,2314
+let iter_opersiter_opers90,2372
+let dumpdump92,2429
+
+./syntaxTab.ml,873
+SyntaxTab1,0
+type pack_mngpack_mng46,1419
+  pm_lxmpm_lxm48,1462
+  pm_raw_srcpm_raw_src50,1503
+  pm_actual_srcpm_actual_src52,1566
+  pm_user_itemspm_user_items55,1680
+  pm_body_stabpm_body_stab57,1813
+  pm_provide_stabpm_provide_stab59,1903
+tt74,2380
+  st_listst_list76,2432
+  st_raw_mod_tabst_raw_mod_tab77,2476
+  st_raw_pack_tabst_raw_pack_tab78,2540
+  st_pack_mng_tabst_pack_mng_tab80,2648
+let pack_listpack_list85,2716
+let pack_body_envpack_body_env90,2823
+let pack_prov_envpack_prov_env95,2945
+let init_user_itemsinit_user_items104,3279
+let create_pack_mngcreate_pack_mng187,5699
+let rec createcreate224,6833
+    init_raw_tabsinit_raw_tabs256,7850
+    init_pack_mng_stabsinit_pack_mng_stabs292,9065
+let find_typefind_type374,11539
+let find_constfind_const378,11652
+let find_operfind_oper382,11766
+let dumpdump389,11895
+
+./syntaxTabUtils.ml,51
+SyntaxTabUtils1,0
+let put_in_tabput_in_tab7,85
+
+./syntaxTree.ml,6128
+SyntaxTree1,0
+type 'a errorerror15,397
+    OkOk16,415
+  | ErrorError17,428
+tt23,582
+    PRPackBodyPRPackBody24,592
+  | PRPack_or_modelsPRPack_or_models25,619
+  pack_or_modelpack_or_model27,666
+    NSPackNSPack28,684
+  | NSModelNSModel29,721
+  model_infomodel_info31,763
+    mo_namemo_name32,780
+    mo_usesmo_uses33,813
+    mo_needsmo_needs34,861
+    mo_providesmo_provides36,950
+    mo_bodymo_body37,1001
+and pack_infopack_info39,1030
+    pa_namepa_name40,1048
+    pa_defpa_def41,1080
+  pack_defpack_def44,1112
+    PackGivenPackGiven45,1126
+  | PackInstancePackInstance46,1154
+  pack_givenpack_given48,1192
+    pg_usespg_uses49,1210
+    pg_providespg_provides51,1302
+    pg_bodypg_body52,1353
+  pack_instancepack_instance55,1386
+    pi_modelpi_model56,1406
+    pi_argspi_args57,1431
+  packbodypackbody65,1656
+    pk_const_tablepk_const_table66,1671
+    pk_type_tablepk_type_table67,1737
+    pk_oper_tablepk_oper_table68,1803
+    pk_def_listpk_def_list69,1869
+  item_identitem_ident72,1917
+    ConstItemConstItem76,2024
+  | TypeItemTypeItem77,2049
+  | OperItemOperItem78,2074
+  item_infoitem_info80,2103
+    ConstInfoConstInfo81,2117
+  | TypeInfoTypeInfo82,2145
+  | OperInfoOperInfo83,2172
+  const_infoconst_info88,2369
+    ExternalConstExternalConst89,2385
+  | EnumConstEnumConst90,2428
+  | DefinedConstDefinedConst91,2471
+  type_infotype_info96,2696
+    ExternalTypeExternalType97,2710
+  | AliasedTypeAliasedType98,2740
+  | EnumTypeEnumType99,2781
+  | StructTypeStructType101,2896
+  struct_type_infostruct_type_info111,3385
+    st_namest_name112,3408
+    st_flistst_flist113,3432
+    st_ftablest_ftable114,3462
+and field_infofield_info116,3527
+  fd_namefd_name117,3546
+  fd_typefd_type118,3569
+  fd_valuefd_value119,3593
+  type_exptype_exp127,3955
+  type_exp_coretype_exp_core129,3996
+    Bool_type_expBool_type_exp130,4014
+  | Int_type_expInt_type_exp131,4032
+  | Real_type_expReal_type_exp132,4049
+  | Named_type_expNamed_type_exp133,4067
+  | Array_type_expArray_type_exp134,4103
+  oper_infooper_info140,4369
+    NodeNode141,4383
+  | FuncFunc142,4406
+  func_infofunc_info147,4596
+    fn_namefn_name148,4612
+    fn_inparsfn_inpars149,4639
+    fn_outparsfn_outpars150,4691
+  node_infonode_info157,4955
+    ni_nameni_name158,4971
+    ni_staticlistni_staticlist159,5001
+    ni_valueni_value160,5051
+and node_profilenode_profile162,5079
+and node_defnode_def163,5150
+    NodeExternNodeExtern164,5165
+  | NodeBodyNodeBody165,5196
+  | NodeAliasNodeAlias166,5223
+and node_bodynode_body173,5593
+  nbdy_inlistnbdy_inlist174,5611
+  nbdy_outlistnbdy_outlist175,5645
+  nbdy_loclistnbdy_loclist176,5679
+  nbdy_vartablenbdy_vartable177,5713
+  nbdy_assertsnbdy_asserts178,5749
+  nbdy_eqsnbdy_eqs179,5795
+and var_info_tablevar_info_table181,5841
+and static_paramstatic_param182,5903
+    StaticParamTypeStaticParamType183,5922
+  | StaticParamConstStaticParamConst184,5954
+  | StaticParamNodeStaticParamNode185,5999
+and var_infovar_info186,6085
+  va_natureva_nature187,6102
+  va_nameva_name188,6128
+  va_typeva_type189,6151
+  va_clockva_clock190,6175
+and var_naturevar_nature192,6202
+    VarInputVarInput193,6219
+  | VarOutputVarOutput194,6232
+  | VarLocalVarLocal195,6246
+and eq_infoeq_info196,6259
+  eq_lefteq_left197,6275
+  eq_righteq_right198,6304
+and clock_expclock_exp201,6386
+    BaseClockBaseClock202,6402
+  | NamedClockNamedClock203,6416
+and left_partleft_part204,6452
+    LeftVarLeftVar206,6523
+  | LeftFieldLeftField207,6558
+  | LeftArrayLeftArray208,6609
+  | LeftSliceLeftSlice209,6662
+and slice_infoslice_info210,6716
+  si_firstsi_first211,6735
+  si_lastsi_last212,6758
+  si_stepsi_step213,6781
+and val_expval_exp226,7325
+    CallByPosCallByPos227,7339
+  | CallByNameCallByName228,7397
+and by_pos_opby_pos_op231,7522
+    NULL_expNULL_exp233,7557
+  | TRUE_nTRUE_n234,7570
+  | FALSE_nFALSE_n235,7581
+  | ICONST_nICONST_n236,7593
+  | RCONST_nRCONST_n237,7617
+  | IDENT_nIDENT_n238,7641
+  | NOT_nNOT_n240,7686
+  | UMINUS_nUMINUS_n241,7696
+  | PRE_nPRE_n242,7709
+  | CURRENT_nCURRENT_n243,7719
+  | REAL2INT_nREAL2INT_n244,7733
+  | INT2REAL_nINT2REAL_n245,7748
+  | ARROW_nARROW_n247,7784
+  | FBY_nFBY_n248,7796
+  | WHEN_nWHEN_n249,7806
+  | AND_nAND_n250,7817
+  | OR_nOR_n251,7827
+  | XOR_nXOR_n252,7836
+  | IMPL_nIMPL_n253,7846
+  | EQ_nEQ_n254,7857
+  | NEQ_nNEQ_n255,7866
+  | LT_nLT_n256,7876
+  | LTE_nLTE_n257,7885
+  | GT_nGT_n258,7895
+  | GTE_nGTE_n259,7904
+  | DIV_nDIV_n260,7914
+  | MOD_nMOD_n261,7924
+  | MINUS_nMINUS_n262,7934
+  | PLUS_nPLUS_n263,7946
+  | SLASH_nSLASH_n264,7957
+  | TIMES_nTIMES_n265,7969
+  | POWER_nPOWER_n266,7981
+  | HAT_nHAT_n267,7993
+  | CONCAT_nCONCAT_n268,8003
+  | IF_nIF_n270,8038
+  | WITH_nWITH_n271,8047
+  | NOR_nNOR_n273,8078
+  | DIESE_nDIESE_n274,8088
+  | TUPLE_nTUPLE_n275,8100
+  | ARRAY_nARRAY_n276,8112
+  | PROJ_nPROJ_n282,8383
+  | CALL_nCALL_n284,8448
+  | ARRAY_ACCES_nARRAY_ACCES_n286,8523
+  | ARRAY_SLICE_nARRAY_SLICE_n287,8552
+  | STRUCT_ACCESS_nSTRUCT_ACCESS_n289,8628
+and by_name_opby_name_op295,8781
+    BYNAME_CALL_nBYNAME_CALL_n296,8798
+  | STRUCT_EXP_nSTRUCT_EXP_n298,8863
+and oper_expoper_exp300,8921
+    CallPreDefCallPreDef301,8936
+  | CallUsrDefCallUsrDef302,8964
+and static_argstatic_arg310,9230
+    StaticArgIdentStaticArgIdent311,9247
+  | StaticArgConstStaticArgConst312,9281
+  | StaticArgTypeStaticArgType313,9311
+  | StaticArgNodeStaticArgNode314,9342
+let give_pack_this_namegive_pack_this_name321,9512
+let leafexpleafexp336,9821
+let unexpunexp340,9893
+let binexpbinexp344,9968
+let ternexpternexp348,10052
+let naryexpnaryexp352,10144
+let bynameexpbynameexp356,10223
+let make_packbodymake_packbody371,10742
+let add_infoadd_info390,11310
+let lexeme_of_val_explexeme_of_val_exp422,12246
+let rec lexeme_of_left_partlexeme_of_left_part426,12376
+let lexeme_of_pack_or_modellexeme_of_pack_or_model433,12588
 
 ./verbose.ml,113
 Verbose1,0
diff --git a/src/compUtils.ml b/src/compUtils.ml
deleted file mode 100644
index a6958453..00000000
--- a/src/compUtils.ml
+++ /dev/null
@@ -1,24 +0,0 @@
-(** Time-stamp: <modified the 14/12/2007 (at 17:02) by Erwan Jahier> *)
-
-
-open Lxm
-
-
-let put_in_tab 
-    (what: string)
-    (tab : ('a, 'b Lxm.srcflaged) Hashtbl.t)
-    (key : 'a)
-    (value : 'b Lxm.srcflaged) =
-  (
-    try (
-      let plxm = (Hashtbl.find tab key).src in
-      let msg = Printf.sprintf "%s already declared in %s"
-	what (Lxm.position plxm) in
-	raise (Errors.Compile_error (value.src, msg))
-    ) with Not_found -> (
-      Hashtbl.add tab key value
-    )
-  )
-
-
-
diff --git a/src/compile.ml b/src/compile.ml
index 25eb5e19..6663b6b4 100644
--- a/src/compile.ml
+++ b/src/compile.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 17/12/2007 (at 17:58) by Erwan Jahier> *)
+(** Time-stamp: <modified the 18/12/2007 (at 11:10) by Erwan Jahier> *)
 
 (*----------------------------------------------------------------------
 	module : Compile
@@ -37,9 +37,9 @@ let rec first_pack_in = (
 
 let doit (srclist : SyntaxTree.pack_or_model list) (mnode : Ident.idref) = (
   (* init de la table source *)
-  let srctab = SrcTab.create srclist in
+  let srctab = SyntaxTab.create srclist in
 
-    SrcTab.dump srctab;
+    SyntaxTab.dump srctab;
 
     (* le pack par défaut est le premier de la liste ... *)
     Ident.set_dft_pack_name (first_pack_in srclist);
diff --git a/src/expandPack.ml b/src/expandPack.ml
index 0e21bb64..c9588af8 100644
--- a/src/expandPack.ml
+++ b/src/expandPack.ml
@@ -1,68 +1,70 @@
+(** Time-stamp: <modified the 18/12/2007 (at 11:06) by Erwan Jahier> *)
 
 open Lxm
 open SyntaxTree
 open Errors
+open SyntaxTabUtils
 
-let doit mtab pdata = (
-  match (pdata.it.pa_def) with
-      PackGiven pg -> (
-	(* on garde tel-quel ... *)
-	pg
-      ) 
-    | PackInstance pi -> (
-	(* recherche du modèle *)
-	let mi = try (
-	  Hashtbl.find mtab pi.pi_model 
-	) with Not_found -> (
-	  let msg = Printf.sprintf "bad pack instance: model %s undeclared"
-	    (Ident.to_string pi.pi_model)
-	  in
-	    raise ( Compile_error (pdata.src, msg))
-	) in
-	  (*-----------INIT-----------------------------------*)
-	  (* On part du packbody du modèle, dont on duplique les tables :*)
-	let ctab = Hashtbl.copy mi.it.mo_body.pk_const_table in
-	let ttab = Hashtbl.copy mi.it.mo_body.pk_type_table in
-	let otab = Hashtbl.copy mi.it.mo_body.pk_oper_table in
-	  (* liste des nouveaux define ... *)
-	let newdefs = ref [] in
-	  (* liste des nouveaux provides ... *)
-	let newprov = ref [] in
-	  (* On met en correspondance les pi_args avec les mo_needs *)
-	let args = pi.pi_args in
-	let pars = mi.it.mo_needs in
-	  (*--------------------------------------------------*)
-	  (* la fonction qui traite un couple ... *)
-	let check_arg p a = (
-	  (* message d'erreur standard *)
-	  let instance_error () = (
-	    let msg = Printf.sprintf
-	      "bad pack instance: uncompatible arg passed to %s"
-	      (Lxm.details p.src)
+let (doit:
+      (Ident.t, SyntaxTree.model_info Lxm.srcflaged) Hashtbl.t ->
+      (SyntaxTree.pack_info  Lxm.srcflaged) ->
+      SyntaxTree.pack_given) =
+  fun mtab pdata -> (
+    match (pdata.it.pa_def) with
+	PackGiven pg -> pg
+	  (* on garde tel-quel ... *)
+	  
+      | PackInstance pi -> (
+	  (* recherche du modèle *)
+	  let mi = try Hashtbl.find mtab pi.pi_model 
+	  with Not_found ->
+	    let msg = Printf.sprintf "bad pack instance: model %s undeclared"
+	      (Ident.to_string pi.pi_model)
 	    in
-	      raise (Compile_error (a.src, msg))
-	  ) in
-	    (* on a soit un ident, à checker plus tard, 
-	       soit une expression de la bonne nature *)
-	    match (p.it) with
-		StaticParamType s -> (
-		  let te = match (a.it) with
-		      StaticArgIdent idr -> (
-			Lxm.flagit (Named_type_exp idr) a.src
-		      ) 
-		    |
-			StaticArgType x -> x
-		    | _ -> instance_error ()
-		  in
-		  let ti = AliasedType (s, te) in
-		  let x = Lxm.flagit (TypeInfo ti) p.src in
-		    newprov := x::!newprov ;
-		    let y = Lxm.flagit ti p.src in
-		      CompUtils.put_in_tab "type" ttab s y ;
-		      newdefs := (TypeItem s)::!newdefs
-		) 
-	      |
-		  StaticParamConst (s,te) -> (
+	      raise ( Compile_error (pdata.src, msg))
+	  in
+	    (*-----------INIT-----------------------------------*)
+	    (* On part du packbody du modèle, dont on duplique les tables :*)
+	  let ctab = Hashtbl.copy mi.it.mo_body.pk_const_table in
+	  let ttab = Hashtbl.copy mi.it.mo_body.pk_type_table in
+	  let otab = Hashtbl.copy mi.it.mo_body.pk_oper_table in
+	    (* liste des nouveaux define ... *)
+	  let newdefs = ref [] in
+	    (* liste des nouveaux provides ... *)
+	  let newprov = ref [] in
+	    (* On met en correspondance les pi_args avec les mo_needs *)
+	  let args = pi.pi_args in
+	  let pars = mi.it.mo_needs in
+	    (*--------------------------------------------------*)
+	    (* la fonction qui traite un couple ... *)
+	  let check_arg p a = (
+	    (* message d'erreur standard *)
+	    let instance_error () = (
+	      let msg = Printf.sprintf
+		"bad pack instance: uncompatible arg passed to %s"
+		(Lxm.details p.src)
+	      in
+		raise (Compile_error (a.src, msg))
+	    ) in
+	      (* on a soit un ident, à checker plus tard, 
+		 soit une expression de la bonne nature *)
+	      match (p.it) with
+		| StaticParamType s -> (
+		    let te = match (a.it) with
+			StaticArgIdent idr -> (
+			  Lxm.flagit (Named_type_exp idr) a.src
+			) 
+		      | StaticArgType x -> x
+		      | _ -> instance_error ()
+		    in
+		    let ti = AliasedType (s, te) in
+		    let x = Lxm.flagit (TypeInfo ti) p.src in
+		      newprov := x::!newprov ;
+		      let y = Lxm.flagit ti p.src in
+			put_in_tab "type" ttab s y ;
+			newdefs := (TypeItem s)::!newdefs
+		  ) 
+		| StaticParamConst (s,te) -> (
 		    let ce = match (a.it) with
 			StaticArgIdent idr -> (
 			  SyntaxTree.leafexp a.src (IDENT_n idr) 
@@ -75,11 +77,10 @@ let doit mtab pdata = (
 		    let x = Lxm.flagit (ConstInfo ci) p.src in
 		      newprov := x::!newprov ;
 		      let y = Lxm.flagit ci p.src in
-			CompUtils.put_in_tab "const" ctab s y ;
+			put_in_tab "const" ctab s y ;
 			newdefs := (ConstItem s)::!newdefs
 		  ) 
-	      |
-		  StaticParamNode (s,inl,outl) -> (
+		| StaticParamNode (s,inl,outl) -> (
 		    let ne = match (a.it) with
 			StaticArgIdent idr -> (
 			  Lxm.flagit (CallUsrDef (idr,[])) a.src
@@ -96,45 +97,45 @@ let doit mtab pdata = (
 		    let x = Lxm.flagit (OperInfo ni) p.src in
 		      newprov := x::!newprov ;
 		      let y = Lxm.flagit ni p.src in
-			CompUtils.put_in_tab "node" otab s y ;
+			put_in_tab "node" otab s y ;
 			newdefs := (OperItem s)::!newdefs
 		  ) 
-	) in
-	  try (
-	    (*------------TRAITEMENT---------------------------------*)
-	    List.iter2 check_arg pars args ;
-	    (* on fabrique un pack_given valide avec les infos récoltées *)	
-	    let body = {
-	      pk_const_table = ctab ;
-	      pk_type_table = ttab ;
-	      pk_oper_table = otab ;
-	      pk_def_list = List.append
-		(mi.it.mo_body.pk_def_list) 
-		(List.rev !newdefs)
-	    } in
-	      (* les provides du modèle + les nouveaux de newprov *)
-	      (* SAUF SI ON EXPORTE DEJA TOUT !                   *)
-	    let prov = match (mi.it.mo_provides) with
-		Some l -> (
-		  Some (List.append l (List.rev !newprov))
-		) 
-	      |  None -> None
-	    in
-	    let pg = {
-	      (* les uses du modèle ... *)
-	      pg_uses = mi.it.mo_uses ;
-	      pg_provides = prov ;
-	      pg_body = body ;
-	    } in
-	      pg
-	  ) with Invalid_argument _ -> (
-	    let msg = Printf.sprintf
-	      "bad pack instance: %d args provided while model %s has %d params"
-	      (List.length args)
-	      (Ident.to_string pi.pi_model)
-	      (List.length pars)
-	    in
-	      raise ( Compile_error (pdata.src, msg))
-	  )
-      )
-)
+	  ) in
+	    try (
+	      (*------------TRAITEMENT---------------------------------*)
+	      List.iter2 check_arg pars args ;
+	      (* on fabrique un pack_given valide avec les infos récoltées *)	
+	      let body = {
+		pk_const_table = ctab ;
+		pk_type_table = ttab ;
+		pk_oper_table = otab ;
+		pk_def_list = List.append
+		  (mi.it.mo_body.pk_def_list) 
+		  (List.rev !newdefs)
+	      } in
+		(* les provides du modèle + les nouveaux de newprov *)
+		(* SAUF SI ON EXPORTE DEJA TOUT !                   *)
+	      let prov = match (mi.it.mo_provides) with
+		  Some l -> (
+		    Some (List.append l (List.rev !newprov))
+		  ) 
+		|  None -> None
+	      in
+	      let pg = {
+		(* les uses du modèle ... *)
+		pg_uses = mi.it.mo_uses ;
+		pg_provides = prov ;
+		pg_body = body ;
+	      } in
+		pg
+	    ) with Invalid_argument _ -> (
+	      let msg = Printf.sprintf
+		"bad pack instance: %d args provided while model %s has %d params"
+		(List.length args)
+		(Ident.to_string pi.pi_model)
+		(List.length pars)
+	      in
+		raise ( Compile_error (pdata.src, msg))
+	    )
+	)
+  )
diff --git a/src/expandPack.mli b/src/expandPack.mli
index 2b67d09b..776ea305 100644
--- a/src/expandPack.mli
+++ b/src/expandPack.mli
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 17/12/2007 (at 18:00) by Erwan Jahier> *)
+(** Time-stamp: <modified the 18/12/2007 (at 10:37) by Erwan Jahier> *)
 
 (*----------------------------------------------------------------------
 MODULE : ExpandPack
@@ -30,11 +30,11 @@ On met en relation les couples (param formel, arg effectif) :
 
 (type t, id/type_exp) : on crée l'alias "type t = id/type_exp",
   qu'on met à la fois dans les export et dans le body
-  => LES DÉCLARATION DE TYPES SONT EXPORTÉES
+  => LES DÉCLARATIONS DE TYPES SONT EXPORTÉES
 
 (const c : t, id/val_exp) : on crée l'alias "const c : t = id/val_exp",
   qu'on met à la fois dans les export et dans le body
-  => LES DÉCLARATION DE CONST SONT EXPORTÉES
+  => LES DÉCLARATIONS DE CONST SONT EXPORTÉES
 
 (node n(..)returns(...), id/node_exp) :
   - on garde le noeud "abstrait" dans export => node n(..)returns(...)
@@ -44,10 +44,9 @@ On met en relation les couples (param formel, arg effectif) :
 ----------------------------------------------------------------------*)
 
 val doit : 
-	(* la table des sources de modeles *)
-	(Ident.t, SyntaxTree.model_info Lxm.srcflaged) Hashtbl.t ->
-	(* la def de pack à traiter *)
-	(SyntaxTree.pack_info  Lxm.srcflaged) ->
-	(* le résultat ... *)
-	SyntaxTree.pack_given
+  (* la table des sources de modeles *)
+  (Ident.t, SyntaxTree.model_info Lxm.srcflaged) Hashtbl.t ->
+  (* la def de pack à traiter *)
+  (SyntaxTree.pack_info  Lxm.srcflaged) ->
+  SyntaxTree.pack_given
 
diff --git a/src/lazyCompiler.ml b/src/lazyCompiler.ml
index fb6c138a..5dea0c59 100644
--- a/src/lazyCompiler.ml
+++ b/src/lazyCompiler.ml
@@ -46,7 +46,7 @@ let recursion_error (lxm : Lxm.t) (stack : string list) = (
 
 (* Structure principale *)
 type t = {
-  src_tab : SrcTab.t;
+  src_tab : SyntaxTab.t;
   (* table des defs *)
   types  : (item_key, CompileData.type_eff chkflaged)   Hashtbl.t ;	
   consts : (item_key, CompileData.const_eff chkflaged)   Hashtbl.t ;	
@@ -101,7 +101,7 @@ let rec do_type
 	  Not_found -> (
 	    Hashtbl.add this.types tk Checking ;
 	    let (p,t) = (Ident.pack_of_long tk, Ident.of_long tk) in
-	    let lenv = SrcTab.pack_body_env this.src_tab p in
+	    let lenv = SyntaxTab.pack_body_env this.src_tab p in
 	      (* forcément local, sinon erreur *)
 	    let tix = match SymbolTab.find_type lenv t with
 		SymbolTab.Here x -> x
@@ -126,7 +126,7 @@ let rec do_type
 	    Hashtbl.add this.prov_types tk Checking ;
 	    let (p,t) = (Ident.pack_of_long tk, Ident.of_long tk) in
 	    let res = ( 
-	      match SrcTab.pack_prov_env this.src_tab p with
+	      match SyntaxTab.pack_prov_env this.src_tab p with
 		  Some penv -> ( 
 		    (* forcément local, sinon erreur *)
 		    let tix = match SymbolTab.find_type penv t with
@@ -148,7 +148,7 @@ let rec do_type
 			       on compile la def prov dans l'env body, le résultat doit être
 			       le même que body_type_eff
 			    *)
-			    let lenv = SrcTab.pack_body_env this.src_tab p in
+			    let lenv = SyntaxTab.pack_body_env this.src_tab p in
 			    let prov_type_eff_bis = check_type_def this tk lxm lenv p tix in
 			      if ( prov_type_eff_bis = body_type_eff ) then (
 				(* ok *)
@@ -275,7 +275,7 @@ let rec do_type
 	  Not_found -> (
 	    Hashtbl.add this.consts ck Checking ;
 	    let (p,c) = Ident.pack_of_long ck, Ident.of_long ck in
-	    let lenv = SrcTab.pack_body_env this.src_tab p in
+	    let lenv = SyntaxTab.pack_body_env this.src_tab p in
 	      (* forcément locale, sinon erreur *)
 	    let cix = match SymbolTab.find_const lenv c with
 		SymbolTab.Here x -> x
@@ -302,7 +302,7 @@ let rec do_type
 	    Hashtbl.add this.prov_consts ck Checking ;
 	    let (p,c) = Ident.pack_of_long ck, Ident.of_long ck in
 	    let res = ( 
-	      match SrcTab.pack_prov_env this.src_tab p with
+	      match SyntaxTab.pack_prov_env this.src_tab p with
 		  Some penv -> ( 
 		    (* forcément local, sinon erreur *)
 		    let cix = match SymbolTab.find_const penv c with
@@ -479,12 +479,12 @@ let do_node this nodek = assert false
 
 
 let test_types (this: t) = (
-  (* src_tab : SrcTab.t; *)
+  (* src_tab : SyntaxTab.t; *)
   let testpack pn = (
     Printf.printf "package %s\n" (Ident.pack_name_to_string pn);
-    let stab = match SrcTab.pack_prov_env this.src_tab pn with
+    let stab = match SyntaxTab.pack_prov_env this.src_tab pn with
 	Some tab -> tab
-      |	None -> SrcTab.pack_body_env this.src_tab pn
+      |	None -> SyntaxTab.pack_body_env this.src_tab pn
     in 
     let testtype n v = (
       match v with
@@ -502,6 +502,6 @@ let test_types (this: t) = (
       SymbolTab.iter_types stab testtype
   ) 
   in
-  let plist = SrcTab.pack_list this.src_tab in 
+  let plist = SyntaxTab.pack_list this.src_tab in 
     List.iter testpack plist
 )
diff --git a/src/lazyCompiler.mli b/src/lazyCompiler.mli
index d98f3efc..4a88df83 100644
--- a/src/lazyCompiler.mli
+++ b/src/lazyCompiler.mli
@@ -1,11 +1,11 @@
-(** Time-stamp: <modified the 17/12/2007 (at 16:30) by Erwan Jahier> *)
+(** Time-stamp: <modified the 18/12/2007 (at 11:11) by Erwan Jahier> *)
 
 (** Compiling items on demand *)
 
 type t
 
 (* Création *)
-val create : SrcTab.t -> t
+val create : SyntaxTab.t -> t
 
 (* Demande de compil d'un type *)
 val do_type : t -> Ident.long -> Lxm.t -> CompileData.type_eff
diff --git a/src/main.ml b/src/main.ml
index 40231d6f..f08f3215 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,6 +1,6 @@
-(** Time-stamp: <modified the 17/12/2007 (at 18:04) by Erwan Jahier> *)
+(** Time-stamp: <modified the 18/12/2007 (at 11:03) by Erwan Jahier> *)
 
-(**
+(** Here follows a description of the different modules of the lus2lis compiler
 
 - Lexing and Parsing (produces the parse tree)
    lexer.mll  
@@ -13,25 +13,25 @@
    syntaxTree.ml 
 
   *** (2) Tabulated version of the syntax tree 
-   srcTab.mli/ml
+   syntaxTab.mli/ml
+   syntaxTabUtil.ml/mli
    expandPack.mli/ml 
-   compUtils.ml/mli
-   symbolTab.mli/ml (util module for SrcTab containing Symbol (type/const/oper) tbls)
+   symbolTab.mli/ml (util module for syntaxTab containing Symbol (type/const/oper) tbls)
 
 
   *** (3) Data types used to represent checked (ie compiled) expressions
    compileData.ml
 
 
-- The compiling (checking) functions (from (2) to (3))
+- The compiling (checking+const evaluation) functions (from (2) to (3))
    compile.ml   
    lazyCompiler.mli/ml
 
-
 - Static evaluation of parameters (used during compilation)
    evalConst.mli/ml
    evalType.mli/ml
 
+
 - Misc modules
    dump.ml
    errors.ml
diff --git a/src/symbolTab.ml b/src/symbolTab.ml
index 463efc7f..6cdbdd16 100644
--- a/src/symbolTab.ml
+++ b/src/symbolTab.ml
@@ -1,6 +1,6 @@
 
 (*
-Sous-module pour SrcTab 
+Sous-module pour SyntaxTab 
 *)
 open Lxm
 open SyntaxTree
diff --git a/src/symbolTab.mli b/src/symbolTab.mli
index b18fef17..ccc15090 100644
--- a/src/symbolTab.mli
+++ b/src/symbolTab.mli
@@ -1,7 +1,7 @@
-(** Time-stamp: <modified the 17/12/2007 (at 18:01) by Erwan Jahier> *)
+(** Time-stamp: <modified the 18/12/2007 (at 11:10) by Erwan Jahier> *)
 
 (**********************************************************
-Sous-module pour SrcTab 
+Sous-module pour SyntaxTab 
 ************************************************************
 
    Une SymbolTab.t est une association ``contextuelle'' entre
diff --git a/src/srcTab.ml b/src/syntaxTab.ml
similarity index 79%
rename from src/srcTab.ml
rename to src/syntaxTab.ml
index 3c13d06f..7a7f7119 100644
--- a/src/srcTab.ml
+++ b/src/syntaxTab.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 17/12/2007 (at 18:01) by Erwan Jahier> *)
+(** Time-stamp: <modified the 18/12/2007 (at 11:13) by Erwan Jahier> *)
 
 (** 
     Table des infos sources : une couche au dessus de SyntaxTree pour mieux
@@ -23,7 +23,7 @@
 open Lxm
 open SyntaxTree
 open Errors
-
+open SyntaxTabUtils
 
 (** Package manager
 
@@ -40,7 +40,7 @@ open Errors
 
     Il contient aussi une table des items exportés pour faciliter le
     traitement des "use" du package. C'est une correspondance nature+nom
-    simple -> nom complet (c.a.d. SyntaxTree.item_ident -> fullid)
+    simple -> nom complet (c.a.d. SyntaxTree.item_ident -> Ident.long)
 *)
 
 type pack_mng = {
@@ -82,23 +82,20 @@ type t = {
 
 
 
-let pack_list this = (
-  let f n p l = ( n::l ) in
-    Hashtbl.fold f this.st_pack_mng_tab []
-)
+let pack_list this = 
+  Hashtbl.fold (fun n p l -> n::l) this.st_pack_mng_tab []
+
 
 (* accès aux infos *)
-let pack_body_env this  p = (
-  try
-    (Hashtbl.find this.st_pack_mng_tab p).pm_body_stab
+let pack_body_env this  p = 
+  try  (Hashtbl.find this.st_pack_mng_tab p).pm_body_stab
   with Not_found -> assert false
-)
 
-let pack_prov_env this  p = (
-  try
-    (Hashtbl.find this.st_pack_mng_tab p).pm_provide_stab
+
+let pack_prov_env this  p = 
+  try (Hashtbl.find this.st_pack_mng_tab p).pm_provide_stab
   with Not_found -> assert false
-)
+
 
 
 (****************************************************************************
@@ -112,10 +109,11 @@ let init_user_items (this: pack_mng) = (
       (xci: SyntaxTree.const_info srcflaged)
       = (
 	Verbose.put "       export const %s\n" (Ident.to_string s);
-	CompUtils.put_in_tab "const" this.pm_user_items
+	put_in_tab "const" this.pm_user_items
 	  (ConstItem s)
 	  (Lxm.flagit (Ident.make_long pname s) xci.src)
-      ) in
+      ) 
+  in
     (* EXPORTATION D'UN type_info *)
   let export_type
       (s: Ident.t)
@@ -129,28 +127,33 @@ let init_user_items (this: pack_mng) = (
 		let s = ec.it in
 		let lxm = ec.src in
 		  Verbose.put "       export enum const %s\n" (Ident.to_string s);
-		  CompUtils.put_in_tab "const" this.pm_user_items
+		  put_in_tab "const" this.pm_user_items
 		    (ConstItem s)
 		    (Lxm.flagit (Ident.make_long pname s) lxm)
 	      ) in
 		List.iter treat_enum_const ecl
-	    ) | _ -> ()
+	    )
+	  | ExternalType _
+	  | AliasedType _ 
+	  | StructType _ -> ()
 	in
 	  Verbose.put "       export type %s\n" (Ident.to_string s);
-	  CompUtils.put_in_tab "type" this.pm_user_items
+	  put_in_tab "type" this.pm_user_items
 	    (TypeItem s)
 	    (Lxm.flagit (Ident.make_long pname  s) xti.src)
-      ) in
+      )
+  in
     (* EXPORTATION D'UN oper_info *)
   let export_oper
       (s: Ident.t)
       (xoi: SyntaxTree.oper_info srcflaged)
       = (
 	Verbose.put "       export oper %s\n" (Ident.to_string s);
-	CompUtils.put_in_tab "oper" this.pm_user_items
+	put_in_tab "oper" this.pm_user_items
 	  (OperItem s)
 	  (Lxm.flagit (Ident.make_long pname  s) xoi.src)
-      ) in
+      ) 
+  in
   let pg = this.pm_actual_src in
     match pg.pg_provides with
 	None -> (
@@ -180,26 +183,27 @@ pour pouvoir traiter les 
 Les tables de symboles sont créées plus tard.
 *)
 let create_pack_mng 
-	(pdata : SyntaxTree.pack_info srcflaged)
-   (pgiven : SyntaxTree.pack_given)
-= (
-	(* la table pm_provide_stab n'est créée que si besoin *)
-	let ppstab = match pgiven.pg_provides with
+    (pdata : SyntaxTree.pack_info srcflaged)
+    (pgiven : SyntaxTree.pack_given)
+    = (
+      (* la table pm_provide_stab n'est créée que si besoin *)
+      let ppstab = match pgiven.pg_provides with
 	  None -> None 
 	| Some _ -> Some (SymbolTab.create ())
-	in
-	let res =
+      in
+      let res =
 	{
-		pm_lxm = pdata.src ;
-		pm_raw_src = pdata.it;
-		pm_actual_src = pgiven;
-		pm_user_items = Hashtbl.create 50;
-		pm_provide_stab = ppstab;
-		pm_body_stab = SymbolTab.create ();
-	} in
+	  pm_lxm = pdata.src ;
+	  pm_raw_src = pdata.it;
+	  pm_actual_src = pgiven;
+	  pm_user_items = Hashtbl.create 50;
+	  pm_provide_stab = ppstab;
+	  pm_body_stab = SymbolTab.create ();
+	} 
+      in
 	init_user_items res;
 	res
-)
+    )
 
 
 
@@ -224,11 +228,11 @@ let rec create (sl : SyntaxTree.pack_or_model list) = (
     st_pack_mng_tab = Hashtbl.create 50; 
   } in
 
-    Verbose.put "*** SrcTab.create pass 1\n";
+    Verbose.put "*** SyntaxTab.create pass 1\n";
     (* passe 1 *)
     init_raw_tabs res sl ;
     (* passe 2 *)
-    Verbose.put "*** SrcTab.create pass 2\n";
+    Verbose.put "*** SyntaxTab.create pass 2\n";
     let init_pack_mng pname pdata = (
       Verbose.put "    init pack %s\n" (Ident.pack_name_to_string pname);
       let pg = ExpandPack.doit res.st_raw_mod_tab pdata in
@@ -238,34 +242,31 @@ let rec create (sl : SyntaxTree.pack_or_model list) = (
     ) in
       Hashtbl.iter init_pack_mng res.st_raw_pack_tab ;
       (* passe 3 *)
-      Verbose.put "*** SrcTab.create pass 3\n";
+      Verbose.put "*** SyntaxTab.create pass 3\n";
       Hashtbl.iter (init_pack_mng_stabs res) res.st_pack_mng_tab ;
       (* resultat *)
-      Verbose.put "*** SrcTab.create done\n";
+      Verbose.put "*** SyntaxTab.create done\n";
       res
 )
 and
     (***** PASSE 1 *****)
     (* init des tables string -> mod ou pack *)
-    init_raw_tabs (this : t) (sl : SyntaxTree.pack_or_model list) = (
+    init_raw_tabs (this : t) (sl : SyntaxTree.pack_or_model list) =
       (* on itère pour chaque pack_or_model : *)
-      let treat_ns ns = (
+      let treat_ns ns = 
 	match ns with
 	    (* cas d'un package *)
-	    SyntaxTree.NSPack  pi -> (
+	  | SyntaxTree.NSPack  pi ->
 	      let lxm = pi.Lxm.src in
 	      let nme = (Lxm.pack_name lxm) in
-		CompUtils.put_in_tab "package" this.st_raw_pack_tab nme pi
-	    ) |
-		(* cas d'un modele *)
-		SyntaxTree.NSModel mi -> (
-		  let lxm = mi.Lxm.src in
-		  let nme = (Lxm.id lxm) in
-		    CompUtils.put_in_tab "model" this.st_raw_mod_tab nme mi
-		)
-      ) in
+		put_in_tab "package" this.st_raw_pack_tab nme pi
+	   	  
+	  | SyntaxTree.NSModel mi -> (* cas d'un modele *)
+	      let lxm = mi.Lxm.src in
+	      let nme = (Lxm.id lxm) in
+		put_in_tab "model" this.st_raw_mod_tab nme mi
+      in
 	List.iter treat_ns sl
-    )
 and
     (***** PASSE 3 *****)
     (* Essentiellement le remplissage des champs de pack_mng : 
@@ -305,21 +306,19 @@ and
 	      (iks: Ident.long Lxm.srcflaged) =
 	    (
 	      match ii with
-		  ConstItem n -> (
+		| ConstItem n -> (
 		    SymbolTab.add_import_const pm.pm_body_stab n iks.it;
 		    match pm.pm_provide_stab with
 			Some pt -> SymbolTab.add_import_const pt n iks.it
 		      | None -> ()
 		  )
-		|
-		    TypeItem n -> (
+		| TypeItem n -> (
 		      SymbolTab.add_import_type pm.pm_body_stab n iks.it;
 		      match pm.pm_provide_stab with
 			  Some pt -> SymbolTab.add_import_type pt n iks.it
 			| None -> ()
 		    )
-		|
-		    OperItem n -> (
+		| OperItem n -> (
 		      SymbolTab.add_import_oper pm.pm_body_stab n iks.it;
 		      match pm.pm_provide_stab with
 			  Some pt -> SymbolTab.add_import_oper pt n iks.it
@@ -340,31 +339,26 @@ and
 	    pg.pg_body.pk_oper_table;
 	  (* ... dans le provide : *)
 	  match pg.pg_provides with
-	      None -> (
-	      ) |
-		  Some spflg -> (
-		    let pptab = match pm.pm_provide_stab with
-			Some pt -> pt
-		      | None -> assert false
-		    in
-		    let treat_prov x = (
-		      let lxm = x.src in
-		      let s = (Lxm.id lxm) in
-			match (x.it) with
-			    TypeInfo xti -> (
-			      SymbolTab.add_type pptab s (Lxm.flagit xti lxm) 
-			    ) 
-			  |
-			      ConstInfo xci -> (
-				SymbolTab.add_const pptab s (Lxm.flagit xci lxm)
-			      )
-			  |
-			      OperInfo xoi -> (
-				SymbolTab.add_oper pptab s (Lxm.flagit xoi lxm)
-			      )
-		    ) in
-		      List.iter treat_prov spflg
-		  ) 
+	    | None -> () 
+	    | Some spflg -> (
+		let pptab = match pm.pm_provide_stab with
+		    Some pt -> pt
+		  | None -> assert false
+		in
+		let treat_prov x = (
+		  let lxm = x.src in
+		  let s = (Lxm.id lxm) in
+		    match (x.it) with
+		      | TypeInfo xti -> 
+			  SymbolTab.add_type pptab s (Lxm.flagit xti lxm) 
+		      | ConstInfo xci -> 
+			  SymbolTab.add_const pptab s (Lxm.flagit xci lxm)
+		      | OperInfo xoi ->
+			  SymbolTab.add_oper pptab s (Lxm.flagit xoi lxm)
+			    
+		) in
+		  List.iter treat_prov spflg
+	      )
     )
 
 (****************************************************************************
@@ -375,18 +369,17 @@ Associations :
 ****************************************************************************)
 
 (* associations idref -> Ident.long *)
-let find_type (genv: t) (pck: string) (idr: Ident.t) = (
+let find_type (genv: t) (pck: string) (idr: Ident.t) = 
   print_string "*** not implemented.\n";
   assert false
-)
-let find_const (genv: t) (pck: string) (idr: Ident.t) = (
+
+let find_const (genv: t) (pck: string) (idr: Ident.t) = 
   print_string "*** not implemented.\n";
   assert false
-)
-let find_oper (genv: t) (pck: string) (idr: Ident.t) = (
+
+let find_oper (genv: t) (pck: string) (idr: Ident.t) =
   print_string "*** not implemented.\n";
   assert false
-)
 
 
 
diff --git a/src/srcTab.mli b/src/syntaxTab.mli
similarity index 100%
rename from src/srcTab.mli
rename to src/syntaxTab.mli
diff --git a/src/syntaxTabUtils.ml b/src/syntaxTabUtils.ml
new file mode 100644
index 00000000..1ef553d0
--- /dev/null
+++ b/src/syntaxTabUtils.ml
@@ -0,0 +1,25 @@
+(** Time-stamp: <modified the 18/12/2007 (at 10:36) by Erwan Jahier> *)
+
+
+open Lxm
+
+
+let put_in_tab 
+    (what: string)
+    (tab : ('a, 'b Lxm.srcflaged) Hashtbl.t)
+    (key : 'a)
+    (value : 'b Lxm.srcflaged) 
+    =
+  try 
+    let plxm = (Hashtbl.find tab key).src in
+    let msg = Printf.sprintf "%s already declared in %s"
+      what (Lxm.position plxm) 
+    in
+      raise (Errors.Compile_error (value.src, msg))
+  with 
+      Not_found -> Hashtbl.add tab key value
+	
+ 
+
+
+
diff --git a/src/compUtils.mli b/src/syntaxTabUtils.mli
similarity index 100%
rename from src/compUtils.mli
rename to src/syntaxTabUtils.mli
diff --git a/src/version.ml b/src/version.ml
index c63d3f69..756325df 100644
--- a/src/version.ml
+++ b/src/version.ml
@@ -1,6 +1,6 @@
 (* Automatically generated from src/Makefile *) 
 let tool = "lus2lic"
 let branch = "u0"
-let commit = "8"
-let sha_1 = "0c7ce2836916d25d20b02b8a4c46cded06facd7e"
+let commit = "9"
+let sha_1 = "d83d8e63a7dacf064f011b1f1674aa4663aa7292"
 let str = (branch ^ "." ^ commit)
-- 
GitLab