When a macro executes,
it sometimes creates its own temporary symbol table, called a local
symbol table. The local symbol table exists in addition to the global
symbol table. If a macro creates or resolves macro variables, a local
symbol table might be used. In order to fully control macro behavior,
you must understand the basic rules that the macro processor uses
to determine which symbol table to access under specific circumstances.
Statements such as %GLOBAL and %LOCAL enable you to explicitly define
where macro variables are stored. The %SYMDEL statement enables you
to delete a macro variable from the global symbol table during a SAS
session.
You can call a macro
within a macro definition. That is, you can nest macros. When a nested
macro is called, multiple local symbol tables can exist. The MPRINTNEST
and MLOGICNEST options provide nesting information in the messages
that are written to the SAS log for the MPRINT and MLOGIC options.