1. La recherche
2. La sélection
les variables globales
flag-alm | drapeau, vrai si une fenêtre d'alarme a été ouverte – cas ambigus de la recherche. |
rac-mem | tampon "racine" des noms relatifs. |
flag-abs | drapeau, vrai si le nom est absolu – premier caractère = "/". |
stg | variable tampon du dialogue – chaîne de caractères. |
lst-buf-mem | liste des noms de tampons relative à la chaîne de caractères traitée stg. |
nb-buf-mem | nombre moins un des noms de lst-buf-mem – chaque nom est séparé par un caractère "/". |
num-buf-mem | nombre de caractères du dernier nom de lst-buf-mem. |
buf-mem | nom d'un tampon. |
liste-globale | liste des tampons dont le nom satisfait le motif de lst-buf-mem sur les nb-global premiers noms. |
nb-global | nombre maximal de noms de la liste lst-buf-mem satisfait par des tampons. |
liste-p-globale | sous-liste de liste-globale des tampons dont le premier nom satisfait le motif du dernier nom de lst-buf-mem sur les num-global premiers caractères. |
num-global | nombre maximal de caractères du dernier nom de lst-buf-mem satisfait par des tampons de liste-globale. |
typ-global | type du nom – env si le dernier caractère est "/" et rep sinon. |
buf-RECHERCHE ‹mem› ‹msg› : recherche sur les noms de tampons, à partire de la "racine" ‹mem›, avec le message ‹msg›.
buf-rech-OLD ‹mem› ‹typ› : le nom retenu existe, du tampon ‹mem› de type ‹typ›.
buf-rech-NEW ‹rac-mem› ‹buf-mem› ‹typ› : le nom retenu est nouveau, sur le tampon "père" ‹rac-mem› de nom ‹buf-mem› de type ‹typ›.
buf-rech-ABORT : abandon de la commande.
la recherche
buf-rech-nil : recherche sur un motif vide – vide ou "/" = environnement global.
buf-rech-32 : recherche après la frappe du caractère blanc.
buf-rech-13 : recherche après la frappe du caractère "retour chariot".
les erreurs
buf-rech-AMB ‹liste-mem› : ambiguïté, sur la liste des tampons ‹liste-mem›.
buf-rech-AMB-/ ‹liste-mem› : identique, on affiche les noms de Buffers-Edits.
buf-rech-ERR ‹nb› : erreur, le chemin donné ne peut être suivi après le ‹nb›-ième nom.
buf-rech-Alarm : ouverture éventuelle de la fenêtre d'alarme.
buf-rech-DEL-num ‹nb› ‹num› ‹buf-mem› : erreur, on conserve les ‹nb› premiers noms de lst-buf-mem et les ‹num› premiers caractères de ‹buf-mem›.
buf-rech-DEL-tab ‹nb› ‹buf-mem› : erreur, on conserve les ‹nb› premiers noms de lst-buf-mem et le nom ‹buf-mem›.
buf-rech-DEL-cpy : erreur, on conserve le nom de la racine rac-mem.
les boucles
buf-rech-egal ‹lst-buf-mem› : paramètres implicites rendus : nb-global liste-globale ;
retourne nb-global maximal et la liste des tampons liste-globale le satisfaisant.
buf-rech-partielle ‹liste-mem› ‹buf-mem› : paramètres implicites rendus : num-global liste-p-globale ;
retourne num-global maximal et la sous-liste des tampons liste-p-globale de liste-globale le satisfaisant.
buf-rech-part-max ‹liste-mem› : paramètres implicites rendus : num-global buf-mem ;
retourne num-global maximal et buf-mem satisfait – cas nécessairement d'erreur.
buf-rech-part-egal ‹liste-mem› ‹buf-mem› : paramètre implicite rendu : liste-p-globale ;
retourne la sous-liste des tampons liste-p-globale de liste-globale satisfaisant ‹buf-mem›.
les fonctions auxiliaires
eqbuf-mem ‹buf1› ‹buf2› : test, vrai si les tampons ‹buf1› et ‹buf2› sont égaux ; l'égalité est vraie si :
- les noms sont égaux,
- les numéros de tampons sont égaux, ou alors le numéro de tampon de ‹buf1› est indéfini – c'est-à-dire qu'il est nul.
eqnumbuf-mem ‹buf1› ‹buf2› : retourne le nombre de caractères identiques dans ‹buf1› et ‹buf2› – le numéro compte pour trois caractères.
num-buf-mem ‹buf-mem› : retourne le nombre de caractères de ‹buf-mem›.
num-rech-msg : affichage du message et du nom construit, sur la ligne de contrôle.
num-rech-nom-abs ‹lst-buf-mem› ‹num› : retourne le nom absolu, sous forme de liste de codes ASCII, construit sur ‹lst-buf-mem› et le numéro de tampon ‹num›.
les fonctions d'analyse des noms
analyse ‹stg› : retourne la forme de "type" lst-buf-mem de la chaîne de caractères ‹stg›.
Syntaxe des noms
<stg> | ::= | <exp> | ; nom relatif |
| | <exp> "/" <stg> | ; nom absolu si <exp> est vide | |
<exp> | ::= | <nom> | ; numéro du tampon indéfini : <num> = 0 |
| | <nom> "<" <num> ">" | ; numéro du tampon défini |