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.