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