ГОСТ Р ИСО 10303-14—2015
9.4.2 Вычисление значения тела отображения
Синтаксис:
136 шар decl = MAP nvap id AS target parameter ,;’ { target parameter
)
(
map subtype ot clause subtype binding header map decl body ) | (
binding header map decl body c binding header map decl body i )
END MAP ,;’ .
137 map decl body = { entity instantiation loop i
entity instantiation loop ) ) |map project clause ! (RETURN expression
) -
139 map project clause = SELECT { map attribute declaration ) .
134 map attribute declaration = [ target parameter rel [ index qualifier J
[ group qualifier J] attribute ref [ index qualifier J’
expression ,;’ .
Синтаксические элементы
map attribute declaration
и определяющий его
map decl
body
должны присваивать значения атрибутам экземпляров целевых объектов. Элемент
expression
должен вырабатывать значение, совместимое по присваиванию с атрибутом целевого объекта (см.
подраздел 13.3 ИСО 10303-11).
Объект
map decl body,
определяющий элемент
RETURN,
должен вычислять значение выра
жения. указанного после ключевого слова
RETURN.
Результатом данного вычисления должна стать ре
ализация экземпляров целевых объектов, совместимых по типу с объектными типами данных, опреде
ляемыми целевыми параметрами. Должны быть реализованы экземпляры объектов для всех целевых
параметров.
9.4.3 Итерационный процесс для одного связующего экземпляра
9.4.3.1 Введение
При вычислении отображения могут быть созданы агрегированные структуры экземпляров целе
вых объектных типов данных. Начальное значение этих агрегированных структур является неопреде
ленным.
Элементы языка
instantiation loop control
и
repeat control
обеспечивают следу
ющие виды итераций:
- итерация над совокупностью экземпляров агрегированной структуры языка EXPRESS;
- итерация, наращивающая значение числовой перемонной.
Синтаксис:
77 entity instantiation loop = FOR instantiation loop control
map project clause .
139 map project clause = SELECT { map attribute declaration ) .
119 instantiation loop control = instantiation foreach control I
repeat control .
116 instantiation toreach control = EACH variable id IN expression ( AND
variable id IN expression } [ INDEXING variable id J .
171 repeat control = l increment control 1 [ while control ) (
until control 1 .
Правила и ограничения
a) Элемент языка
map project clause
(см. синтаксическое правило 139) устанавливает ло
кальную область действия, в которой все переменные цикла
variable id
(см. синтаксическое пра
вило 118) определены неявным образом.
b
) Типом данных переменной, неявно объявленной элементом
variable id,
расположенным
перед ключевым словом
IN
(см. синтаксическое правило 118), является тип данных выражения.
c)
Типом данных переменной, неявно объявленной элементом
variable id,
расположенным
после ключевого слова
INDEXING
(см. синтаксическое правило 118), является тип данных
INTEGER.
20