Format von Neutraldateien
Eine Neutraldatei besteht aus ASCII-Textzeilen. Das Format umfasst folgende Elemente:
• Beginnt eine Zeile mit dem Zeichen #, handelt es sich um einen Kommentar.
• Zeilen ohne das Zeichen # haben folgende Form:
◦ Ebene Feld Wert (level field value)
◦ Dabei gilt:
◦ Ebene eine ganze Zahl ist
◦ Feld ein Name ist
◦ Wert eine Zeichenfolge ist, die vorhanden sein kann.
• Ein Feld muss eine der folgenden Angaben enthalten:
◦ Den Namen eines einfachen Datentyps (ganze Zahl, Zeichenfolge, reelle Zahl usw.)
◦ Den Namen eines Array
◦ Den Namen einer Struktur
◦ Den Namen eines Zeigers auf eine Struktur
• Alle Felder einer bestimmten Ebene gehören zu demselben Elternelement.
• Wenn ein Wert auf einer bestimmten Ebene vorhanden ist und mit der linken rechteckigen Klammer beginnt ([) oder aus einer Reihe durch Kommas getrennten Zahlen besteht, bedeutet das, dass das Feld ein Array der Bemaßung [n]([m] ...) ist. Die Elementwerte des Arrays befinden sich auf den Zeilen Ebene+1 nach oben bis zur nächsten Zeile, die als Ebene beginnt.
◦ Bei eindimensionalen Arrays befindet sich nur eine Zeile auf der höchsten Ebene, deren Wert eine durch Kommas getrennte Zeichenfolge von Elementwerten ist.
◦ Die Notation < n*m> gibt an, dass die einzelnen <n>-Elemente jeweils den Wert <m> haben.
• Wenn auf einer bestimmten Ebene ein Wert vorhanden ist (der nicht aus der Zeichenfolge -> besteht), ist dies der Wert, der dem Feld zugeordnet wird.
• Ist auf einer bestimmten Ebene kein Wert vorhanden, heißt das, dass das Feld eine Struktur ist. Unmittelbare Elemente des Aggregats befinden sich auf den Zeilen Ebene+1 nach oben bis zur nächsten Zeile, die als Ebene beginnt.
• Die Zeile, deren Feld die Zeichenfolge ugc_xar_len enthält, ist ein Sonderfall und gibt an, dass die nächste Zeile mit der Beschreibung eines Arrays mit einem Längenwert beginnt.
• Wenn es sich bei dem Wert um die Zeichenfolge -> handelt, ist das Feld ein Zeiger auf ein Aggregat, dessen Elemente folgen.
• Der spezielle Wert NULL bedeutet, dass das Feld ein Zeiger mit dem Wert Null ist.