High Level Assembler allows both inner macro instructions and inner macro definitions. The inner
macro definition is not edited until the outer macro is generated as the result of a macro
instruction calling it, and then only if the inner macro definition is encountered during the
generation of the outer macro. If the outer macro is not called, or if the inner macro is not
encountered in the generation of the outer macro, the inner macro definition is never edited.
Figure 1 shows the editing of inner macro definitions. Figure 1. Editing inner macro definitions
First MAC1 is edited, and MAC2 and MAC3 are
not. When MAC1 is called, MAC2 is edited (unless
its definition is bypassed by an AIF or AGO branch); when MAC2 is
called, MAC3 is edited. No macro can be called until it
has been edited.
There is no limit to the number of nestings allowed for inner macro
definitions.