C C36CF3 SUBROUTINE C36CF3(IVEC,IVAL,NERR) C C36CF3 - INFORMATION RETRIEVAL SYSTEM, EVALUATE LOGICAL EXPRESSION C C THIS SUBROUTINE IS CALLED UPON TO EVALUATE A LOGICAL EXPRESSION (IN C POLISH FORM NOTATION) CONTAINED IN IVEC. C DIMENSION IVEC(1), IV(40) DATA IWE/40/ C C INITIALIZE C IXP = 1 NERR = 0 CALL ICHGS(IVEC,IXP,IXPE) J=0 C C FETCH NEXT BYTE AND DETERMINE WHETHER OPERATOR OR OPERAND C 100 CALL GNXCH(K) IF (K) 120,120,102 102 L=K-250 IF (L) 104,104,110 104 J=J+1 IF (J-IWE) 106,105,105 105 NERR = 297 IVAL=0 RETURN 106 CONTINUE IF (K .EQ. 84) IV(J) = 1 IF (K .EQ. 70) IV(J) = 0 GO TO 100 C C PERFORM LOGICAL OPERATION (1=OR, 2=AND, 3=NOT) C 110 K=IV(J-1) M=IV(J) GO TO (111,112,113),L 111 K=K+M-K*M GO TO 1125 112 K=K*M 1125 J=J-1 IV(J)=K GO TO 100 113 IV(J)=1-M GO TO 100 C C EVALUATION COMPLETE. RETURN RESULT. C 120 IVAL=IV(J) RETURN END