Jones - реализация OneScript на Java.
Расширение программ на Java-подобных языках через скрипты OneScript.
java -jar /path/to/jonec-exec.jar /path/to/script.os
где:
/path/to/jonec-exec.jar
- путь к исполняемому файлу. Где найти? Самому собрать из исходников или посмотреть в релизах (если они есть)./path/to/script.os
- путь к скрипту OneScript.
Например:
java -jar jonec-exec.jar my-script.os
Скрипт my-script.os
:
Перем ЧислоИзМодуля
Процедура ВывестиЧисло()
Сообщить(ЧислоИзМодуля);
КонецПроцедуры
ЧислоИзМодуля = 42;
Подключаем зависимость (собирается на JitPack)
develop-SNAPSHOT
- тег, по которому берется версия с JitPack. Тег может быть как
номер версии (если есть релизы), так и хеш коммита на GitHub.
Gradle:
implementation group: 'com.github.otymko', name: 'JOneS', version: 'develop-SNAPSHOT'
Gradle (Kotlin):
implementation("com.github.otymko", "JOneS", "develop-SNAPSHOT")
<dependency>
<groupId>com.github.otymko</groupId>
<artifactId>JOneS</artifactId>
<version>develop-SNAPSHOT</version>
</dependency>
Добавляем в приложение на Java:
// Путь к скрипту на Jones
Path pathToScript = Path.of("/path/to/my-script.os");
// Инициализация движка
ScriptEngine engine = new ScriptEngine();
// Инициализация компилятора
ScriptCompiler compiler = new ScriptCompiler(engine);
// Компиляция скрипта с базовым типом "Сценарий"(UserScriptContext)
ModuleImage moduleImage = compiler.compile(pathToScript, UserScriptContext.class);
// Создаём экземпляр объекта Сценарий из скомпилированного скрипта
ScriptDrivenObject sdo = engine.newObject(moduleImage);
// Получаем индекс метода по его ммени
int methodId = sdo.getScriptMethod("ВывестиЧисло");
// Вызываем метод
sdo.callScriptMethod(engine, methodId, new IValue[0]);
После выполнения кода, будет выведено сообщение:
42
Для начала, реализовать задачи на Доска MVP и выпустить релиз.
Используется лицензия Mozilla Public License Version 2.0