-- 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;
