Заголовок модуля
В начале каждого модуля находится заголовок.
Синтаксис
MODULE name;
[REQUIRE moduleName1, ..., moduleNameN;]
[PRIORITY namespaceName1, ..., namespaceNameM;]
[NAMESPACE namespaceName;]
Описание
Заголовок модуля может состоять из четырех специальных инструкций, следующих в определенном порядке:
Инструкция MODULE
задает имя модуля и является обязательной. Все модули в рамках одного проекта должны иметь уникальные имена.
Инструкция REQUIRE
задает список модулей, от которых зависит текущий модуль. Если инструкция REQUIRE
отсутствует, то это эквивалентно зависимости только от модуля System
.
Инструкция PRIORITY
задает список дополнительных пространств имен, которые будут иметь приоритет при поиске элементов системы.
Инструкция NAMESPACE
задает пространство имен модуля.
Параметры
name
Имя модуля. Простой идентификатор. Имена модулей не могут содержать символ подчеркивания.
moduleName1, ..., moduleNameN
Список имен модулей, от которых зависит текущий модуль. Каждое имя является простым идентификатором.
namespaceName1, ..., namespaceNameM
Список имен пространств имен. Каждое имя является простым идентификатором.
namespaceName
Имя пространства имен модуля. Простой идентификатор, который не может содержать символ подчеркивания. Если инструкция
NAMESPACE
не используется в заголовке, то имя пространства имен текущего модуля будет равно имени модуля.
Примеры
MODULE EmployeeExample; // Задаем имя модуля
REQUIRE System, Utils; // Перечисляем модули, от которых зависит модуль Employee
NAMESPACE Employee; // Задаем пространство имен
CLASS Employee 'Сотрудник'; // Создаем класс
CLASS Position 'Должность'; // Создаем еще один класс
employeePosition(employee) = DATA Position (Employee); // Создаем свойство