let rec _Attribution_Variable_Pointee nomModule our_Hash_table _Hash_table_temp reference liste_ref =
let _Avant_point str = (String.sub str 0 (String.index str '.'))
in
let _Apres_point str = (String.sub str ((String.index str '.') + 1)
(String.length str - (String.index str '.') -1))
in
match _Hash_table_temp with
[] -> (Inconnu, false)
| Parametre(nomM, id, (Objet sonType), _)::liste_restante ->
if nomM = nomModule && id = reference
then
try
_Attribution_Variable_Pointee sonType
our_Hash_table
our_Hash_table
(_Avant_point liste_ref)
(_Apres_point liste_ref)
with _ -> _Attribution_Variable_Pointee sonType
our_Hash_table
our_Hash_table
liste_ref
""
else
_Attribution_Variable_Pointee nomModule
our_Hash_table
liste_restante
reference
liste_ref
| Parametre(nomM, id, Inconnu, _)::liste_restante ->
if nomM = nomModule && id = reference
then
(Inconnu, false)
else
_Attribution_Variable_Pointee nomModule
our_Hash_table
liste_restante
reference
liste_ref
| Autre(nomM, id, sonType)::liste_restante ->
if nomM = nomModule && id = reference
then
(match sonType with
Constructeur(Construct(_type, _)) ->
(try
(_Attribution_Variable_Pointee _type
our_Hash_table
our_Hash_table
(_Avant_point liste_ref)
(_Apres_point liste_ref))
with _ -> (_Attribution_Variable_Pointee _type
our_Hash_table
our_Hash_table
liste_ref
""))
| Inconnu -> (Inconnu,false)
| t -> (t,true))
else
_Attribution_Variable_Pointee nomModule
our_Hash_table
liste_restante
reference
liste_ref
| _::liste_restante ->
_Attribution_Variable_Pointee nomModule
our_Hash_table
liste_restante
reference
liste_ref