home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / xco212p.zip / SAMPLES / DHRY / dry1.mod < prev    next >
Text File  |  1993-10-19  |  2KB  |  80 lines

  1. IMPLEMENTATION MODULE dry1;
  2.  
  3. IMPORT dry2;
  4.  
  5. PROCEDURE Proc1 (PtrValPar: dry2.RecPointer);
  6. BEGIN
  7.   WITH PtrValPar^.PtrComp^ DO
  8.     (* == PtrGlobNext *)
  9.     PtrValPar^.PtrComp^ := dry2.PtrGlob^;
  10.     PtrValPar^.IntComp := 5;
  11.     IntComp := PtrValPar^.IntComp;
  12.     PtrComp := PtrValPar^.PtrComp;
  13.     Proc3 (PtrComp);
  14.     (* PtrValPar^.PtrComp^.PtrComp == PtrGlob^.PtrComp *)
  15.     IF Discr = dry2.Ident1 THEN
  16.       (* then, executed *)
  17.       IntComp := 6;
  18.       dry2.Proc6 (PtrValPar^.EnumComp, EnumComp);
  19.       PtrComp := dry2.PtrGlob^.PtrComp;
  20.       dry2.Proc7 (IntComp, 10, IntComp);
  21.     ELSE
  22.       (* not executed *)
  23.       PtrValPar^ := PtrValPar^.PtrComp^;
  24.     END;
  25.   END;
  26. END Proc1;
  27.  
  28.  
  29. PROCEDURE Proc2 (VAR IntParRef: INTEGER);
  30.     (* executed once *)
  31.     (* *IntParRef == 1, becomes 4 *)
  32. VAR
  33.   IntLoc: INTEGER;
  34.   EnumLoc: dry2.Enumeration;
  35. BEGIN
  36.   IntLoc := IntParRef + 10;
  37.   REPEAT (* executed once *)
  38.     IF dry2.Ch1Glob = 'A' THEN
  39.       (* then, executed *)
  40.       DEC (IntLoc);
  41.       IntParRef := IntLoc - dry2.IntGlob;
  42.       EnumLoc := dry2.Ident1;
  43.     END;
  44.   UNTIL EnumLoc = dry2.Ident1; (* true *)
  45. END Proc2;
  46.  
  47.  
  48. PROCEDURE Proc3 (VAR PtrRefPar: dry2.RecPointer);
  49.     (* executed once *)
  50.     (* PtrRefPar becomes PtrGlob *)
  51. BEGIN
  52.   IF dry2.PtrGlob # NIL THEN
  53.     (* then, executed *)
  54.     PtrRefPar := dry2.PtrGlob^.PtrComp;
  55.   END;
  56.   dry2.Proc7 (10, dry2.IntGlob, dry2.PtrGlob^.IntComp);
  57. END Proc3;
  58.  
  59.  
  60. PROCEDURE Proc4; (* without parameters *)
  61.     (* executed once *)
  62. VAR
  63.  BoolLoc: BOOLEAN;
  64. BEGIN
  65.   BoolLoc := dry2.Ch1Glob = 'A';
  66.   dry2.BoolGlob := BoolLoc OR dry2.BoolGlob;
  67.   dry2.Ch2Glob := 'B';
  68. END Proc4;
  69.  
  70.  
  71. PROCEDURE Proc5; (* without parameters *)
  72.     (* executed once *)
  73. BEGIN
  74.   dry2.Ch1Glob := 'A';
  75.   dry2.BoolGlob := FALSE;
  76. END Proc5;
  77.  
  78.  
  79. END dry1.
  80.