parser_state *parse_header(FILE *data_file, int number_line)
- Получает открытый файл
- Читаем весь заголовок возвращая четыре основных параметра (program, variables, constant, steps)
- Проверяем строку на служебные команды
- Если служебная команда найдена - создать структуру с нужным названием, типом, данными и вернуть ее в интерпритатор
parser_result *read_string(FILE *file, int number_line)
- Получить открытый файл
- Читаем одну строку из файла
- Проверяем строку на то метка это или функция ('-' перед названием = функция, иначе метка)
- Если функция - собираем структуру с ее названием, номером строки и атрибутами и передаем в интерпритатор
- Если метка - собираем структуру с ее названием, номером строки и названием самой метки
[parser_state]
- char *name; #Имя структуры
- head_type type; #Тип структуры (переменная или константа)
- attribute *attribute; #Аттрибут
- int num_attr; #Количество аттрибутов
[parser_result]
- int number_line; #Номер строки
- char *name; #Имя структуры
- body_type type; #Тип структуры (функция или метка)
- attribute *attribute; #Аттрибут
- int num_attr; #Количество аттрибутов
[attribute]
- char *name; #Имя аттрибута
- attribute_type type; #Тип аттрибута (целое, с плавающей точкой, строка)
- union {
- int integer; #Целое
- float decimal; #С плавающей точкой
- char *string; #Строка
- } val; #Значение аттрибута