Заголовок модуля
В начале каждого модуля находится заголовок.
Синтаксис
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); // Создаем свойство