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.2.1. Attributs de la syntaxe abstraite
9.2.11.1. Introduction
9.2.11.2. Evaluation des attributs
9.2.11.3. Attributs d'opérateurs
9.2.11.4. Attributs de phylum
9.2.11.5. Syntaxe concrète
9.2.11.6. Attributs d'opérateurs dans l'éditeur ligne
9.2.2. La Syntaxe Initiale
9.3. L'éditeur page : Guide de l'implanteur
Références
Rubrique Perl-Javascript

Attributs de la syntaxe abstraite

1. Introduction

2. Evaluation des attributs

3. Attributs d'opérateurs

4. Attributs de phylum

5. Syntaxe concrète

6. Attributs d'opérateurs dans l'éditeur ligne

6. Attributs d'opérateurs dans l'éditeur ligne

Cette partie s'intéresse plus spécifiquement à l'éditeur ligne.

6.1. les utilitaires

fonctions externes

evale ‹exp› ‹ctx›
retourne l'expression ‹exp› évaluée dans le contexte ‹ctx›.
sais ‹nomphyl›
saisie d'un opérateur dans le phylum ‹nomphyl›.
sais-lst ‹nomphyl›
saisie d'une liste d'opérateurs dans le phylum ‹nomphyl› – « liste » s'entend ici au sens de Lisp.
sais-num ‹nomphyl› ‹num›
saisie de ‹num› opérateurs dans le phylum ‹nomphyl›.
imp ‹nomphyl› ‹exp› ‹tab› ‹holo›
impression de l'expression ‹exp› dans le phylum ‹nomphyl›, avec une tabulation initiale ‹tab› et un holophraste initial ‹holo›.
imp-lst ‹nomphyl› ‹lst-exp› ‹tab› ‹holo›
impression de la liste d'expressions ‹lst-exp›.
imp-num ‹nomphyl› ‹lst-exp› ‹tab› ‹holo› ‹num›
impression des ‹num› premiers termes de la liste ‹lst-exp›, s'il se peut.
imp-eval ‹nomphyl› ‹exp-eval› ‹tab› ‹holo›
impression de l'expression évaluée ‹exp-eval› dans le phylum ‹nomphyl›, avec une tabulation initiale ‹tab› et un holophraste initial ‹holo›.
imp-lst-eval ‹nomphyl› ‹lst-exp-eval› ‹tab› ‹holo›
impression de la liste d'expressions évaluées ‹lst-exp-eval›.
imp-num-eval ‹nomphyl› ‹lst-exp-eval› ‹tab› ‹holo› ‹num›
impression des ‹num› premiers termes de la liste d'expressions évaluées ‹lst-exp-eval›, s'il se peut.

variables héritées

gtab : tabulation – incrémenté par la commande '('.
gholo : holophraste – modifié par la commande 'h'.
gnum : valeur de <num> à l'interprétation d'une commande.
genv : environnement courant – il permet de construire le contexte d'évaluation des textes.
gref : référence sur la position courante ; on utilise une référence sur l'objet, et non l'objet lui-même, pour réaliser les effets de bord (insertion, suppression).
glst : référence de début de liste des "termes".
goper : opérateur de la position courante.
gphyl : phylum de la position courante.

fonctions utilisateur

ERREUR-com ‹msg›
affiche le message ‹msg›, et vide le tampon des commandes : les commandes qui suivent sont ignorées, et le contrôle est rendu à l'utilisateur.
num-com
retourne dans la variable gnum la valeur de <num> à l'interprétation d'une commande.
eval-macro ‹macro›
construit une liste de commandes "calquée" sur ‹macro›, où les commandes de paramètre '-' sont instanciées.
eval-ctx ‹lst-env›
construit le contexte d'évaluation à partir de la liste ordonnée des environnements ‹lst-env›.
sais-rsp
construit le tampon des commandes, sous forme de liste, à partir de la ligne frappée par l'utilisateur.
sais-exp
saisie d'une expression Lisp (S-ex).
imp-vide
impression d'une liste vide : ....
pred ‹loc› ‹lst›
renvoie la référence qui précède immédiatement ‹loc› dans la liste ‹lst›.
succ ‹loc› ‹lst›
renvoie la référence qui suit immédiatement ‹loc› dans la liste ‹lst›.
sets ‹var1› ‹val1› ... ‹varN› ‹valN›
sauvegarde, en parallèle, les valeurs des variables ‹var1› ... ‹varN›, puis affecte à ces variables les valeurs respectives ‹val1› ... ‹valN›.
setb ‹var1› ... ‹varN›
restaure les valeurs des variables ‹var1› ... ‹varN›.

Note : sets et setb utilisent, pour une variable var donnée, une variable tampon Lisp : lst*var. On accède donc à chaque instant au contexte d'évaluation non évalué par la variable lst*genv.

6.2. entrée

L'entrée dans les champs d'un opérateur : on numérote les champs d'un opérateur, de 1 à N, dans l'ordre où ils apparaissent dans l'expression de la syntaxe initiale.

Par exemple :

6.3. sortie

La sortie des champs d'un opérateur : elle ne dépend pas du champ dont on vient mais de l'opérateur dans lequel on était entré.

6.4. impression évaluée

L'impression évaluée : il s'agit généralement de la même impression que l'impression non évaluée ; cependant pour les représentations ou les atomes atm, on présente une impression plus "attractive" – du moins plus éloignée de la représentation interne des textes.