My compiler says the length of the EQU must be an absolute value when I use 
wklen+8 on it.

-----Mensagem original-----
De: IBM Mainframe Assembler List <[email protected]> Em nome de 
Jon Perryman
Enviada em: terça-feira, 21 de novembro de 2023 19:03
Para: [email protected]
Assunto: Re: RES: RES: RES: RES: Macro variable attributes

On Tue, 21 Nov 2023 17:39:02 -0300, João Reginato <[email protected]> wrote:

>Have you read from the beginning of this thread?

Yes, I'm familiar with the thread. As I said before, we're making assumptions 
because you didn't state your intent. Instead, you gave a specific example 

>As I said in the first e-mail sent, I need the numeric value of a macro 
>variable "
> like &LV=wklen+8, where I don't know the initial value of wklen, but the 
> compiler knows it.

You've changed your intent. Jonathan and I based our suggestions on your 
original example. LV=WKLEN+8 changes the situation. Jonathan stipulated "&LEN 
contains a single symbol" which I interpret to mean it can't handle the "+8". 
Let's assume it does handle it. You then have a problem with LV=WKLEN+WK2LEN 
which can be worked around by splitting the text.

I suggested using EQU length. If I remember correctly, I've used 
LENGTH=L'WKLEN+72+L'WK2LEN in the past and should be resolvable by SETA. If 
this is not acceptable for your situation, then you'll have to wait for the 
PTFs or change your requirements.

>     MACRO
>&LABEL WORK &LEN=0
>&LABEL DS XL(&LEN)
>      MNOTE *,'LEN=&LEN'
>    MEND
>  WORK LEN=wklen
>Wklen equ  32

You're dealing with 2 languages (Assembler & Macro). Your WKLEN EQU is not 
resolvable by the macro and must be moved before the macro call. The assumption 
was that you only needed this for MNOTE. 

Reply via email to