-- two scope levels with separate tables for local variables package test3 is body i : integer; procedure addone is j,k,l : integer; procedure doem is begin i := i + 1; j := j + 1; writeln(" doem/scope two: i= ",i," j= ",j); end; begin j := 0; doem; writeln("addone/scope one: j = ",j); end; begin i := 0; writeln("i = ", i, " (should be 0)"); addone; writeln("i = ", i, " (should be 1)"); addone; writeln("i = ", i, " (should be 2)"); addone; writeln("i = ", i, " (should be 3)"); writeln("test3 2 scope levels: All done!"); end;