Format de fichier neutre
Un fichier neutre est constitué de lignes de textes ASCII. Sa syntaxe se caractérise par les éléments suivants :
• Une ligne commençant par le caractère # est un commentaire.
• Une ligne ne commençant pas par le caractère # est de la forme :
◦ niveau champ valeur
◦ où :
◦ niveau est un nombre entier ;
◦ champ est un nom ;
◦ valeur est une chaîne qui peut être présente.
• Un champ doit être l'un des éléments suivants :
◦ le nom d'un type de données simple (entier, chaîne, réel, etc.) ;
◦ le nom d'un tableau ;
◦ le nom d'une structure ;
◦ le nom d'un pointeur sur une structure.
• Tous les champs d'un niveau donné appartiennent au même parent.
• Si la valeur est présente à un certain niveau et commence par le caractère crochet gauche ([) ou consiste en une série de chiffres séparés par des virgules, elle indique que le champ est un tableau de cotes [n]([m] ...). Les valeurs des éléments du tableau sont contenues sur les lignes niveau+1 jusqu'à la prochaine ligne commençant à nouveau par niveau.
◦ Pour des tableaux à une dimension, une seule ligne est au niveau supérieur (la valeur de ce niveau est une chaîne de valeurs d'éléments séparées par des virgules).
◦ La notation < n*m> indique que les éléments <n> suivants ont chacun la valeur <m>.
• Lorsqu'une valeur est présente à un certain niveau (et n'est pas la chaîne ->), il s'agit de la valeur à attribuer au champ.
• Lorsqu'une valeur est absente à un certain niveau, cela indique que le champ est une structure. Les éléments immédiats de l'agrégat sont contenus sur les lignes niveau+1 jusqu'à la prochaine ligne commençant à nouveau par niveau.
• La ligne dont le champ est la chaîne ugc_xar_len est un cas spécial indiquant que la ligne suivante commence la description d'un tableau de longueurs.
• Lorsque la valeur est la chaîne ->, le champ est un pointeur vers un agrégat dont les éléments suivent.
• La chaîne de valeur spéciale NULL indique que le champ est un pointeur dont la valeur est nulle.