The previous sections illustrate the relationship
between macro compilation and execution and DATA step compilation
and execution. The relationship contains a pattern of simple repetitive
actions. These actions begin when text is submitted to the input
stack and the word scanner begins tokenization. At times the word
scanner waits for the macro processor to perform an activity, such
as searching the symbol tables or compiling a macro definition. If
the macro processor generates text during its activity, then it pauses
while the word scanner tokenizes the text and sends the tokens to
the appropriate target. These tokens might trigger other actions
in parts of SAS, such as the DATA step compiler, the command processor,
or a SAS procedure. If any of these actions occur, the macro processor
waits for these actions to be completed before resuming its activity.
When the macro processor stops, the word scanner resumes tokenization.
This process continues until the entire program has been processed.