pTAL Guidelines for TAL Programmers
Differences Between TAL and pTAL
pTAL Guidelines for TAL Programmers—527256-002
3-18
Dynamically Selected Procedure Calls
Dynamically Selected Procedure Calls
In TAL, you can dynamically select a procedure and call the procedure using a CODE
(DPCL) statement.
In pTAL, you cannot use CODE statements. Instead, use procedure pointers to
dynamically select a procedure to call, as in the following examples.
Example 3-11. Procedure Pointers
INT i;
REAL r;
REAL .EXT r2;
STRUCT s1 [0:9];
BEGIN
REAL PROCPTR f(x);
REAL x;
END PROCPTR;
END;
PROC p (i, j) EXTENSIBLE, CALLABLE;
INT i, .EXT j;
FORWARD;
PROCPTR a (a, b) EXTENSIBLE, CALLABLE;
INT a, .EXT b;
END PROCPTR;
PROCPTR c (p);
REAL PROCPTR p (x);
REAL x;
END PROCPTR;
BEGIN
END PROCPTR;
REAL PROCPTR d (x);
REAL x;
END PROCPTR;
@a := @p;
@d := @s1[2].f;
@s1[3].f := @d;
CALL c(d);
CALL a(1, r2);
r := d(r);
IF (s1[i].f(r)) < 1.0E0 THEN ...