Esempi di riconfigurazioni di dati
I seguenti sono esempi di tipi di regole di sostituzione per applicazioni specificamente richieste.
Inserimento di letterali
Per inserire un letterale, separare i termini del lato sinistro per la sua inserzione a destra.
a(A:10),b(A:70)->(a),(E'LIT':3),(b)
Gli 80 caratteri ASCII vengono emessi nell'area di output con il letterale EBCDIC LIT inserito dopo i primi 10 caratteri ASCII.
Cancellazione
I termini a sinistra sono separati in modo che il lato destro possa omettere i termini indesiderati.
(B:7),a(A:10)->(Ev(a):L(a))
Nell'area di output vengono emessi solo i 10 caratteri ASCII (come EBCDIC), le 7 cifre binarie vengono scartate.
Spaziatura nel buffer di output
Dove esiste un buffer di output preformattato (tipicamente un buffer di visualizzazione), la spaziatura può essere realizzata omettendo le funzioni di replica e di valore da un termine a destra.
a(A:74)->(E:6),(Ev(a):74)
La (E:6) fa sì che 48 posizioni di bit vengano saltate nell'area di output, poi i 74 caratteri ASCII vengono convertiti in EBCDIC ed emessi nella posizione corrente di output.
Lunghezze arbitrarie
Alcuni dispositivi/programmi generano un numero variabile di caratteri per riga ed è desiderabile produrre da essi record di lunghezza fissa.
a(A:#) -> (Ev(a):74)
I caratteri ASCII vengono troncati o riempiti secondo necessità e convertiti in EBCDIC in un campo di 74 caratteri.
Trasposizione
I campi da trasporre dovrebbero essere isolati come termini a sinistra.
a(X:2),b(A:#)->(Ev(b):L(b)),(a)
Calcolo della lunghezza della stringa
Alcuni formati richiedono la lunghezza della stringa come parte del flusso di dati. Ciò può essere ottenuto con la funzione di lunghezza.
a(E:10),b(X'FF':2)->(BL(a)+L(b)+8:8),(Av(a):L(a)),(b)
Il termine di lunghezza viene emesso per primo, in un campo di 8 bit. In questo caso la lunghezza comprende sia il campo di lunghezza sia il campo di caratteri ASCII.
Espansione e compressione dei simboli ripetuti
La regola seguente compatta i simboli ripetuti.
a(E:1), b(E#*v(a):L(b)) -> (BL(b)+1:8),(a)
Data la stringa di input riportata sotto, tre applicazioni successive della regola emetteranno la stringa di output mostrata.
Input: XXXXYYZZZZZZZ
Output: 4X2Y7Z