let rec _Fusion_Arbre_Hash arbreSyntaxe hashTable =
match arbreSyntaxe with
[] -> []
| ce_module::liste_restante ->
match ce_module.modTyp, ce_module.declar with
(( nomModule, liste_parametre), Var(liste_variable)::Assign(liste_assign)::liste_declar) ->
{
modTyp =
(nomModule, (_Attribution_Arbre_Param nomModule liste_parametre hashTable)) ;
declar =
Var(_Attribution_Arbre_Var nomModule liste_variable hashTable)
::Assign(_Attribution_Arbre_Assign nomModule liste_assign hashTable)
::liste_declar
}
::_Fusion_Arbre_Hash liste_restante hashTable
| (( nomModule, liste_parametre), Var(liste_variable)::liste_declar) ->
{
modTyp =
(nomModule, (_Attribution_Arbre_Param nomModule liste_parametre hashTable)) ;
declar =
Var(_Attribution_Arbre_Var nomModule liste_variable hashTable)::liste_declar
}
::_Fusion_Arbre_Hash liste_restante hashTable
| _, _ ->
raise Declaration_non_valide