#7 @5 'Enter /// when you are finished.'
#9 @5 val 100 attr=underline;
%do %until(%superq(val) eq %str(///)); /* No ampersand */
%let temp=&temp %superq(val); /* No ampersand */
You can invoke the macro ASK2 and enter a response:
My macro ADDRESS starts with %MACRO ADDRESS(COMPANY,
CITY);. I called it with %ADDRESS(SMITH-JONES, INC., BOSTON),
but it said I had too many parameters. What happened?
The response contains a macro language keyword, a macro invocation, and unmatched
Summary of Macro Quoting Functions and the
Characters That They Mask
Different macro quoting functions mask different special characters and mnemonics so
that the macro facility interprets them as text instead of as macro language symbols.
The following table divides the symbols into categories and shows which macro quoting
functions mask which symbols.
Table 7.6 Summary of Special Characters and Macro Quoting Functions by Item
Group Items Macro Quoting Functions
A + — */<>=¬^|~;, # blank AND OR
NOT EQ NE LE LT GE GT IN
B &% %NRSTR, %NRBQUOTE,
C unmatched' “() %BQUOTE, %NRBQUOTE,
%SUPERQ, %STR*, %NRSTR*,
96 Chapter 7 • Macro Quoting