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
2.5.1. Présentation
2.5.2. La macro-génération
2.5.3. Les symétries du programme
2.5.4. Annexe 1 : Construction du champ CHP_PRESENT
2.5.5. Annexe 2 : Les fonctions de traitement en Lisp
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
Références
Rubrique Perl-Javascript

Annexe 2 : Les fonctions de traitement en Lisp

;===================
(de *putphyl (nomphyl attphyl)
   (let ((phyl (makephyl nomphyl attphyl)))
        (ins phylt phyl)
        (mapv '(lambda (oper)
                  (let ((drap (makedrap)))
                       (ins (phyloper oper) drap)
                       (ins (operphyl phyl) drap)))
              opert))
   (*putphyl-ana nomphyl attphyl))
;-------------------
(de *putoper (nomoper attoper)
   (let ((oper (makeoper nomoper attoper)))
        (ins opert oper)
        (mapv '(lambda (phyl)
                  (let ((drap (makedrap)))
                       (ins (operphyl phyl) drap)
                       (ins (phyloper oper) drap)))
              phylt))
   (*putoper-ana nomoper attoper))
;-------------------
(de *putoperphyl (phyl oper)
   (let ((drap (drap (operphyl phyl) (nomoper oper))))
        (ascendance phyl)
        (*insereoperphyl oper 1)
        (setpresent drap)
   (*putoperphyl-ana phyl oper))
;-------------------
(de *putperephyl (phyl pere)
   (ascendance pere)
   (when (parent phyl)
         (ERREUR "le phylum " (nomphyl phyl)
                 " est parent du phylum " (nomphyl pere)))
   (mapv '(lambda (oper drapoper)
             (when (visib drapoper)
                   (*insereoperphyl oper (valvisib drapoper))))
         opert (operphyl phyl))
   (ins (perephyl phyl) pere)
   (*putperephyl-ana phyl pere))
;-------------------
(de *insereoperphyl (oper valvisib)
   (mapv '(lambda (phyl drapphyl)
             (resetnouvvisib drapphyl)
             (when (parent phyl)
                   (incrvisib drapphyl valvisib (valparent phyl))))
         phylt (phyloper oper))
   (*insereoperphyl-ana oper))
;===================
(de *remphyl (phyl)
   (mapv '(lambda (pere)
             (*remperephyl phyl pere))
         (perephyl phyl))
   (mapv '(lambda (fils)
             (when (recherche (perephyl fils) (nomphyl phyl))
                   (*remperephyl phyl pere)))
         phylt)
   (let ((numphyl (num phylt phyl)))
        (numsup phylt numphyl)
        (mapv '(lambda (oper)
                  (numsup (phyloper oper) numphyl))
              opert))
   (*remphyl-ana phyl))
;-------------------
(de *remoper (phyl)
   (let ((numoper (num opert oper)))
        (numsup opert numoper)
        (mapv '(lambda (phyl)
                  (numsup (operphyl phyl) numoper))
              phylt))
   (*remoper-ana oper))
;-------------------
(de *remoperphyl (phyl oper)
   (let ((drap (drap (operphyl phyl) (nomoper oper))))
        (ascendance phyl)
        (*supprimeoperphyl oper 1)
        (resetpresent drap)
   (*remoperphyl-ana phyl oper))
;-------------------
(de *remperephyl (phyl pere)
   (ascendance pere)
   (mapv '(lambda (oper drapoper)
             (when (visib drapoper)
                   (*supprimeoperphyl oper (valvisib drapoper))))
         opert (operphyl phyl))
   (sup (perephyl phyl) pere)
   (*remperephyl-ana phyl pere))
;-------------------
(de *supprimeoperphyl (oper valvisib)
   (mapv '(lambda (phyl drapphyl)
             (resetancivisib drapphyl)
             (when (parent phyl)
                   (decrvisib drapphyl valvisib (valparent phyl))))
         phylt (phyloper oper))
   (*supprimeoperphyl-ana oper))
;===================
(de ascendance (phyl)
   (mapv 'resetparent phyl)
   (ascendance-int phyl))
(de ascendance-int (phyl)
   (setparent phyl)
   (mapv 'ascendance-int (perephyl phyl)))