afficher >><< masquer ]
SAMPI - Editeur structuré
1. Le Problème et la Proposition
2. Le Langage Primitif de Représentation Textuelle
2.1. Présentation de la Syntaxe Concrète
2.2. Notations
2.3. Exemple de structuration des données
2.4. Exemple de structuration des traitements
2.5. Exemple de structurations connexes
3. Le Langage Complété pour la Structuration des Textes
3.1. Présentation de la Syntaxe Complétée
3.2. Etude quantitative de l'évolution des programmes
3.3. L'édition syntaxique
3.4. étude de cas : le langage LTR3 et l'atelier ENTREPRISE
4. L'Enrichissement du Langage par de Nouveaux Concepts
4.1. Présentation de la Syntaxe Abstraite
4.2. Les difficultés
4.3. Compléter la Syntaxe
5. La Formalisation des Solutions Techniques
5.1. L'évaluation fonctionnelle
5.2. La structuration par les objets
5.3. Modèle sémantique comparé de l'évaluateur
5.4. Comparaison critique
5.5. Construction de la Syntaxe Abstraite
6. Les Comparaisons avec d'autres Approches
7. Les Perspectives
8. Les Editeurs
8.0. brisé sur la barrière de la complexité (une fois de plus)
8.1. L'éditeur ligne : Manuel de l'utilisateur
8.2. L'éditeur page : Guide de l'utilisateur
9. Les Aspects d'Implantation
9.1. Contexte d'évaluation
9.2. La Syntaxe Abstraite : Manuel du concepteur
9.3. L'éditeur page : Guide de l'implanteur
9.3.1. La structure de données du Buffer
9.3.2. Les utilitaires
9.3.3. L'écran
9.3.4. Les fenêtres
9.3.5. La modification
9.3.6. La structure de données du tampon
9.3.7. Les tampons
9.3.8. La configuration
9.3.9. Les modes
9.3.99.1. La recherche
9.3.99.2. La sélection
9.3.99.3. La justification
9.3.99.4. L'appel récursif
9.3.99.5. La recherche sur les noms
9.3.10. Les commandes
Références
Rubrique Perl-Javascript

Les modes

1. La recherche

2. La sélection

3. La justification

4. L'appel récursif

5. La recherche sur les noms

5. La recherche sur les noms

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