Разделы
- 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. Стандартная библиотека
2.8.1. Пространства имен
Пространством имен является таблица. Таблица в свою очередь может быть контекстом, который не доступен для управления скриптеру, и значением, которым может манипулировать скриптер.
Изначально в s4g существует 2 пространства имен: языковое (нулевое), и глобальное (первое).
Языковое пространство имен содержит стандартную библиотеку с данными (функции и значения) и доступно из любого контекста непосредственно. Также в это пространство имен на стороне хост программы (управляющего скриптовой системой приложения) можно экспортировать необходимый функционал.
Глобальное пространство имен, доступно из любого участка кода (в не зависимости от контекста исполнения) через таблицу _g
(по умолчанию), это значение определено в дефайне S4G_GLOBAL_NM
в файле s4g.h
. Пример:
_g.$a = 10;
Глобальное пространство имен доступно непосредственно в глобальном контексте исполнения (в данном случае это одинаковые понятия). Вышеприведенный пример аналогичен:
$a = 10;
Глобальное пространство имен доступно из локальных контекстов только посредством таблицы _g
. Пример:
$a = 10; if(a > 0) { _g.a = 11; }
В случае попытки переопределения языковых функций/данных произойдет ошибка.