Подключение внешних библиотек
OneScript подддерживает импорт внешних библиотек для повторного использования кода. Для импорта используется специальная директива препроцессора #Использовать (#Use).
Предположим, что в системе установлена библиотека работы с JSON. Код импорта библиотеки может выглядеть следующим образом:
#Использовать json
// класс ЧтениеJSON объявлен в библиотеке и доступен благодаря директиве #Использовать
ОбъектЧтения = Новый ЧтениеJSON();
// дальше идет какой-то код
// ...
Студент = Новый Структура("Имя,Фамилия", "Иван", "Петров");
// Модуль "РаботаСJSON" объявлен в библиотеке и доступен благодаря директиве #Использовать
РаботаСJSON.ЗаписатьОбъект(Студент, "C:\students.json");
Приведенный код - это пример импорта библиотеки. Реальный код работы с JSON может выглядеть и по-другому. Суть в том, что после подключения библиотеки в область видимости скрипта добавляются модули и классы, объявленные в этой библиотеке.
Стандартная библиотека скриптов
В составе дистрибутива OneScript поставляется базовый набор вспомогательных модулей, которые можно использовать в пользовательских скриптах. Данная библиотека расположена в подкаталоге lib внутри каталога установки OneScript.
Сами библиотеки разрабатываются на OneScript. (Репо на GitHub: https://github.com/oscript-library)
Принцип поиска библиотек
Директива "Использовать" имеет два варианта использования:
Имя библиотеки указано без кавычек - выполняется поиск библиотеки в предопределенных каталогах
#Использовать json // встроенный алгоритм поиска
Имя библиотеки указано в кавычках - имя библиотеки интерпретируется, как файловый путь. Относительный путь считается от каталога в котором лежит файл текущего скрипта.
#Использовать "lib/mylib" // явное указание пути к библиотеке
Предопределенные каталоги библиотек
Каталог установки OneScript имеет следующую структуру:
- bin
- oscript.cfg
- lib
- package-loader.os
- каталоги библиотек
Файл конфигурации
Подкаталог bin содержит исполняемые файлы программы и глобальный файл конфигурации. Файл конфигурации выглядит следующим образом:
#Конфигурационный файл OneScript
# Корневой каталог системных библиотек
lib.system = ../lib
#Дополнительные каталоги поиска библиотек
#lib.additional = C:\somedir;C:somedir2;
Каталоги, указанные в конфигурационном файле используются OneScript для поиска библиотек.
Локальный файл конфигурации
Приложение на 1Script может переопределить какие-либо параметры, заданные в конфигурационном файле. Начиная с версии 1.0.12 OneScript поддерживает локальный файл конфигурации.
Если в каталоге рядом со стартовым скриптом будет размещен файл oscript.cfg, то система обработает его и заменит параметры, указанные в глобальном конфиге теми, которые указаны локально.
# Локальный файл конфигурации
lib.system = ./lib-local
Параметр lib.system для данного скрипта будет переопределен.
Примечание Путь, который указан в параметре lib.system может быть, как абсолютным, так и относительным. Причем относительный путь разрешается относительно текущего файла конфигурации.
Стартовый скрипт - это точка входа в приложение, скрипт, с которого началось исполнение программы. Подробнее см. метод СтартовыйСценарий()
Структура каталога библиотек
В корне каталога библиотек (lib) может располагаться файл загрузчика с именем package-loader.os. Этот файл предназначен для управляемой загрузки библиотек в область видимости скрипта. Этот файл определяет, каким образом нужно загрузить библиотеку, какие модули и классы она содержит. Подробное описание загрузчика package-loader.os описано на соответствующей странице.
Конкретное внутреннее устройство библиотеки в самом движке OneScript никак не регламентируется и полностью управляется разработчиком библиотеки.
Кроме того, глобальный загрузчик можно переопределить. Если в корне какой-либо библиотеки тоже лежит файл package-loader.os, то для загрузки библиотеки будет использован именно он, а не глобальный из каталога lib.
См. также