Philippe Gac
Université de PARIS 7
Mémoire de DEA
Stage effectué à l'INRIA en été 88
sous la direction de Gérard Huet
WIMEL
Un éditeur en CAML
Impression: novembre 4, 2001
Wimel 2
I. Introduction
Wimel est un éditeur entièrement écrit en CAML dont l'intérêt, plus
que de fournir un éditeur utilisable et performant, est de formaliser
dans ce langage ce qu'est un éditeur plein écran de lignes, c'est à
dire un programme permettant d'éditer de manière interactive un
texte structuré en lignes de caractères. Renonçant à l'efficacité, les
données ont été structurées au maximum et les actions
décomposées selon ces structures.
Dans son état actuel, Wimel comporte toutes les fonctions
fondamentales d'un éditeur (insertion, suppression, déplacement) et
gère les scrollings horizontaux et verticaux. Il peut manipuler
plusieurs textes affichés dans des fenêtres différentes, un même
texte pouvant être visible dans plusieurs fenêtres.
Wimel 3
II. Présentation
A. Conventions typographiques dans le rapport
" Encadre un mot utilisé en un sens légèrement
différent de son sens intuitif ou habituel;
seule la première occurence est ainsi mise en
relief
«module:nom»» Fait référence à une fonction dans un source
Si le nom de module est omis, il s'agit du module
courant
Error! Reference source not found. Fait référence à un chapitre dans le présent
mémoire
soulig Définition explicite
nom{n} Concatène au nom le texte encadré (ici un entier)
pour former un nouveau nom
nom1/nom2 Alternative, si plusieurs signes se suivent, ils
signifient "respectivement"; précédence supérieure
à celle de la juxtaposition des mots
Les intervalles (partie d'un d'ensemble totalement ordonné qui contient toutes ses
valeurs intermédiaires pour l'ordre) sont en dans la mesure du possible définis par le
premier élément inclus et l'après-dernier (c'est à dire celui qui suit le dernier) exclu.
B. Utilisation
Sous CAML, lancer load "Winit";; et suivre les instructions. L'affichage du texte
s'effectue dans une fenêtre xterm spécifique distincte de celle de CAML, il faut
cependant laisser le pointeur de la souris dans cette dernière où l'éditeur écrit les
éventuels messages d'erreur.
Les fonctions accessibles au clavier sont les suivantes, affectées aux mêmes touches
que dans Winnie:
Wimel 4
caractères insertion des caractères
flèches déplacement dans le texte
backspace effacement dernier caractère
del ^D effacement caractère courant
return passage à la ligne suivante
^O insertion ligne blanche
R9 scroll-up
R15 scroll-down
tab tabulation
^A début de ligne
^E fin de ligne
L2 quitte, le texte est conservé dans le
contenu référencé par la variable dt
NE PAS TAPER: ^C ^Y ^Z ^\ ^S
Ne rien entrer dans la fenêtre d'affichage, si elle est perturbée par un
affichage intempestif,
F8 réaffiche le texte
On a en outre les fonctions "système":
F1 réinitialisation
(cf «dtxt:DTrebuild»»)
F2 liste les caractéristiques du buffer
(cf «dtxt:DTdiagram»»)
F3 idem (cf «dtxt:VPdiagram»»)
F7 recentre le texte autour du point
(cf «dtxt:DTcenter»»)
F8 réaffiche
C. Fichiers
Ceux indiqués dans la figure ci-dessous suffixés par .ml (seul Wcore se compile sous
l'option open_core()) et les fichiers suivants:
Wdebug Utilitaires de debugging
Wkey_names_sun Noms de touches pour le clavier virtuel
Wimel 5
Wprelude
|
Wlvect
|
Wgvect
|
Wvpart
|
Wmarks > Wtext
|
Wlines
|
Wdtxt < Wwin < Wterm
|
Wimel < Wkey2 < Wkey1 < Wcore
Les dépendances des fichiers sont indiquées dans la figure qui précède; sauf celles de
Wprélude nécessaire à presque tous les fichiers. Tous leurs noms commencent par la
lettre W; l'extension ".ml" est implicite. La plupart des identificateurs contiennent un
préfixe qui désigne leur fichier de définition. Voici une présentation rapide de leur
contenu qui sera développé par la suite:
fichier préfixe(s) contenu
Wprelude Définitions générales
Wlvect LV Vecteurs linéaires
Wgvect GV Vecteurs troués
Wvpart VP CHAR Partitions et vecteurs de caractères
Wlines LN Alignement vertical
Wmark DB MQ Marques
Wtext TX Textes
Wterm TERM Terminal virtuel
Wwin WIN Fenêtre d'édition
Wdtxt DT Texte affiché
Wlt LT Arbres étiquetés
Wkey1 K1 Clavier virtuel
Wkey2 K2 Assignations de touches
Wimel Boucle principale et initialisation
D. Conventions
1. Dénomination des identificateurs
Les identificateurs sont en général précédés d'un préfixe en majuscules qui indique le
module d'origine et souvent le type de l'argument "principal"; on appelle transformation
une fonction XXname t1 .. tn x -> x'
telle que x' (dont le type, identique à celui de x, sera souvent celui rattaché au préfixe
XX) puisse être considéré comme une transformation de x par XXname. Les arguments
t1..tn sont alors appelés paramètres. La place de x permet de composer des
1 / 38 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !