*DECK DBOCCUR 
USETEXT DBTEXT
USETEXT DNTEXT
PROC OCCUR; 
*CALL DEBUGVARS 
*CALL GETSET
*CALL TABLNAMES 
*CALL AUXT1 
*CALL AUXTVALS
*CALL DNATVALS
XREF FUNC ADD$AUXT; 
START("OCCUR")
#THIS PROCEDURE SETS THE APPROPRIATE DNAT BITS FOR
AN OCCURS CLAUSE (WITH DEPENDING OPTION IF NEED BE).
AUXTABLE ENTRIES ARE ALSO CREATED AS REQUIRED.
# 
IF IOCCPTR EQ 0 
  THENB ("NO OCCURS PRESENT") 
  QUIT
ENDIF 
$S(DN$OCCURS,DNAT$,DNAT$PTR,1); #SET OCCURS PRESENT FLAG# 
AUXT$PTR=ADD$AUXT(DNAT$PTR); #GET PTR TO NEW AUXENT#
$S(AX$TTYPE,AUX$,AUXT$PTR,MAXOCCUR); #TYPE MAXOCCUR#
$S(AX$MAXOCCNO,AUX$,AUXT$PTR,IMAXOCC); #MAX NO OF OCCURS# 
IF IDEP NQ 0
  THENB ("DEPENDING ON PRESENT")
  $S(DN$DEP,DNAT$,DNAT$PTR,1); #FLAG FOR DEPENDING# 
  AUXT$PTR=ADD$AUXT(DNAT$PTR); #GET PTR TO NEW AUXENT#
  $S(AX$TTYPE,AUX$,AUXT$PTR,VAROCCUR); #VARIABLE OCCURENCE# 
  $S(AX$DEPNAM,AUX$,AUXT$PTR,IDEPNAME); #SET DEPNAM#
  $S(AX$MINOCCNO,AUX$,AUXT$PTR,IMINOCC);
ENDIF 
FINIS("OCCUR")
TERM
