*DECK IFSYN 
USETEXT TBASCTB 
USETEXT TENVIRN 
USETEXT TEXPRES 
USETEXT TSBASIC 
USETEXT TXSTD 
      PROC IFSYN; 
  
#----------------------------------------------------------------------#
#                                                                      #
#  THE FOLLOWING PROCS ARE XDEF"D WITHIN THIS DECK:                    #
#                                                                      #
#     CKDES                        CHECKS FOR A DESCRIBED ITEM         #
#     CKFILL                       CHECKS IMMEDIATE OR DEFERRED EVAL   #
#     IFTEMP                       EVALUATES *IF* ON TEMPORARY ONLY    #
#     SETIFTBL                     FLAGS TYPE OF THING IFFED           #
#     SETNEXT                      SET TO ACCEPT NEXT TRANSMISSION     #
#                                                                      #
#----------------------------------------------------------------------#
  
      BEGIN 
  
      XREF ITEM DIRAREA B;         # TRUE IF DISPLAY OR IF DIRECTIVE   #
                                   # REFERENCES AREA ITEMS             #
      XREF ITEM OLDSEARCH B;   #VALUE OF SEARCHFLAG BEFORE THIS COMMAND#
      XREF ITEM RESTACKLOC;        # LOCATION OF RESTRICT STACK.       #
      XREF ITEM RSTKLEN;           # LENGTH OF RESTRICT STACK.         #
      XREF ITEM RESTRICTPROC B;    # TRUE IF PROCESSING RESTRICT CLAUSE#
      XREF ITEM SM$GROUPID I;      # CMM GROUP ID                      #
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC CKDES;
           PROC CKDES;
             IF DESITM THEN STDNO; ELSE STDYES; 
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
       XDEF PROC CKFILL;
#                              *CKFILL                                 #
#THIS PROC DETERMINES WHETHER *IF* SHOULD BE EVALUATED NOW OR IN 4X,0  #
#IF TEMPORARY ITEM AND FIRST 4X,0 CMD IN XMISSN, EVALUATED NOW, STDNO  #
#OTHERWISE MUST BE EVALUATED IN 4X,0, EXIT TO STDYES                   #
       PROC CKFILL; BEGIN 
           IFFAIL = FALSE;
          IF AREAITM OR FILEPASS OR DESITM THEN 
          BEGIN IF RECORDFLAG THEN STDYES;
                IFFLAG = TRUE;
                IF AREAITM THEN IF REFERFILE EQ 0 THEN
                   REFERFILE = 1; 
                IF NOT DESITM THEN FILEPASS = TRUE; 
                STDYES; 
          END 
          IF OLDSEARCH THEN        #NOT 1ST 4X CMD SO 4X MUST EVALUATE #
            BEGIN 
            STDYES; 
            END 
                            FILEPASS = FALSE; 
                 IFFLAG = FALSE;
                            STDNO;
           END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
           XDEF PROC IFTEMP;
           PROC IFTEMP; BEGIN 
           XREF PROC EXPEVALUATE; 
           ITEM RC I;              # RETURN CODE FROM EXPEVAL          #
           LOGICALRESLT = TRUE; 
          SEARCHFLAG = FALSE; 
      IF RECORDFLAG  THEN STDYES; 
           EXPEVALUATE(RC);        # EVALUATE EXPRESSION               #
           IF LOGICALRESLT THEN STDYES; 
           IFFAIL = TRUE; 
           STDNO; 
           END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
           XDEF PROC SETIFTBL;
           PROC SETIFTBL;  BEGIN
          IF AREAITM
          THEN
            BEGIN 
            FILEPASS = TRUE;
            DIRAREA = TRUE; 
            END 
          IF DESITM THEN DESPASS = TRUE;
          IF RECORDFLAG THEN STDNO; 
           P<BASICTABLE> = BASCPTR; 
          IF RESTRICTPROC THEN
            BEGIN 
                                   # SAVE PROGSTACK LOCATION AND LENGTH#
                                   # IN RSTKLEN AND RESTACKLOC.        #
            RESTACKLOC = PROGSTACKLOC;
            RSTKLEN =   PROGSTACKLEN; 
            END 
          ELSE
            BEGIN 
            BASCADDR[BASTABIND] = PROGSTACKLOC; 
            END 
           SM$GROUPID = 0;
           STDNO; 
           END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
           XDEF PROC SETNEXT; 
           PROC SETNEXT; BEGIN
           NEXTXMISSN = TRUE; 
           STDNO; 
           END
  
  
  
  
#----------------------------------------------------------------------#
  
  
      END 
      TERM
