simple_statement ::= null_statement | assignment_statement | exit_statement | procedure_call_statement | raise_statement | return_statement
compound_statement ::=
if_statement
| case_statement
| loop_statement
| block_statement
null_statement ::= null;
statement_identifier ::= direct_name
assignment_statement ::= variable_name := expression;
Value := Max_Value - 1; Shade := Blue; U := Dot_Product (V, W); Writer := (Status => Open, Unit => Printer, Line_Count => 60);
if_statement ::=
if condition then
sequence_of_statements
{elsif condition then
sequence_of_statements}
[else
sequence_of_statements]
end if;
condition ::= boolean_expression
case_statement ::=
case expression is
case_statement_alternative
{case_statement_alternative}
end case;
case_statement_alternative ::=
when discrete_choice_list =>
sequence_of_statements
Example programs:
loop_statement ::=
[loop_statement_identifier:]
[iteration_scheme] loop
sequence_of_statements
end loop [loop_statement_identifier];
iteration_scheme ::= while condition | for loop_parameter_specification
loop_parameter_specification ::= defining_identifier in [reverse] discrete_subtype_definition
Example programs:
block_statement ::=
[block_identifier:]
[declare
declarative_part]
begin
handled_sequence_of_statements
end [block_identifier];
Swap: declare Temp : Integer; begin Temp := V; V := U; U := Temp; end Swap;