Comme il a été dit, l'éditeur page n'est que partiellement réalisé. Il présente une interface très proche de l'éditeur emacs.
La syntaxe conviviale des « textes » est un sous-ensemble strict de la syntaxe commune présentée auparavant (cf. Chapitre 3.1, « Présentation de la Syntaxe Complétée ») ; on rappelle cette dernière ici :
| (1) | env ::= ε | trm env |
| (2) | trm ::= def | ref | env |
| (3) | def ::= <nom> env rep |
| (4) | ref ::= <nom> env |
| (5) | rep ::= ε | atm rep |
| (6) | atm ::= stg | use | <string> | rep |
| (7) | stg ::= <nom> |
| (8) | use ::= <nom> env |
| (1) | un environnement est une liste de termes |
| (2) | un terme est une définition def ou une référence ref ou un environnement env – et ceci même avant l'évaluation |
| (3) | une définition est : un nom <nom>, un environnement, une représentation |
| (4) | une référence est : un nom <nom>, un environnement |
| (5) | une représentation est une liste d'atomes |
| (6) | un atome est une string stg ou une utilisation use ou une chaîne de caractères <string> ou une représentation rep – et ceci même avant l'évaluation |
| (7) | une string stg est : un nom <nom> |
| (8) | une utilisation est : un nom <nom>, un environnement |
| (a) | env ::= ε | trm env |
| (b) | trm ::= def |
def ::= <nom> env rep | |
| (c) | rep ::= ε | atm rep |
| (d) | atm ::= <string> | rep |
| (a) | un environnement env est un tampon pour l'édition de tampons ; on l'appelle dans la suite un « Buffer-Edit ». |
| (b) | un terme trm est une définition def ; c'est une ligne d'une fenêtre d'édition d'un Buffer-Edit. |
| (c) | une représentation rep est un tampon d'édition d'un « texte » ; c'est le tampon d'édition classique d'un éditeur, qu'on appelle ici « Buffer ». |
| (d) | un atome atm est la position du curseur dans une fenêtre d'édition d'un Buffer ; c'est le « point d'insertion » sous l'éditeur qui se rattache à la notion classique de curseur. |
1 | La champ |
2 | Une chaîne de caractères |