File in formato neutro
Un file neutro è composto da righe di testo ASCII. Il formato contiene i seguenti elementi:
Una riga che inizia con il carattere # è un commento.
Una riga che non inizia con il carattere # presenta il formato riportato di seguito.
livello campo valore
dove:
livello corrisponde ad un numero intero
campo corrisponde ad un nome
valore corrisponde ad una stringa opzionale
Un campo deve contenere uno dei seguenti nomi:
Il nome di un tipo di dati elementare (numero intero, numero reale, stringa e così via)
Il nome di un insieme
Il nome di una struttura
Il nome di un puntatore ad una struttura
Tutti i campi su un determinato livello appartengono allo stesso padre.
Se il valore è presente a un determinato livello e inizia con la parentesi quadra aperta ([) oppure è costituito da una serie di cifre separate da virgole, il campo è rappresentato da un insieme di dimensione [n]([m] ...). I valori degli elementi dell'insieme sono specificati nelle righe con livello immediatamente superiore fino alla riga successiva che inizia nuovamente con livello.
Per gli insiemi lineari, solo una riga si trova sul livello più alto, il cui valore corrisponde a una stringa formata da valori di elementi separati da virgole.
La notazione < n*m> indica che ciascuno degli elementi <n> che seguono ha il valore <m>.
Quando "valore" è specificato per un determinato livello (ed è diverso dalla stringa ->), questo corrisponde al valore da assegnare al campo.
Quando "valore" non è specificato ad un determinato livello, significa che il campo corrisponde ad una struttura Gli elementi della struttura sono specificati nelle righe con livello immediatamente superiore fino alla riga successiva che inizia nuovamente con livello.
La riga il cui campo corrisponde alla stringa ugc_xar_len rappresenta un caso particolare indicante che nella riga successiva inizia la descrizione di un insieme di lunghezza pari a "valore".
Quando "valore" corrisponde alla stringa ->, significa che il campo è un puntatore a una struttura di cui seguono gli elementi.
La stringa NULL indica che il campo è un puntatore il cui valore è pari a zero.