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