is
given after the identifier of the package specification. (This rule applies, in particular, for implicit declarations.)
procedure
P is
A, B : BOOLEAN; procedure
Q is
C : BOOLEAN;
B : BOOLEAN; -- an inner homograph of B
begin
...
B := A; -- means Q.B := P.A;
C := P.B; -- means Q.C := P.B;
end
;
begin
...
A := B; -- means P.A := P.B;
end
;
K : INTEGER := K * K; -- illegal
T : T; -- illegal
procedure
P(X : P); -- illegal
procedure
Q(X : REAL := Q); -- illegal, even if there is a
-- function named Q
procedure
R(R : REAL); -- an inner declaration is
-- legal (although confusing)