Разделы
- 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.4. Типы данных
В s4g.h
можно переопределить стандартные поддерживаемые типы. По умолчанию они:
#define s4g_int long #define s4g_uint unsigned long #define s4g_float float #define s4g_bool short int #define s4g_pdata void*
Виртуальная машина s4g поддерживает вызов C(++) функций, то есть возможность экспортировать в скриптовую систему функции из хост программы для исполнения на стороне скриптов. Однако эти функции должны соответствовать следующему типу:
typedef int(*s4g_c_function) (s4g_main* vm);
Функции данного типа принимают на вход один единственный аргумент - это объект скриптововй системы, виртуальная машина, которая вызвала данную функцию. В этой вызванной функции можно манипулировать скриптовой системой посредством API функций.
Если вызванная C(++) функция возвращает значение меньше нуля, то значит, произошла ошибка и машина остановит выполнение кода, все остальные значения (>0) не имеют. смысла