Подключение внешних библиотек

OneScript подддерживает импорт внешних библиотек для повторного использования кода. Для импорта используется специальная директива препроцессора #Использовать (#Use).

Предположим, что в системе установлена библиотека работы с JSON. Код импорта библиотеки может выглядеть следующим образом:

#Использовать json

// класс ЧтениеJSON объявлен в библиотеке и доступен благодаря директиве #Использовать
ОбъектЧтения = Новый ЧтениеJSON();
// дальше идет какой-то код
// ...

Студент = Новый Структура("Имя,Фамилия", "Иван", "Петров");
// Модуль "РаботаСJSON" объявлен в библиотеке и доступен благодаря директиве #Использовать
РаботаСJSON.ЗаписатьОбъект(Студент, "C:\students.json");

Приведенный код - это пример импорта библиотеки. Реальный код работы с JSON может выглядеть и по-другому. Суть в том, что после подключения библиотеки в область видимости скрипта добавляются модули и классы, объявленные в этой библиотеке.

Стандартная библиотека скриптов

В составе дистрибутива OneScript поставляется базовый набор вспомогательных модулей, которые можно использовать в пользовательских скриптах. Данная библиотека расположена в подкаталоге lib внутри каталога установки OneScript.

Сами библиотеки разрабатываются на OneScript. (Репо на GitHub: https://github.com/EvilBeaver/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) может располагаться файл загрузчика с именем package-loader.os. Этот файл предназначен для управляемой загрузки библиотек в область видимости скрипта. Этот файл определяет, каким образом нужно загрузить библиотеку, какие модули и классы она содержит. Подробное описание загрузчика package-loader.os описано на соответствующей странице.

Конкретное внутреннее устройство библиотеки в самом движке OneScript никак не регламентируется и полностью управляется разработчиком библиотеки.

Кроме того, глобальный загрузчик можно переопределить. Если в корне какой-либо библиотеки тоже лежит файл package-loader.os, то для загрузки библиотеки будет использован именно он, а не глобальный из каталога lib.

См. также

Загрузчик внешних библиотек