22.02.2015 Views

HLASM Language Reference

HLASM Language Reference

HLASM Language Reference

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Inner and Outer Macro Instructions<br />

1 macro<br />

2 &name ainsert_test_macro<br />

3 ainsert ' Macro',back<br />

4 ainsert ' mac1',back<br />

5 ainsert 'Blah blah blah',front<br />

6 &aread aread<br />

7 &aread setc '&aread'(1,1)<br />

8 ainsert '&&n seta n''&&syslist ',back<br />

9 ainsert ' dc a(&&n)',back<br />

1 ainsert ' dc c''&aread'' ',back<br />

11 ainsert ' mend',back<br />

12 mend<br />

13 <br />

14 testains csect <br />

15 <br />

16 ainsert_test_macro<br />

17+ ainsert ' Macro',back<br />

18+ ainsert ' mac1',back<br />

19+ ainsert 'Blah blah blah',front<br />

2-Blah blah blah<br />

21+ ainsert '&&n seta n''&&syslist ',back<br />

22+ ainsert ' dc a(&&n)',back<br />

23+ ainsert ' dc c''Blah blah '' ',back<br />

24+ ainsert ' mend',back<br />

25> Macro<br />

26> mac1<br />

27>&n seta n'&syslist<br />

28> dc a(&n)<br />

29> dc c'Blah blah '<br />

3> mend<br />

31 <br />

32 mac1 a,b,c,d,e,f,g<br />

33+ dc a(7)<br />

34+ dc c'Blah blah '<br />

35 <br />

36 end<br />

Figure 83. Expanding Nested Macro Definitions<br />

Inner and Outer Macro Instructions<br />

Any macro instruction you write in the open code of a source module is an outer<br />

macro instruction or call. Any macro instruction that appears within a macro<br />

definition is an inner macro instruction or call.<br />

Levels of Macro Call Nesting<br />

The code generated by a macro definition called by an inner macro call is nested<br />

inside the code generated by the macro definition that contains the inner macro<br />

call. In the macro definition called by an inner macro call, you can include a macro<br />

call to another macro definition. Thus, you can nest macro calls at different levels.<br />

The &SYSNEST system variable indicates how many levels you called. It has the<br />

value 1 in an outer macro, and is incremented by one at a macro call.<br />

312 <strong>HLASM</strong> V1R5 <strong>Language</strong> <strong>Reference</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!