Горыныч
Система литературного программирования
НОВОСТИ | СКАЧАТЬ | РУКОВОДСТВО | КУПИТЬ | ПОМОЩЬ | КОНТАКТЫ |
<< Назад | Оглавление | Вперёд >>
Генерация кода
Целью операции является получение физических файлов, содержащих актуальную версию исходного кода "литературной" программы. Операция вызывается из меню Файл командой Сгенерировать код (горячая клавиша F5
).
При старте операции программа:
- Проверяет все редакторы на наличие несохранённых изменений. Если есть - применяет. Запрос на сохранение не выдаётся.
- Убеждается в отсутствии ошибок. Если есть хотя бы одна ошибка - прерывает операцию и активирует панель ошибок.
- Сохраняет хранилище.
По ходу операции программа поочерёдно обрабатывает все файлы, содержащиеся в хранилище. Для каждого файла:
- Определяет целевую папку для записи файла. Целевая папка должна существовать, потому что генератор кода не умеет создавать папки.
- Создаёт в ней временный файл (он имеет имя, содержащее случайный набор букв и цифр).
- Выполняет рекурсивное "раскрытие" ссылок в исходном коде файла и в исходном коде всех вставленных в него фрагментов. Раскрытие ссылки - это замена ссылки на исходный код того элемента, на который она указывает. В результате рекурсивного раскрытия ссылок формируется целевой код, очищенный от ссылок.
- Сбрасывает во временный файл полученное содержимое в заданной кодировке.
- Побайтно сравнивает временный файл с исходным (если последний существует). Исходный файл - это файл, сформированный при предыдущем запуске генератора. Если в результате сравнения выявлено несовпадение хотя бы одного байта, исходный файл заменяется временным. Если отличий нет, временный файл удаляется. Такое решение позволяет собирать программы с помощью инстументов типа
MAKE
, которые ориентируются на время изменения файла. - Если исходный файл отсутствует, программа просто переименовывает временный файл.
Особенности:
- Физическому файлу присваивается точно такое же имя, что присвоено элементу, из которого он произведён.
- Если данных для обработки много, операция может длиться долго.
Во время генерации кода возможно появление ошибок:
- Ошибки времени исполнения, обусловленные работой с файлами.
- Выявление циклической ссылки.
При обнаружении первой же ошибки генерация кода прерывается, а программа выдаёт диагностическое сообщение.
См. также
<< Назад | Оглавление | Вперёд >>