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

Типы

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.
1
error(10, `Error message %{ 10 }`)
2
error(10, `Error message %d`, 10)
Copied!

ErrID(error err) int

Функция ErrID возвращает идентификатор ошибки err. Эта функция может использоваться внутри конструкции try-catch для обработки ошибок.
1
run {
2
try {
3
.....
4
error(101, `oooops`)
5
}
6
catch err {
7
if ErrID(err) == 101 {
8
recover
9
} elif ErrID(err) < 100 {
10
retry
11
}
12
}
13
}
Copied!

ErrText(error err) str

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

ErrTrace(error err) arr.trace

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

exit(int code)

Функция exit прекращает работу скрипта. Функция может быть вызвана в любом потоке. Скрипт возвращает значение code.
1
func ok(int par) int {
2
if par == 0 : exit(0)
3
return 3 * par
4
}
5
run int {
6
int sum
7
for i in 10..-10 {
8
sum += ok(i)
9
}
10
return sum
11
}
Copied!

Progress( int id inc )

Функция Progress увеличивает величину счётчика процесса на значение параметра inc. id - идентификатор прогресс-бара возвращённый функцией ProgressStart. Функция Progress вызывает Go функцию ProgressFunc, которая должна быть определена в настройках при запуске скрипта.
1
int total = 200
2
int prog = ProgressStart(total, 100, `counter`, ``)
3
for i in 1..5 {
4
Progress(prog, 40)
5
}
6
ProgressEnd(prog)
Copied!

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 возвращает стек вызовов функций.
Last modified 1yr ago