La forme structurée de l'information autorise deux choses :
Dans le présent paragraphe, on s'intéresse à ce dernier point.
1. Présentation
Pour correctement représenter l'élision on introduit un opérateur qui permet de donner une double représentation à un texte.
opérateur : reph
REP ::= REP reph
reph -> REP REP
reph est placé dans le phylum des représentations REP ; il est composé de deux valeurs de représentations :
- la première est utilisée tant que l'holophraste est non nul,
- la seconde est prise quand l'holophraste est nul.
(l'holophraste n'étant pas calculé à l'évaluation des textes, il est globalement défini pour une évaluation donnée).
Par exemple :
(def type-pile ()
(reph
("TYPE " (NOM) ":"
(rep
"RECORD" "^M"
" a:ARRAY[1.." (TAILLE) "] OF " (ELEMENT) ";" "^M"
" b:integer;" "^M"
"END RECORD;" "^M"))
("TYPE " (NOM) ":"
"pile(" (ELEMENT) "," (TAILLE) ");" "^M")))
Le texte type-pile est paramétré par :
- NOM : le nom du type de pile,
- ELEMENT : le type des éléments de la pile,
- TAILLE : la taille de la pile,
Une utilisation du type pourra être :
(def type-1 ()
((def NOM () ("tampon"))
(def ELEMENT () ("real"))
(def TAILLE () ("100")))
((type-pile)))
Une utilisation de type-1 fournit :
TYPE tampon:RECORD
a:ARRAY[1..100] OF real;
b:integer;
END RECORD;
TYPE tampon:pile(real,100);