Перейти к содержанию

1. Быстрый старт

← Оглавление · Далее: основы языка →

Требования

Для сборки и запуска нужен JDK 21 или новее. Runtime-импорт .java файлов тоже требует JDK, а не только JRE.

Сборка интерпретатора

Из корня репозитория:

./build.sh

После успешной сборки появится файл jobs.jar.

Запуск скрипта

Создайте файл hello.jobs:

println "Hello, JOBS!"

Запустите его:

java -jar jobs.jar hello.jobs

Можно запускать и готовые примеры из папки examples/:

java -jar jobs.jar examples/01-log-report.jobs

Интерактивный REPL

Для быстрых экспериментов можно запустить интерактивный режим:

java -jar jobs.jar -i

REPL читает код построчно и выполняет его сразу после ввода законченного фрагмента. Переменные, use, импорты и функции остаются доступными в следующих вводах:

jobs> $x = 2
jobs> println $x + 3
5

Если строка открывает блок { ... }, ввод продолжается с дополнительным prompt до закрывающей }:

jobs> Say-Hello {
....>     println "Hello"
....> }
jobs> Say-Hello()
Hello

В интерактивном терминале можно редактировать текущую область ввода стрелками:

  • и перемещают курсор влево и вправо;
  • и перемещают курсор между строками многострочного ввода;
  • на верхней строке показывает предыдущую команду из истории;
  • на нижней строке показывает следующую команду из истории.

Если stdin не является терминалом, например при printf 'println "ok"\n' | java -jar jobs.jar -i, REPL работает в простом построчном режиме без редактора стрелок.

Выйти можно командами :quit, :exit или сочетанием Ctrl-D.

Первый полезный скрипт

params {
    ## Имя пользователя.
    $name String = "World"
}

$message = "Hello, $name"
println $message

Запуск с параметром:

java -jar jobs.jar hello.jobs --name Alex

Параметры можно передавать как --name value или --name=value.

Комментарии и документация

Обычный комментарий начинается с #:

# Эта строка не выполняется.
println "work"

Документирующий комментарий начинается с ##. Он используется, например, для описания программы и параметров в автоматическом help:

## Печатает приветствие.
params {
    ## Кого поприветствовать.
    $name String = "World"
}

Help вызывается так:

java -jar jobs.jar hello.jobs --help
java -jar jobs.jar hello.jobs -h

Подсветка синтаксиса

В репозитории есть Tree-sitter grammar для JOBS в папке tree-sitter-jobs/. Она нужна редакторам, чтобы подсвечивать .jobs файлы.

← Оглавление · Далее: основы языка →