what is wrong with my following code? your help is really appreciated
%let mcy=9;
%macro read;
filename in " path\fictional_data.txt";
data read;
infile in end=eof lrecl=10;
input @1   i&mcy.IDO   $CHAR2.
      @3   i&mcy.IPSS  $CHAR5.
	  @8   i&mcy.IPHP  $CHAR3.	
       ;
%if (i&mcy.IDO ne 'AL'  and i&mcy.IDO ne 'AK' ) and (i&mcy.IPSS ne ' ')
and (i&mcy.IPHP ne " " and i&mcy.IPHP ne "000" ) %then i&mcy.IDO="FR";
%else 
	%do ;
		i&mcy.IDO="XX";
	%end;
run;
%mend read;
%read
this is the log error i am getting  
NOTE: Line generated by the invoked macro "READ".
5     run;
      ---
      22
MPRINT(READ):   i9IDO="FR" run
MLOGIC(READ):  Ending execution.
ERROR 22-322: Syntax error, expecting one of the following: !,
              !!, &, *, **, +, -, /, <, <=, <>, =, >, ><, >=,
              AND, EQ, GE, GT, IN, LE, LT, MAX, MIN, NE, NG,
              NL, NOTIN, OR, ^=, |, ||, ~=.
************any help is appreciated!!!!!!!!!!!!
Message was edited by: statmn