Рантайм

Здесь описаны функции для работы с виртуальной машиной во время выполнения скрипта.

Типы

trace

Тип trace служит для хранения информации о вызове функции и имеет следующие поля:

  • str Path - имя файла

  • str Entry - текущая функция

  • str Func - вызываемая функция

  • int Line - строка в исходном коде

  • int Pos - позиция в строке, где произошёл вызов

Функции

error(int id, str text, anytype pars...)

Функция error генерирует ошибку времени выполнения скрипта.

  • id - код ошибки,

  • text - текст ошибки,

  • pars - необязательные параметры. Если они указаны, то text должен содержать соответствующий шаблон

    как в функции Format.

error(10, `Error message %{ 10 }`)
error(10, `Error message %d`, 10)

ErrID(error err) int

Функция ErrID возвращает идентификатор ошибки err. Эта функция может использоваться внутри конструкции try-catch для обработки ошибок.

run {
try {
.....
error(101, `oooops`)
}
catch err {
if ErrID(err) == 101 {
recover
} elif ErrID(err) < 100 {
retry
}
}
}

ErrText(error err) str

Функция ErrText возвращает текст ошибки err. Эта функция может использоваться внутри конструкции try-catch для обработки ошибок.

ErrTrace(error err) arr.trace

Функция ErrTrace возвращает стек вызовов функций на момент возникновения ошибки err. Эта функция может использоваться внутри конструкции try-catch для обработки ошибок.

exit(int code)

Функция exit прекращает работу скрипта. Функция может быть вызвана в любом потоке. Скрипт возвращает значение code.

func ok(int par) int {
if par == 0 : exit(0)
return 3 * par
}
run int {
int sum
for i in 10..-10 {
sum += ok(i)
}
return sum
}

Progress( int id inc )

Функция Progress увеличивает величину счётчика процесса на значение параметра inc. id - идентификатор прогресс-бара возвращённый функцией ProgressStart. Функция Progress вызывает Go функцию ProgressFunc, которая должна быть определена в настройках при запуске скрипта.

int total = 200
int prog = ProgressStart(total, 100, `counter`, ``)
for i in 1..5 {
Progress(prog, 40)
}
ProgressEnd(prog)

ProgressEnd( int id )

Функция ProgressEnd удаляет счётчик процесса с идентификатором id.

ProgressStart( int total ptype, str src dest ) int

Функция ProgressStart создаёт счётчик процесса и возвращает его идентификатор. total - максимальная величина счётчика. ptype - тип счётчика, может быть любое число. src - имя источника. dest - имя целевого объекта. Функции для работы с прогрессом-баром ничего не отображают, они вызывают функцию ProgressFunc, которая должна быть определена в настройках при запуске скрипта. В функции ProgressFunc вы можете отображать состояние процесса удобным для вас способом. После окончания работы с данным счётчиком необходимо вызвать функцию ProgressEnd для его удаления.

Trace() arr.trace

Функция Trace возвращает стек вызовов функций.