A un premier niveau, on identifie une famille d'opérateurs primitifs pour représenter les « textes » : ils constituent la Syntaxe Concrète, représentée dans le Chapitre 2.
A un deuxième niveau, on introduit de nouveaux opérateurs, parce que les opérateurs précédents sont insuffisants pour traduire certaines dépendances qu'on trouve au sein des textes sources : pour l'essentiel, il s'agit des notions de code Lisp inséré dans le texte et de liste de textes. Ces opérateurs, ajoutés à la Syntaxe Concrète, constituent la Syntaxe Complétée, qu'on présente dans le Chapitre 3.
Enfin, à un troisième niveau, l'introduction de nouveaux opérateurs amène la question suivante : A-t-on bien exhaustivement balayé l'ensemble des types de dépendances qui apparaissent dans les textes sources ? Pour éviter de devoir y répondre, on transforme la manière dont est défini le langage : on l'exprime sous la forme d'une Syntaxe Abstraite et, par l'utilisation d'un traitement automatique, on s'autorise à facilement compléter le langage. Ceci fait l'objet du Chapitre 4.
Le Chapitre 5 reprend, plus formellement, les présentations antérieures :
Le Chapitre 6 replace l'outil en comparaison des outils ou démarches existants.
En conclusion, on présente les perspectives de poursuite des travaux : il s'agirait déjà de soumettre l'outil à un test « en vraie grandeur » sur un exemple de taille significative ; il s'agirait ensuite d'introduire la composante sémantique dans les « textes », morceaux de programme, qu'on est conduit à identifier. C'est le Chapitre 7.
Les deux derniers chapitres, placés en Annexe, traitent des réalisations informatiques liées aux travaux.
Le Chapitre 8 présente les deux éditeurs réalisés : l'éditeur ligne, qui supporte la totalité des fonctionnalités présentées mais est d'un emploi malaisé, et l'éditeur page, qui n'est que partiellement défini.
Le Chapitre 9 regroupe trois aspects d'implantation qu'on a jugé intéressant de retenir :