Hello, I have following 3 programs. The 1st and 2nd program ran without error message. /****************** First Program ******************/ %macro sub(param); %let a=99; &a; %mend sub; %macro main(exp); data _null_; var=%sub(&exp); put var=; run; %mend main; %main(1+2) /****************** First Program ******************/ /****************** Second Program ******************/ %macro sub(param); %let c = %eval(¶m); &c; %mend sub; %macro main(exp); data _null_; var=%sub(&exp); put var=; run; %mend main; %main(1+2) /****************** Second Program ******************/ however,when I ran third program (which is a combination of 1st and 2nd program) , I got error message: ERROR 180-322: Statement is not valid or it is used out of proper order. /****************** Third Program ******************/ %macro sub(param); %let a=99; &a; %let c = %eval(¶m); &c; %mend sub; %macro main(exp); data _null_; var=%sub(&exp); put var=; run; %mend main; %main(1+2) /****************** Third Program ******************/ What mistake did I make in the 3rd program? Thank you very much for your help.
... View more