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

Типы

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 возвращает стек вызовов функций.
Copy link
On this page
Типы
trace
Функции
error(int id, str text, anytype pars...)
ErrID(error err) int
ErrText(error err) str
ErrTrace(error err) arr.trace
exit(int code)
Progress( int id inc )
ProgressEnd( int id )
ProgressStart( int total ptype, str src dest ) int
Trace() arr.trace