Разделы
- 1. Введение
- 2. Описание языка
- 3. Интерфейс программирования приложений (API)
- 3.1. Стек
- 3.2. Резервация памяти
- 3.3. Сообщения
- 3.4. Типы данных
- 3.5. Функции
- 3.5.1. Базовые функции скриптоввой системы
- 3.5.2. Функции для вставки на вершину стека значения
- 3.5.3. Перевод значений со стека в скриптовую ситему (экспорт (stack => script))
- 3.5.4. Функции для получения со стека (stack => C(++))
- 3.5.5. Функции для работы с аргументами в вызванной C(++) функции из скриптовой системы (script => C(++) function)
- 3.5.6. Функции отладки (DEBUG)
- 3.5.7. Функции для работы с препроцессом
- 4. Стандартная библиотека
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]);