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.10. Les commandes
Références
Rubrique Perl-Javascript

L'écran

On regroupe ici les fonctions d'écran :
- détermination des zones du curseur, du Buffer local, ...
- affichage du contenu d'une fenêtre de Buffer.

On utilise les variables globales suivantes :

- log : curseur logique (représentation symbolique),
- phy : curseur physique (représentation symbolique),
- curdeb : début de curseur (représentation par une liste),
- curfin : fin de curseur (représentation par une liste).

- loghol : holophraste logique,
- reghol : holophraste physique (holophraste du Buffer local),
- bufhol : holophraste minimal du Buffer (initialement 1).

- reginfo-lst : liste des liens du Buffer local,
- bufinfo-lst : liste des liens du Buffer courant,
- ficinfo-lst : liste des liens du Buffer de la fenêtre.
(note : le Buffer courant peut être plus petit que le Buffer de la fenêtre si l'on a appelé récursivement l'éditeur par la commande ESC-r

Note : en dehors des variables log et phy les données sont calculées d'après la liste des liens reginfo-lst, bufinfo-lst et ficinfo-lst. L'appel récursif sur le Buffer local courant est donc réalisé par empilement de la seule variable bufhol.

On utilise dans la suite la terminologie suivante :
- données du curseur logique : log et loghol,
- données du curseur physique : phy,
- données du curseur : curdeb et curfin,
- données du Buffer local : reghol et reginfo-lst,
- données du Buffer : bufhol et bufinfo-lst,
- données de la page : beg et end.

détermination des zones

log>reg : calcule les données du Buffer local, du curseur, du curseur physique d'après celles du curseur logique.

log>cur : calcule les données du curseur, du curseur physique d'après celles du curseur logique.

log>phy : calcule les données du curseur physique d'après celles du curseur logique.

log>fen : calcule les données de la page d'après celles du curseur logique.

fen>log : calcule les données du curseur logique d'après celles de la page.

affichage de la page

aff>ecr : affiche la page.

aff>ecr-part ‹beg› ‹end› ‹pge› : affiche la page entre les lignes ‹beg› et ‹end› du Buffer – ‹pge› est le numéro de ligne du Buffer de la première ligne de la fenêtre.

eff>ecr-part ‹beg› ‹end› ‹num› : efface les ‹num› dernières lignes de la page ‹beg› ‹end›.

re-aff>ecr : réaffiche la page.

aff>cur : affiche le curseur.

eff>cur : efface le curseur.

re-aff>cur : réaffiche le curseur.

aff>zon : affiche la zone sélectionnée en mode sélection.

sel-eff>ecr : efface la zone affichée en sortie de mode sélection.

affichage interne
Les fonctions ont toutes la visibilité des variables :
- zondeb, zonfin : la zone à afficher,
- zontab : l'abscisse du début de ligne du Buffer courant.

aff>ecr-zone ‹beg› ‹end› ‹tab› ‹pge› : afficher la zone :
- entre ‹beg› et ‹end›,
- avec l'abscisse ‹tab› du début de ligne du Buffer local,
- la première ligne d'écran ayant le numéro ‹pge› dans le Buffer.

eff>ecr-zone ‹beg› ‹end› ‹tab› ‹pge› : idem, effacer la zone.

aff>zon-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, afficher la portion du curseur ‹deb› ‹fin› contenue dans la page ‹beg› ‹end›.

eff>zon-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, effacer le portion.

aff>tab-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, afficher les points hors de la zone d'accès.

eff>tab-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, effacer les points.

aff>ecr-init : initialiser les variables zon...

aff> ‹beg› ‹end› ‹tab› ‹pge› : afficher de ‹beg› à ‹end› en inverse Vidéo.

eff> ‹beg› ‹end› ‹tab› ‹pge› : idem, en standard.

aff>tab ‹beg› ‹end› ‹tab1› ‹tab2› ‹pge› : afficher de ‹beg› à ‹end› en inverse Vidéo entre les abscisse ‹tab1› et ‹tab2›.

eff>tab ‹beg› ‹end› ‹tab1› ‹tab2› ‹pge› : idem, en standard.