Разделы

3.5.3. Перевод значений со стека в скриптовую ситему (экспорт (stack => script))

В данных функциях аргумент index означает абсолютную (больше либо равное нулю значение) позицию элемента в стеке, либо относительно вершины стека (меньше нуля, -1 вершина стека, -2 на одну позицию ниже вершины стека и так далее), либо один из существующих псевдоиндексов определенных в файле s4g.h:

//глобальное пространство имен
#define S4G_NM_GLOBAL INT_MIN   
//языковое/системное пространство имен
#define S4G_NM_SYS INT_MIN+1    
void s4g_sstore(s4g_main* s4gm, int index, const char* name);

функция сохранения в пространство имен, после сохранения функция выталкивает сохраненное значение с вершины стека.
index в стеке должна быть таблица, либо S4G_NM_GLOBAL если идет сохранение в глобальное пространство, либо S4G_NM_SYS если в языковое/системное.
name имя переменной, а значение берется с вершины стека

table(stack[index])[name] = stack[-1];
void s4g_sget(s4g_main* s4gm, int index, const char* name);

получить значения, после получения, функция кладет на вершину стека полученное значение
index в стеке должна быть таблица, либо S4G_NM_GLOBAL если берется из глобального пространства, либо S4G_NM_SYS если из языкового/системного
name имя переменной, а значение берется с вершины стека

stack.push(table(stack[index])[name]);