Разделы

3.5.4. Функции для получения со стека (stack => C(++))

Является ли значение переменной в стеке по номеру index типом? 0 - нет, 1 - да:

int s4g_sis_int(s4g_main* s4gm, int index);
int s4g_sis_uint(s4g_main* s4gm, int index);
int s4g_sis_float(s4g_main* s4gm, int index);
int s4g_sis_str(s4g_main* s4gm, int index);
int s4g_sis_bool(s4g_main* s4gm, int index);
int s4g_sis_c_func(s4g_main* s4gm, int index);
int s4g_sis_s_func(s4g_main* s4gm, int index);
int s4g_sis_table(s4g_main* s4gm, int index);
int s4g_sis_pdata(s4g_main* s4gm, int index);
int s4g_sis_null(s4g_main* s4gm, int index);
s4g_type s4g_sget_type(s4g_main* s4gm, int index);

возвращает тип значения переменной по номеру в стеке index

Возвращает приведенное к определенному типу значение переменной по номеру index в стеке:

s4g_sget_int(s4g_main* s4gm, int index);
s4g_uint s4g_sget_uint(s4g_main* s4gm, int index);
s4g_float s4g_sget_float(s4g_main* s4gm, int index);
s4g_bool s4g_sget_bool(s4g_main* s4gm, int index);
const char* s4g_sget_str(s4g_main* s4gm, int index);
s4g_c_function s4g_sget_cfunc(s4g_main* s4gm, int index);
s4g_pdata s4g_sget_pdata(s4g_main* s4gm, int index);
void s4g_spop(s4g_main* s4gm, int count);

выталкивает из стека count значений

int s4g_sgettop(s4g_main* s4gm);

возвращает количество элементов в стеке (если отнять единицу то получится номер вершины стека)

void s4g_spush_precall(s4g_main* s4gm);

сообщает виртуальной машине что будет вызвана функция, для вызова функции необходимо: 1. вызвать s4g_spush_precall 2. положить в стек вызываемую функцию 3. положить в стек аргументы для функции (если есть) 4. вызвать s4g_call с аргументом call_func равным true

void s4g_call(s4g_main* s4gm, bool call_func = false);

вызов функции/исполнения скрипта. Если вызов функции то сначала s4g_spush_precall, затем в стек кладется сама вызываемая функция, затем аргументы, если есть и только потом s4g_call с аргументом call_func равным true