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