Block Statements
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Ada Reference Manual — Legal Information

# 5.6 Block Statements

1
A block_statement encloses a handled_sequence_of_statements optionally preceded by a declarative_part.

#### Syntax

2
block_statement ::=
[block_ statement_identifier:]
[declare
declarative_part]
begin
handled_sequence_of_statements
end [block_ identifier];
3
If a block_statement has a block_ statement_identifier, then the identifier shall be repeated after the end; otherwise, there shall not be an identifier after the end.

#### Static Semantics

4
A block_statement that has no explicit declarative_part has an implicit empty declarative_part.

#### Dynamic Semantics

5
The execution of a block_statement consists of the elaboration of its declarative_part followed by the execution of its handled_sequence_of_statements.

#### Examples

6
Example of a block statement with a local variable:
7
Swap:
declare
Temp : Integer;
begin
Temp := V; V := U; U := Temp;
end Swap;

Ada 2005 and 2012 Editions sponsored in part by Ada-Europe