*DECK BWZ$RT
USETEXT DNTEXT
USETEXT RPTEXT
PROC BWZ$RT;
          BEGIN 
  
          #BLANK WHEN ZERO    ROUTINE#
          #*# 
          #THIS ROUTINE#
          #- PERFORMS ANALYSIS ON THE DNAT ENTRIES FOR ONE REPORT#
          #GROUP WITH RESPECT TO THE SYNTAX RULES IN SECTION# 
          #6.15.3  FOR THE BLANK-WHEN-ZERO CLAUSE  WHICH# 
          #DECREE THAT# 
          #BLANK WHEN ZERO CLAUSE CAN ONLY BE USED FOR AN#
          #ELEMENTARY ITEM WHOSE PICTURE IS SPECIFIED  AS#
          #NUMERIC OR NUMERIC-EDITED.#
  
          ITEM   RGDNATPTR, 
                 AUXINDEX ; 
  
  
          ITEM   $TEMP$,
                $DUMMY$;
  
          XREF   PROC         INTERCEPT;
          XREF   FUNC         PLTCNVRT I; 
          XREF   PROC         RWSET    ;
          XREF   PROC         RWSET1   ;
          XREF   PROC         GETNEXT  ;
          XREF   FUNC         RP$AUXPTR;
          XREF   FUNC         RWGET    ;
          XREF   FUNC         RWGET1   ;
  
          DEF    GET          #GETFIELD#; 
          DEF    SET          #SETFIELD#; 
          DEF    GETQ         #GETQUICK#; 
  
*CALL RPCOMM
*CALL AUXT1 
*CALL AUXTVALS
*CALL DNATVALS
*CALL GETSET
*CALL TABLNAMES 
          CONTROL EJECT;
  
  
  
  
  # * * * * * * * * * * * * * * * * * * * * * * * * # 
          EPTRACE("BWZ$RT") 
  
          IF FIRSTF3OR4DE EQ 0 THEN 
              GOTO ENDBWZ;
          FOR RGDNATPTR = FIRSTF3OR4DE STEP 1 UNTIL LASTRGDNAT DO 
              BEGIN 
              AUXINDEX =  RP$AUXPTR(RGDNATPTR); 
              $TEMP$ = GETQ(DN$LEVEL,DNAT$,RGDNATPTR);
  
              IF $TEMP$  GR  1
                  AND 
                  RWGET(RAFORMAT4BIT,AUXINDEX) EQ 1 
                  #IE.-  A FORMAT 4  ENTRY# 
  
                  AND 
                  RWGET(RABLANKBIT,AUXINDEX) EQ 1 
              THEN
                  BEGIN 
                  IF RWGET(RAELEMITEMBT,AUXINDEX) EQ 1
  
                      #ELEMENTARY-ITEM CHARACTERISTIC IS DETERMINED#
                      #IN SECTION 4D OF FORMATS$ANAL RT.# 
                  THEN
                      GOTO BZCHEKNUMERC;
  
                  #ELSE  ERROR  -#
  
  
                  #DIAGNOSTIC#
                  #BLANK WHEN ZERO CLAUSE CAN BE USED ONLY FOR AN#
                  #ELEMENTARY ITEM# 
  
                  CALLTDIAG(RGDNATPTR,45);
                  GOTO  BZEND1STDO; 
BZCHEKNUMERC: 
                  $TEMP$ = GETQ(DN$TYPE,DNAT$,RGDNATPTR); 
                  IF $TEMP$ EQ NUMERIC
                      OR
                      $TEMP$ EQ NUMERICEDIT 
                  THEN
                      GOTO  SETBWZBIT;
  
                  #ELSE  ERROR  -#
  
  
                  #DIAGNOSTIC#
                  #BLANK WHEN ZERO CLAUSE CAN BE USED ONLY FOR AN ITEM# 
                  #SPECIFIED AS NUMERIC OR  NUMERIC-EDITED# 
  
                  CALLTDIAG(RGDNATPTR,46);
                  GOTO BZEND1STDO;
SETBWZBIT:  
  
                  #UNLESS A VALUE CLAUSE IS ASSOC. WITH THIS ITEM#
                  #(SEE RULE 6 43 4C)                            #
                  #SET BLANK WHEN ZERO BIT IN DNAT ENTRY SO#
                  #C-GEN PHASE WILL GEN. NECESSARY CODE#
  
                  IF RWGET(RAVALUEBIT,AUXINDEX) EQ 0
                  THEN
                      SET(DN$BZERO,DNAT$,RGDNATPTR,1);
                  #THE FOLLOWING CODE SATISFIES L-POOLER AND CODE-GEN#
                  #REQUIREMENTS.# 
                  IF GETQ(DN$TYPE,DNAT$,RGDNATPTR) EQ NUMERIC 
                  THEN
                      BEGIN 
                      SET(DN$TYPE,DNAT$,RGDNATPTR,NUMERICEDIT); 
                      GOTO BZEND1STDO;
                      END 
                  IF GETQ(DN$TYPE,DNAT$,RGDNATPTR) EQ NUMERICEDIT 
                  THEN
                      BEGIN 
                      SET(DN$BZERO,DNAT$,RGDNATPTR,0);
                      $TEMP$ = GETQ(DN$AUXREF,DNAT$,RGDNATPTR); 
                      SET(AX$TBWZ,AUX$,$TEMP$,1); 
                      END 
                  END 
BZEND1STDO: 
              END 
ENDBWZ: 
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * # 
          EXTRACE("BWZ$RT") 
  
  # * * * * * * * * * * * * * * * * * * * * * # 
  
          END #BWZ$RT#
          TERM
