Перейти к основному содержимому
Версия: 7.0

Последовательность ({...})

Оператор последовательности создает действие, которое выполняет последовательность других действий одно за другим, в порядке записи. Выполнение прекращается, как только одно из вложенных действий формирует сигнал прерывания, следующей итерации или выхода — оставшиеся действия пропускаются, а сигнал передается окружающему действию.

Вместе с выполняемыми действиями последовательность может вводить также локальные свойства — свойства-данные, объявленные внутри блока. Локальное свойство существует только во время работы последовательности, а его изменения отбрасываются по ее завершении.

Язык

Для объявления действия, выполняющего последовательность других действий, используется оператор {...} — блок, ограниченный фигурными скобками, в теле которого находится последовательность операторов-действий и объявлений локальных свойств.

Примеры

CLASS Currency;
name = DATA STRING[30] (Currency);
code = DATA INTEGER (Currency);

CLASS Order;
currency = DATA Currency (Order);
customer = DATA STRING[100] (Order);
copy 'Копировать' (Order old) {
// создается действие, состоящее из последовательного выполнения двух действий
NEW new = Order {
currency(new) <- currency(old); // точка с запятой указывается после каждого оператора
customer(new) <- customer(old);
} // в этой строке точка с запятой не ставится, потому что оператор заканчивается на }
}

loadDefaultCurrency(ISTRING[30] name, INTEGER code) {
NEW c = Currency {
name(c) <- name;
code(c) <- code;
}
}
run () {
loadDefaultCurrency('USD', 866);
loadDefaultCurrency('EUR', 1251);
}