1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
* This is an example of a macro which calls another macro.
* Raynald Levesque.

SET mprint=on.
DATA LIST FREE /dummy.
BEGIN DATA 
1 2 3 2
END DATA.

* This macro calls mac2.
DEFINE !mac1 (myvar !TOKENS(1)).
!mac2 myvar=!myvar.
!ENDDEFINE.

*---------------------------------------------------------

DEFINE !mac2 (myvar !TOKENS(1)).
Compute !myvar=1.
EXECUTE.
!ENDDEFINE.

*---------------------------------------------------------

!mac1 myvar=dd.