Исполняемые операторы определяют действия функций, процедур и правил. Эти операторы могут производить действия только над локальными переменными для FUNCTION, PROCEDURE и RULE. Эти операторы используются для того, чтобы определить логические отношения и действия, необходимые для поддержки определения ограничений, то есть разделов WERE и RULE. Данные операторы не оказывают влияния на экземпляры объектов в области значений, как это определено в разделе 5. Исполняемыми операторами являются: пустой (null), ALIAS (псевдоимени), присваивания (assignment), CASE (альтернативы), составной (compound), ESCAPE (выхода), IF (условный), вызов процедуры (procedure call), REPEAT (цикла), RETURN (возврата) и SKIP (пропуска).
Синтаксис: |
291 stmt = alias_stmt | assignment_stmt | case_stmt | compound_stmt | escape_stmt | |
If_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | |
skip_stmt . |
Исполняемые операторы могут появляться только внутри FUNCTION, PROCEDURE или RULE.
13.1 Пустой оператор
Исполняемый оператор, который состоит только из точки с запятой (;), называется пустым (null) оператором. Никаких действий пустой оператор не выполняет.
Синтаксис: |
247 null_stmt = `;` . |
Пример 114 - Показано возможное использование пустого оператора.
IF a = 13 THEN |
; -- это пустой оператор. |
ELSE |
b := 5; |
END_IF; |
13.2 Оператор псевдоимени
Оператор ALIAS (псевдоимени) обеспечивает возможность локального переименования оп-ределенных переменных и параметров.
Синтаксис: |
164 alias_stmt = ALIAS variable_id FOR general_ref { qualifier } `;` stmt { stmt } |
END_ALIAS `;` . |
216 general_ref = parameter_ref | variable_ref . |
В области действия оператора ALIAS выражение variable_id неявно объявляется соответствующей типизированной переменной, имеющей значения определенного идентификатора, следующего за ключевым словом FOR.
Примечание - Правила видимости для variable_id описаны в 10.3.1.
Пример 115 - Предположим, что существует тип объекта point (точка) с атрибутами x, y, z, оператор ALIAS может быть использован в функции calculate_length (вычислить длину) для сокращения длины возвращаемого выражения.
ENTITY line; |
start_point, |
end_point : point; |
END_ENTITY; |
FUNCTION calculate_length (the_line : line) : real; |
ALIAS s FOR the_line.start_point; |
ALIAS e FOR the_line.end point; |
RETURN (SQRT((s.x - e.x) |
END_ALIAS; |
END_ALIAS; |
END_FUNCTION; |
13.3 Оператор присваивания
Оператор присваивания (assignment) используется для назначения экземпляра локальной переменной или параметра. Тип данных значения, присваиваемого переменной, должен быть совместим по присваиванию с переменной или параметром.
Примечание - Оператор присваивания может быть использован для определения того, что две локальные переменные являются одним и тем же экземпляром объекта.