Hello Chuck,
Parameters on the macro prototype are not assembler variables. They have quirks
in processing, and you've discovered one of them.
To do what you want to do, you will have to SETx the parameters to assembler
variables, and then perform your compound variable logic.
Cheers,
Ray
On 2012-04-01 10:07, Hardee, Chuck wrote:
Hello,
Thru the IBM Mainframe list I have been able to get the assembler to accept the
following as valid:
&VARNAM SETC 'P'.'&I'
&XVAL SETC '&(&VARNAM)'
&XVAL is defined as LCLC
This statement:
MNOTE 'VARNAM=&VARNAM'
results in the following in the assembly listing:
+VARNAM=P1
so it appears that the creation of the compound variable name is working
(compound being defined as the building of a variable name using two or more
parts at runtime.)
However, this statement:
&XVAL SETC '&(&VARNAM)'
results in the following in the assembly listing:
** ASMA003E Undeclared variable symbol; default=0, null, or type=U - TESTM/P1
** ASMA435I Record 44 in S01CH.MISC.MACLIB(TESTMAC) on volume: TECH27
(and I might add that I get the same warning for the remaining variables, P2,
P3, P4 P5 and P6)
Which makes no sense since the macro is defined:
MACRO
&LABEL TESTMAC&P1=,&P2=,&P3=,&P4=,&P5=,&P6=
Which, unless I've missed something, defines P1, P2, etc.
Can anyone shed some light on why the assembler would think that the variables
P1 thru P6 would be thought of as not defined when they are clearly defined in
the MACRO template?
Thanks,
Chuck
Charles (Chuck) Hardee
Senior Systems Engineer
Database Administration
Information Technology Services
Thermo Fisher Scientific
[email protected]
--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
German is essentially a form of assembly language consisting entirely of far
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
--Robert B Wilson
English is essentially French converted to 7-bit ASCII. ---Christophe Pierret
[for Alain LaBonté]