RESCAN
This option specifies how the preprocessor should handle the case of identifiers when rescanning text.
- UPPER
- Rescans will not be case-sensitive.
- ASIS
- Rescans will be case-sensitive.
To see the effect of this option, consider the following code fragment:
%dcl eins char ext;
%dcl text char ext;
%eins = 'zwei';
%text = 'EINS';
display( text );
%text = 'eins';
display( text );When you compile with PP(MACRO('RESCAN(ASIS)')), in the second
display statement, the value of
text is replaced
by eins, but no further replacement occurs. This
is because under RESCAN(ASIS), eins does not match
the macro variable eins; the former is left as is
while the latter is in uppercase. Hence the following text is generated: DISPLAY( zwei );
DISPLAY( eins );But when you compile with PP(MACRO('RESCAN(UPPER)')), in the second
display statement, the value of
text is replaced
by eins , but further replacement does occur because
under RESCAN(UPPER), eins does match the macro variable eins (both
are in uppercase). Hence the following text is generated: DISPLAY( zwei );
DISPLAY( zwei );In summary, RESCAN(UPPER) ignores case while RESCAN(ASIS) does not.
