On présente plusieurs opérateurs qu'on ajoute à la syntaxe concrète : on construit alors la syntaxe complétée, qui à son tour pourra être complétée par de nouvelles définitions :
fct : il simplifie l'insertion d'une expression Lisp ;lst-init, lst, tst, lst-env : ils permettent la manipulation de listes de textes ;lst2-init, lst2, tst2, atm1, atm2 : ils permettent le parcours simultané de deux listes de textes ;deft, reft, uset : ils servent à typer les textes, à leur définition et à leur emploi.1. Opérateur de S-expression simple
3. Opérateurs de listes doubles
On regroupe ici la syntaxe concrète et les opérateurs qu'on lui a ajouté.
| (1) | env ::= ε | trm env |
| §2 | lst-env ::= ε | env lst-env |
| (2) | trm ::= def | ref | env | lsp | deft | reft |
| (3) | def ::= <nom> env rep |
| (4) | ref ::= <nom> env |
| §4 | deft ::= <nom> <nom> env rep |
| §4 | reft ::= <nom> <nom> env |
| (5) | rep ::= ε | atm rep |
| (6) | atm ::= stg | use | <string> | rep | lsp | lst-init | lst | tst |
| (7) | stg ::= <nom> |
| (8) | use ::= <nom> env |
| §2 | lst-init ::= env rep |
| §2 | lst ::= ε | atm lst |
| §2 | tst ::= ε | sex tst |
| §3 | lst2-init ::= env env env rep |
| §3 | lst2 ::= ε | atm lst2 |
| §3 | tst2 ::= ε | sex tst2 |
| §3 | atm1 ::= ε | atm atm1 |
| §3 | atm2 ::= ε | atm atm2 |
| §3 | uset ::= <nom> <nom> env |
| (9) | lsp ::= ε | sex lsp | fct |
| §1 | fct ::= sex |
| (10) | sex ::= trm | atm | <liste> | <atome> |
Les numéros sont ceux de la syntaxe Lisp, une version déjà complétée de la syntaxe concrète.
Les numéros de paragraphes reportent aux paragraphes qui présentent les nouveaux opérateurs de la syntaxe complétée.