Skip to content

Borbold/Parser-ReshCube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parser-ReshCube

"Как работает Parser?"

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; #Значение аттрибута

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages