Формат нейтральных файлов
Нейтральный файл состоит из строк текста ASCII. Формат включает следующие элементы:
• Строка, начинающаяся с символа #, является комментарием.
• Строка, не начинающаяся с символа #, имеет форму:
◦ уровень поле значение
◦ где:
◦ уровень — это целое число
◦ поле — это имя
◦ значение — это строка, которая может присутствовать
• Поле может представлять собой:
◦ имя простого типа данных (целое число, строка, вещественное число и т. д.);
◦ имя массива;
◦ имя структуры;
◦ имя указателя на структуру.
• Все поля на одном уровне принадлежат одному родительскому объекту.
• Когда значение присутствует на определенном уровне и начинается с символа левой квадратной скобки ([) либо состоит из последовательности цифр, разделенных запятыми, это указывает, что поле является массивом размеров [n]([m] ...). Значения элементов массива содержатся в строках уровня+1 вплоть до следующей строки, начинающейся снова с уровня.
◦ Для одномерных массивов только одна строка находится на более высоком уровне, значение которого представляет строку значений элементов, разделенных запятыми.
◦ Нотация < n*m> указывает, что все следующие элементы <n> имеют значение <m>.
• Если значение присутствует на определенном уровне (и не является строкой ->), это значение должно быть назначено полю.
• Если значение отсутствует на определенном уровне, это указывает на то, что поле является структурой. Непосредственные элементы объединения содержатся в строках уровня+1 вплоть до следующей строки, начинающейся снова с уровня.
• Строка, поле которой является строкой ugc_xar_len, является особым случаем, и указывает, что со следующей строки начинается описание массива значений длины.
• Если значение является строкой ->, поле является указателем на объединение, элементы которого следуют.
• Строка со специальным значением NULL указывает, что поле является указателем, значение которого null.