Consider the following Ada skeletal program:
procedure Main is
X : Interger;
procedure Sub3; -- This is a declaration of Sub3
-- It allows sub1 to call it
procedure Sub1 is
X : Interger;
procedure Sub2 is
begin -- of Sub2
...
end; -- of Sub2
begin -- of Sub1
...
end; -- of Sub1
procedure Sub3 is
begin -- of Sub3
...
end; -- of Sub3
begin -- of Main
...
end; -- of Main
Assume that the execution of this program is in the following unit order:
Main calls Sub1
Sub1 calls Sub2
Sub2 calls Sub3
Need this explained:
Assuming static scoping, which declaration of X is the correct one for a reference to X in the following:
i. Sub1
ii. Sub2
iii. Sub3