| 
3.3.3.8 Algorithme pour la fonction recursive tarrgts ():
Cet algorithme crée, pour chaque type
d'opérateurs, toutes les combinaisons d'instances en tenant compte des
nombres de cet opérateur dans le circuit et en bibliothèque. t_arrgts ( Variables :ch :pointeur sur caractère ; p, pos : entier ; ptr1 : variable qui pointe sur un élément de
type COMB_ TYP_OP ; ptr11 : variable qui pointe sur un élément de type
INSTANCE ;) : Variables : c, c1 : caractère ; ch11, ch12 : variables qui pointent sur des chaîne de
caractères; ch1 [5] : chaîne de caractères; j, k, l : entier ; DEBUT Si (p==0) Alors { num := num+1 ; Allocate (ptr1) ;// Allocation de l'espace mémoire pour le
pointeur ptr1 ; head_instance := 0 ; ptr1-)next := 0 ; //Faire appel a la fonction inserer2 () inserer2 (ptr1) ; Pour (l:=0 ; svg_chaine [l] ? `\0' ; l++) Faire { Allocate (ptr11) ; /*Allocation de l'espace mémoire pour
le pointeur ptr11*/ ptr11-)next :=0 ; ptr11-)nom_fichier := contenu de typ_op ; ch_tmp [0] := svg_chaine [l] ; ch_tmp [1] := `\0' ; ptr11-)nom_fichier = contenu de ch_tmp ; inserer3 (ptr11); } Ffaire ptr1-)head := head_instance ; return ; } Fsi ch11:=ch ; Tant que non fin de la chaine de caractères ch11 Faire {Lire de cette chaîne un caractère et le
mettre dans c ; Pour (j:=p ; j>0 ; j:=j-1) Faire { Pour (k :=j, l :=pos ; k>0, k :=k-1) Faire svg_chaine [l++] := c ; Ffaire svg_chaine [l] := `\0' ; l :=0 ; ch12 := adresse de chaine [0] ; Tant que non fin de la chaîne de caractères ch12 Faire { Lire de cette chaîne un caractère et le mettre dans
c1 ; Si (c1 ? c) Alors ch1[l++] := c1 ; Fsi Ffaire ch1[l] := '\0' ; // Faire appel a la fonction récursive t_arrgts ()
t_arrgts ( ch1, p-j, pos+j, ptr1, ptr11) ; } Ffaire } Ffaire } FIN Ffaire 
3.3.3.9 Algorithme pour la fonction inserer () : Cette fonction permet d'insérer dans une liste un type
d'opérateur utilisé dans le circuit. DEBUT Si (head_operateurs ? 0) Alors { ptr-)next := head_operateurs ; head_operateurs-)prev := ptr ;
} Fsi head _operateurs := ptr ; FIN 
3.3.3.10 Algorithme pour la focntion inserer2 () : Cette fonction permet d'insérer dans une liste un
élément qui correspond à une combinaison d'instances. DEBUT Si (head_comb_typ_op ? 0) Alors { ptr1-)next := head_comb_typ_op ; } Fsi head _comb_typ_op := ptr1 ; FIN 
3.3.3.11  Algorithme pour la focntion inserer3 () : Cette fonction permet d'insérer une combinaison
d'instances d'un type d'opérateur donné. DEBUT Si (head_instance ? 0) Alors { ptr11-)next := head_instance ; } Fsi head _instance := ptr11 ; FIN 
3.3.3.12 Algorithme pour la fonction inserer4 () : Cette fonction permet d'insérer dans une liste une
configuration (combinaison de combinaisons d'instances. DEBUT Si (head_comb_ops ? 0) Alors { ptr_svg-)next := head_comb_ops ; head_comb_ops-)prev := ptr_svg ;
} Fsi head _comb_ops := ptr_svg ; FIN |