TITLE 'MACRO TO DO AN IF STATEMENT'
MACRO
IF &COND
GBLC &STACK(100)
GBLA &STACKPT
GBLB &ELSEF(100)
&STACKPT SETA &STACKPT+1
&STACK(&STACKPT) SETC '&SYSNDX'
&ELSEF(&STACKPT) SETB 0
L 0,&COND(1)
C 0,&COND(3)
AIF ('&COND(2)' NE 'EQ').SEQ01
BNE IFA&SYSNDX
.SEQ01 ANOP
AIF ('&COND(2)' NE 'LT').SEQ02
BC 10,IFA&SYSNDX
.SEQ02 ANOP
AIF ('&COND(2)' NE 'GT').SEQ03
BC 12,IFA&SYSNDX
.SEQ03 ANOP
MEND
MACRO
ELSE
GBLC &STACK(100)
GBLA &STACKPT
GBLB &ELSEF(100)
&ELSEF(&STACKPT) SETB 1
B IFB&STACK(&STACKPT)
IFA&STACK(&STACKPT) EQU *
MEND
*
MACRO
ENDIF
GBLC &STACK(100)
GBLA &STACKPT
GBLB &ELSEF(100)
AIF (&ELSEF(&STACKPT)).SEQ02
IFA&STACK(&STACKPT) EQU *
AGO .SEQ01
.SEQ02 ANOP
IFB&STACK(&STACKPT) EQU *
.SEQ01 ANOP
&STACKPT SETA &STACKPT-1
MEND
EJECT
P1 START
BALR 12,0
USING *,12
* YOUR PROGRAM GOES HERE
IF (A,LT,B)
IF (A,LT,C)
L 1,A
ELSE
L 1,C
ENDIF
ELSE
IF (C,GT,B)
L 1,B
ELSE
L 1,C
ENDIF
ENDIF
ST 1,MIN
* TEST IF WITHOUT ELSE
IF (MIN,LT,=F'0')
SR 1,1
ST 1,MIN
ENDIF
BR 14
*
* END OF YOUR PROGRAM
*
A DC F'3'
B DC F'4'
C DC F'2'
MIN DS F
END