let rec _Modification_Param ce_parametre liste_constr rang =
match ce_parametre with
Parametre(nomModule, id, Inconnu, sonRang) ->
(match liste_constr with
[] -> raise Cas_impossible
| cet_element::liste_restante ->
(match rang with
1 -> (match cet_element with
Varia(_, sonType) ->
if sonType = Inconnu
then
(Parametre(nomModule, id, sonType, sonRang), false)
else
(Parametre(nomModule, id, sonType, sonRang), true)
| Binaire(_) ->
(Parametre(nomModule, id, Boolean, sonRang), true)
| Construct(_) ->
raise Cas_impossible
| Unaire(_) ->
(Parametre(nomModule, id, Boolean, sonRang), true)
| Case(_) ->
raise Cas_impossible
| Num(_) ->
(Parametre(nomModule, id, Boolean, sonRang), true)
| Chaine(_) ->
(Parametre(nomModule, id, Enum([Chaine("")]), sonRang),true)
| NotDet(_) ->
raise Cas_impossible
| Ensemble(_) ->
raise Cas_impossible)
| _ ->
_Modification_Param ce_parametre liste_restante (rang-1)))
| Parametre(_) ->
raise MAUVAIS_PASSAGE_DE_PARAMETRES
| Autre(_) ->
raise MAUVAIS_PASSAGE_DE_PARAMETRES