|
|
BSD 4.3tahoe
program frecur( output );
var
time : integer;
direction : integer;
function pad( j : integer ) : integer;
const
indent = 4;
begin
{}
if ( j <= 0 ) then begin
j := 1;
end;
{}
pad := j * indent;
end;
procedure a( procedure xx );
begin
writeln( ' ':pad(time) , 'a: about to xx()' );
xx;
writeln( ' ':pad(time) , 'a: back from xx()' );
end;
procedure b( procedure yy );
procedure c;
begin
writeln( ' ':pad(time) , 'c: about to a(yy)' );
time := time + direction;
a( yy );
writeln( ' ':pad(time) , 'c: back from a(yy)' );
end;
begin
if ( direction = 1 ) then begin
if ( time > 10 ) then begin
direction := -direction;
end;
time := time + direction;
writeln( ' ':pad(time) , 'b: about to b(c)' );
b( c );
writeln( ' ':pad(time) , 'b: back from b(c)' );
end else begin
writeln( ' ':pad(time) , 'b: about to yy' );
yy;
writeln( ' ':pad(time) , 'b: back from yy' );
end;
end;
procedure d;
begin
writeln( 'd:' );
end;
begin
time := 1;
direction := 1;
writeln( 'program: about to b( d )' );
b( d );
writeln( 'program: back from b( d )' );
end.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.