subprogram_specification is
declarative_part
begin
handled_sequence_of_statements
end [designator];
begin
if S.Index = S.Size then
raise Stack_Overflow;
else
S.Index := S.Index + 1;
S.Space(S.Index) := E;
end if;
end Push;
Sum : Real := 0.0;
begin
Check(Left'First = Right'First and Left'Last = Right'Last);
for J in Left'Range loop
Sum := Sum + Left(J)*Right(J);
end loop;
return Sum;
end Dot_Product;
function F(X : Integer := 1) return Boolean;
end A;
package B is
package A_View renames A;
function F_View(X : Integer := 9999) return Boolean renames F;
end B;
procedure Main is ...
procedure Put(X : in Integer);
procedure Put(X : in String);
procedure Put(X : in Character);
private
procedure Character_Put(X : in Character) renames Put;
pragma Inline(Character_Put);
end IO;
procedure Main is
I : Integer;
C : Character;
begin
...
Put(C); --Inline expansion is desired.
Put(I); --Inline expansion is NOT desired.
end Main;