Справочник по Ada 95
5.6 Блочные операторы
Оператор block_statement включает handled_sequence_of_statements, необязательно предваряемый declarative_part.
Синтаксис
block_statement ::=
[block_statement_identifier:]
[declare
declarative_part]
begin
handled_sequence_of_statements
end [block_identifier];
[block_statement_identifier:]
[declare
declarative_part]
begin
handled_sequence_of_statements
end [block_identifier];
Если у оператора block_statement есть идентификатор block_statement_identifier, то идентификатор должен быть повторён после end; в противном случае идентификатор после end отсутствует.
Статические семантика
Оператор block_statement без явного declarative_part имеет неявный пустой declarative_part.
Динамические семантика
Выполнение оператора block_statement состоит из разработки его declarative_part, за которым следует выполнение handled_sequence_of_statements.
Примеры
Пример блочного оператора с локальной переменной:
Swap:
declare
Temp : Integer;
begin
Temp := V; V := U; U := Temp;
end Swap;
declare
Temp : Integer;
begin
Temp := V; V := U; U := Temp;
end Swap;