home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / pub / users / Harry / compilers / p11 / tst / param3.pcat < prev    next >
Text File  |  2006-03-05  |  1KB  |  40 lines

  1. (* This program tests passing parameters. *)
  2.  
  3. program is
  4.   procedure foo1 ( x1,y1,z1: integer) is
  5.       procedure foo2 ( x2,y2,z2: integer) is
  6.           begin
  7.             write ("   Entering foo2 ( x2=", x2, ", y2=", y2, ", z2=", z2, " )");
  8.             write ("    Adding 1000 to locals...");
  9.             x2 := 1000 + x2;
  10.             y2 := 1000 + y2;
  11.             z2 := 1000 + z2;
  12.             write ("    Locals: x2=", x2, ", y2=", y2, ", z2=", z2);
  13.             write ("    Non-locals: x1=", x1, ", y1=", y1, ", z1=", z1);
  14.             write ("    Adding 1000 to non-locals...");
  15.             x1 := 1000 + x1;
  16.             y1 := 1000 + y1;
  17.             z1 := 1000 + z1;
  18.             write ("    Non-locals: x1=", x1, ", y1=", y1, ", z1=", z1);
  19.             write ("   Leaving foo2");
  20.             return;
  21.           end;
  22.       begin
  23.         write (" Entering foo1 ( x1=", x1, ", y1=", y1, ", z1=", z1, " )");
  24.         write ("  Calling foo2 (201,202,203)");
  25.         foo2 (201,202,203);
  26.         write ("  Locals within foo1: x1=", x1, ", y1=", y1, ", z1=", z1);
  27.         write ("  Calling foo2 (301,302,303)");
  28.         foo2 (301,302,303);
  29.         write ("  Locals within foo1: x1=", x1, ", y1=", y1, ", z1=", z1);
  30.         write (" Leaving foo1");
  31.         return;
  32.       end;
  33.  
  34.   begin
  35.     write ("Within main...");
  36.     write ("Calling foo1 (101,102,103)");
  37.     foo1 (101,102,103);
  38.     write ("Leaving main");
  39.   end;
  40.