Exemples de reconfigurations de données
Voici des exemples de types de règles de remplacement pour des applications précisément requises.
Insertion de littéral
Pour insérer un littéral, séparez les termes du côté gauche en vue de son insertion à droite.
a(A:10),b(A:70)->(a),(E'LIT':3),(b)
Les 80 caractères ASCII sont émis dans la zone de sortie, le littéral EBCDIC LIT étant inséré après les 10 premiers caractères ASCII.
Suppression
Les termes de gauche sont séparés afin que le côté droit puisse omettre les termes indésirables.
(B:7),a(A:10)->(Ev(a):L(a))
Seuls les 10 caractères ASCII sont émis (en EBCDIC) dans la zone de sortie, les 7 chiffres binaires sont écartés.
Espacement dans le tampon de sortie
Lorsqu'il existe un tampon de sortie préformaté (typiquement un tampon d'affichage), l'espacement peut être réalisé en omettant les fonctions de réplication et de valeur d'un terme situé à droite.
a(A:74)->(E:6),(Ev(a):74)
Le (E:6) fait sauter 48 positions de bit dans la zone de sortie, puis les 74 caractères ASCII sont convertis en EBCDIC et émis à la position de sortie courante.
Longueurs arbitraires
Certains dispositifs/programmes génèrent un nombre variable de caractères par ligne et il est souhaitable d'en produire des enregistrements de longueur fixe.
a(A:#) -> (Ev(a):74)
Les caractères ASCII sont tronqués ou complétés par remplissage selon les besoins, puis convertis en EBCDIC dans un champ de 74 caractères.
Transposition
Les champs à transposer doivent être isolés en tant que termes à gauche.
a(X:2),b(A:#)->(Ev(b):L(b)),(a)
Calcul de longueur de chaîne
Certains formats exigent la longueur de chaîne comme partie du flux de données. Cela peut être réalisé par la fonction de longueur.
a(E:10),b(X'FF':2)->(BL(a)+L(b)+8:8),(Av(a):L(a)),(b)
Le terme de longueur est émis en premier, dans un champ de 8 bits. Dans ce cas, la longueur comprend le champ de longueur ainsi que le champ de caractères ASCII.
Expansion et compression des symboles répétés
La règle suivante compresse des symboles répétés.
a(E:1), b(E#*v(a):L(b)) -> (BL(b)+1:8),(a)
Étant donné la chaîne d'entrée ci-dessous, trois applications successives de la règle émettront la chaîne de sortie montrée.
Input: XXXXYYZZZZZZZ
Output: 4X2Y7Z