Google
 

Trailing-Edge - PDP-10 Archives - CFS_TSU04_19910205_1of1 - update/cblsrc/ctree.mac
There are 21 other files named ctree.mac in the archive. Click here to see a list.
; UPD ID= 1952 on 1/23/89 at 2:10 PM by KSTEVENS                       
;<KSTEVENS.CTREE>CTREE.MAC.13, 17-Jan-89 10:11:10, Edit by KSTEVENS
; UPD ID= 1372 on 9/22/83 at 1:36 PM by HOFFMAN
TITLE	CTREE FOR COBOL V13
SUBTTL	DATA DIVISION SYNTAX TREE		W.NEELY/CAM/SEB/MEM

	SEARCH COPYRT
	SALL

;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.

COPYRIGHT (C) 1974, 1983, 1984, 1986 BY DIGITAL EQUIPMENT CORPORATION


	SEARCH	P
	%%P==:%%P
	DBMS==:DBMS
	MCS==:MCS

TWOSEG
	.COPYRIGHT		;Put standard copyright statement in REL file
SALL
.HWFRMT
RELOC	400000

;EDITS
;.VERSION 13
;.EDIT	1641	USER name should be treated the same as a DATA name when
;		parsing an index.
;		MEM,6-JAN-87,SPR:20-21465
;.EDIT	1637	Call DA64. when file name is seen instead of a report name
;		so that RPWRDL is set up for when it is used at D27MCY+15.
;		MEM,17-DEC-86,SPR:20-21481
;		A:SRC CTREE,COBVER
;
;V12B****************
;RJD	24-May-82	[1356] Allow qualification in DATA RECORDS ARE clause.

;V10*****************
;NAME	DATE		COMMENTS
;SSC	3-5		PLACED 6A EDIT [316] INTO V10
;********************

; EDIT 343 RECOVER IF RD STATEMENT NOT ENDED PROPERLY.
; EDIT 337 FIX TREE TO MAKE 'USAGE' OPTIONAL IN FRONT OF DATABASE-
;	KEY. ADD DD142A TO DD107.
; EDIT 335 REPORT WRITER FATAL ERROR
;[316] /SSC	FOR ACCESS, CHANGED 355. TO DD355A, DD355B AND DD380. TO
;			DD380A AND DD380B.
;		DELETED CHECK FOR NUMBER (IE. PPN) AFTER SCHEMA NAME
; EDIT 315 CHECK "NEXT GROUP" CLAUSE



;[216] /ACK	PREVENT SKIPPING EVERYTHING IF AN RD IS
;		  TERMINATED WITH A DOUBLE PERIOD.
; EDIT 174 FIXES RD FILENAME COPY

ENTRY	CTREE
CTREE:
;DATA DIVISION
$ DD1.,0,0,0,0,<DD1A,DD9.,DD10.,DD1B>
$ DD1A,0,DATA.,0,1,<DD2.,DD3.>
$ DD1B,E.203,0,0,0,<DD2.,DD3.>
$ DD2.,DA1.,DIVIS.,0,0,<DD4.,DD5.>
$ DD3.,E.137,0,0,0,DD2.
$ DD4.,0,PRIOD.,0,0,DD6.
$ DD5.,CE125.,0,0,0,DD6.
$ DD6.,0,0,0,0,<DD400.,DD350.,DD380A,DD380B,DD7.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD11.>
$ DD7.,DCA1.,FILE.,0,1,<DD14.,DD15.>
$ DD7A.,DCA7.,LINKG.,0,1,<DD24A,DD24B>
$ DD8.,DCA2.,WORKI.,0,1,<DD24A,DD24B>
$ DD9.,DA4.,PROC.,0,1
$ DD10.,DA4.,ENDIT.,0,0
$ DD11.,E.43,0,0,0,DD12.
$ DD12.,DA5.,0,0,0,<DD400.,DD350.,DD380A,DD380B,DD7.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD13.>
$ DD13.,DA6.,0,0,0,DD12.
$ DD14.,0,SECT.,0,0,<DD16.,DD17.>
$ DD15.,E.140,0,0,0,<DD16.,DD17.>
$ DD16.,0,PRIOD.,0,0,<DD400.,DD18.,DD18A.,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD19.>
$ DD17.,CE125.,0,0,0,<DD400.,DD18.,DD18A.,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD19.>
$ DD18.,DA10.,FD.,0,1,DD22.
$ DD18A.,DA10S.,SD.,0,1,DD18B.
$ DD18B.,DD174A,0,1,0,<DD400.,DD24.,DD18.,DD18A.,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD21.>
$ DD19.,E.176,0,0,0,DD20.
$ DD20.,DA5.,0,0,0,<DD400.,DD18.,DD18A.,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD21.>
$ DD21.,DA5.,0,0,0,<DD400.,DD18.,DD18A.,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD21.>
$ DD22.,DD36.,0,1,0,<DD400.,DD24.,DD18.,DD18A.,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD19.>
$ DD23.,DA8.,0,0,0,<DD400.,DD24.,DD18.,DD18A.,DD205.,DD205E,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD19.>
$ DD24.,DA7.,INTGR.,0,0,DD25.
$ DD24A,0,SECT.,0,0,<DD24C,DD24D>
$ DD24B,E.140,0,0,0,<DD24C,DD24D>
$ DD24C,0,PRIOD.,0,0,<DD24E,DD376.,DD24K>
$ DD24D,CE125.,0,0,0,DD24C
$ DD24E,DA7.,INTGR.,0,0,DD24F
$ DD24F,DD86A.,0,1,0,DD24G
$ DD24G,DA8.,0,0,0,<DD24E,DD24K>
$ DD24H,E.25,0,0,0,DD24I
$ DD24I,DA5.,0,0,0,<DD400.,DD24E,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD24J>
$ DD24J,DA6.,0,0,0,DD24I
$ DD24K,0,0,0,0,<DD400.,DD7.,DD350.,DD380A,DD380B,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD24H>
$ DD25.,DD86A.,0,1,0,DD23.
$ DD36.,0,0,0,0,<DD37.,DD37A.,DD38.>
$ DD37.,DA9.,FILEN.,0,0,<DD40.,DD41.>
$ DD37A.,DA9.,USERN.,0,0,<DD40.,DD41.>
$ DD38.,E.20,0,0,0,DD39.
$ DD39.,DCA3.,0,0,0
$ DD40.,DA0.,PRIOD.,0,0
$ DD41.,0,0,0,0,<DD42.,DD42A.,DD42B.,DD43.,DD43A.,DD44.,DD45.,DD46.,DD600.,DD198.,DD47.,DD48.,DD47A.,DD720.,DD723.,DD724.,DD725.,DD730.,DD740.,DD752.,DD753.,DD49.>

;Items in FD - dispatch on first word
$ DD42.,0,IS.,0,0,<DD42A.,DD42B.,DD42C.>
$ DD42A.,DA720.,EXTER.,0,0,<DD40.,DD41.>
$ DD42B.,DA721.,GLOBL.,0,0,<DD40.,DD41.>
$ DD42C.,E.836,0,0,0,<DD40.,DD41.>

$ DD43.,DA25F.,BLOCK.,0,0,<DD51.,DD52.,DD53.>

$ DD44.,DA16.,DATA.,0,0,<DD67.,DD68.>

$ DD45.,DA25F.,LABEL.,0,0,<DD73.,DD74.,DD75.,DD76.,DD77.>

$ DD46.,DA25R.,REC.,0,0,<DD60.,DD61.,DD700.,DD701.,DD760.,DD761.,DD762.,DD53.>

$ DD47.,DA25F.,VALUE.,0,0,<DD78.,DD79.,DD79A.,DD80.,DD85.,DD49.>

$ DD47A.,DD500.,RECRDG,1,0,<DD40.,DD41.>
$ DD48.,CE125.,INTGR.,0,0,DD50.
$ DD49.,E.18,0,0,0,DD39.
$ DD50.,DCA4.,0,0,0

;BLOCK CONTAINS [integer-1 TO] integer-2 {RECORDS|CHARACTERS}
$ DD51.,0,CONTA.,0,0,<DD52.,DD53.>
$ DD52.,DA11.,INTGR.,0,0,<DD54.,DD57.,DD58.,DD59.>
$ DD53.,E.25,0,0,0,DD39.
$ DD54.,DA25G.,TO.,0,0,<DD55.,DD56.>
$ DD55.,DA12.,INTGR.,0,0,<DD57.,DD58.,DD59.>
$ DD56.,E.25,0,0,0,<DD57.,DD58.,DD59.>
$ DD57.,DA13.,REC.,0,0,<DD60A.,DD713.,DD714.,DD765.,DD766.,DD767.,DD40.,DD41.>
$ DD58.,DA14.,CHARA.,0,0,<DD40.,DD41.>
;CHARACTER is optional
$ DD59.,DA14.,0,0,0,<DD40.,DD42.,DD42A.,DD42B.,DD43.,DD43A.,DD44.,DD45.,DD46.,DD600.,DD198.,DD47.,DD48.,DD47A.,DD720.,DD723.,DD724.,DD725.,DD730.,DD740.,DD752.,DD753.,DD59E.>
$ DD59E.,E.395,0,0,0,DD49.			  ;[1650]

;RECORD CONTAINS [integer-1 TO ] integer-2 CHARACTERS
$ DD60.,0,CONTA.,0,0,<DD61.,DD53.>
$ DD60A.,DA13A.,CONTA.,0,0,<DD61.,DD53.>	;RECORD read during BLOCK CONTAINS
$ DD61.,DA712.,INTGR.,0,0,<DD63.,DD65.,DD66.>
$ DD63.,DA15T.,TO.,0,0,<DD64.,DD53.>
$ DD64.,DA12.,INTGR.,0,0,<DD65.,DD66.>
$ DD65.,DA15.,CHARA.,0,0,<DD40.,DD41.>
$ DD66.,DA15.,0,0,0,<DD40.,DD41.>

;DATA RECORD IS data-name
$ DD67.,0,REC.,0,0,DD68.
$ DD68.,0,0,0,0,<DD69.,DD70.,DD70C.,DD71.>
$ DD69.,0,ARE.,0,0,<DD70.,DD70C.,DD71.>
$ DD70.,DA18.,USERN.,0,0,<DD70D.,DD70.,DD70C.,DD40.,DD41.>	;[1356] Insert node for OF
$ DD71.,E.17,0,0,0,DD39.
$ DD70C.,DA18.,DATAN.,0,0,<DD70D.,DD70.,DD40.,DD41.>		;[1356] Check for OF or IN
$ DD70D.,0,OF.,0,0,<DD70E.,DD70F.>				;[1356] Here if OF or IN
$ DD70E.,DA18A.,FILEN.,0,0,<DD70.,DD40.,DD41.>			;[1356] Current filename used?
$ DD70F.,E.13,0,0,0,DD39.					;[1356] No filename given

;LABEL RECORD IS {STANDARD|OMITTED}
$ DD73.,0,REC.,0,0,<DD74.,DD75.,DD76.,DD49.>
$ DD74.,0,ARE.,0,0,<DD75.,DD76.,DD49.>
$ DD75.,DA19.,STAND.,0,0,<DD40.,DD41.>
$ DD76.,DA20.,OMITT.,0,0,<DD40.,DD41.>
$ DD77.,E.716,0,0,0,DD39.
;VALUE OF ...
$ DD78.,0,OF.,0,0,<DD79.,DD79A.,DD80.,DD85.,DD49.>

;VALUE OF ID
$ DD79.,DA22.,ID.,0,0,<DD82I.,DD83I.,DD84.,DD84E.,DD49.>

;VALUE OF USER-NUMBER
$ DD79A.,DA61.,PPN.,0,0,<DD82P.,DD83P.,DD84.,DD84E.,DD49.>

;VALUE OF DATE-WRITTEN
$ DD80.,DA23.,DATEW.,0,0,<DD82D.,DD83D.,DD83N.,DD84.,DD84E.,DD49.>

$ DD82D.,0,IS.,0,0,<DD83D.,DD84.,DD84E.,DD49.>
$ DD82I.,0,IS.,0,0,<DD83I.,DD84.,DD84E.,DD49.>
$ DD82P.,0,IS.,0,0,<DD83P.,DD84.,DD84E.,DD49.>
$ DD83I.,DA24I.,LITER.,0,0,<DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>
$ DD83D.,DA24D.,LITER.,0,0,<DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>
$ DD83N.,DA24D.,INTGR.,0,0,<DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>
$ DD83P.,DA24P.,INTGR.,0,0,<DD83PP,DD83PE>
$ DD83PP,DA24P.,INTGR.,0,0,<DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>
$ DD83PE,DA24PE,0,0,0,<DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>
$ DD84.,DA25.,USERN.,0,0,<DD84A.,DD79A.,DD79.,DD80.,DD85.,DD40.,DD41.>
$ DD84A.,0,OF.,0,0,<DD84C.,DD84D.,DD49.>
$ DD84C.,DA60.,USERN.,0,0,<DD84A.,DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>
$ DD84D.,0,DATAN.,0,0,DD84C.
$ DD84E.,0,DATAN.,0,0,DD84.

;VALUE OF PROTECTION CODE
$ DD85.,DA21.,PROTC.,0,0,<DD85A.,DD85B.,DD85C.,DD84.,DD84E.,DD49.>
$ DD85A.,0,CODE.,0,0,<DD85B.,DD85C.,DD85D.,DD84.,DD84E.,DD49.>
$ DD85B.,0,IS.,0,0,<DD85C.,DD85D.,DD84.,DD84E.,DD49.>
$ DD85C.,DA24C.,LITER.,0,0,<DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>
$ DD85D.,DA24C.,INTGR.,0,0,<DD79.,DD79A.,DD80.,DD85.,DD40.,DD41.>

;Level #
$ DD86A.,0,0,0,0,<DD86.,DD53.>
$ DD86.,DA26.,INTGR.,0,0,<DD89.,DD89A.,DD89B.,DD89F.,DD90.>
$ DD89P.,0,0,0,0,DD89.
$ DD89.,DA27.,DATAN.,0,0,DD92.
$ DD89A.,DA27.,USERN.,0,0,DD92.
$ DD89B.,DA27.,CONDI.,0,0,DD92.
$ DD89F.,DA27.,FILLE.,0,0,DD92.
$ DD90.,DA99.,0,0,0,DD92.		;Missing optional data-name
$ DD92.,DD99A.,0,1,0,<DD93.,DD93C.,DD50.>	; [260]
$ DD93.,DCA5.,INTGR.,0,0,<DD95.,DD95A.,DD95B.,DD96.,DD97.>
$ DD93A.,0,0,0,0,DD93B.
$ DD93B.,DD153A,0,1,0,<DD93.,DD50.>
$ DD93C.,E.148,PRIOD.,0,0,<DD93C.,DD93.,DD50.>	; [260]
$ DD95P.,0,0,0,0,DD95.
$ DD95.,DA29.,USERN.,0,0,DD92.
$ DD95A.,DA29.,DATAN.,0,0,DD92.
$ DD95B.,DA29.,CONDI.,0,0,DD92.
$ DD96.,DA29.,FILLE.,0,0,DD92.
$ DD97.,DA99A.,0,0,0,DD92.		;Missing optional data-name
$ DD98.,DA5.,0,0,0,<DD93.,DD50.>
$ DD99A.,0,0,0,0,<DD101.,DD99B.>
$ DD99B.,DA30N.,0,0,0,<DD99.,DD107.>
$ DD99.,DA107.,PRIOD.,0,0

$ DD101.,DA100.,REDEF.,0,0,<DD102.,DD103.>
$ DD102.,DA30.,DATAN.,0,0,<DD106.,DD107.>
$ DD103.,CE111.,0,0,0,DD39.
$ DD106.,DA55.Y,PRIOD.,0,0,DD106A
$ DD106A,DA107.,0,0,0

;Options after level # data-name ...
$ DD107.,0,0,0,0,<DD124.,DD124A,DD124B,DD108.,DD109.,DD110.,DD111.,DD112.,DD113.,DD114.,
DD116.,DD116B,DD116C,DD136.,DD137.,DD138.,DD139.,DD140.,DD140A,DD141.,DD142.,
DD142A,DD142B,DD247.,DD257.,DD265.,DD267.,DD277.,DD282.,DD304.,DD314.,DD115.>
$ DD108.,0,BLANK.,0,0,<DD117.,DD118.,DD119.>
$ DD109.,0,JUST.,0,0,<DD120.,DD120A,DD120.>
$ DD110.,DA73.F,OCCUR.,0,0,<DD122.,DD53.>
$ DD111.,DA78.,PIC.,0,0,DD121.
$ DD112.,DA73.,SYNCH.,0,0,<DD131.,DD132.,DD133.>
$ DD113.,0,USAGE.,0,0,<DD134.,DD135.>
$ DD114.,0,VALUE.,0,0,<DD145.,DD146.,DD146A,DD146B,DD146C,DD146D,DD147.>
$ DD115.,DA105.,0,0,0,DD39.

;SIGN IS LEADING/TRAILING SEPARATE CHARACTER
$ DD116.,DA32.C,SIGN.,0,0,<DD116A,DD116B,DD116C,DD116D,DD116Z>
$ DD116A,0,IS.,0,0,<DD116B,DD116C,DD116D,DD116Z>
$ DD116B,DA32.L,LEAD.,0,0,<DD116E,DD116F,DD106.,DD107.>
$ DD116C,0,TRAIL.,0,0,<DD116E,DD116F,DD106.,DD107.>
$ DD116D,DA32.L,SEPER.,0,0,DD116E
$ DD116E,DA32.S,SEPER.,0,0,<DD116F,DD106.,DD107.>
$ DD116F,0,CHARA..,0,0,<DD106.,DD107.>

$ DD116Z,E.710,0,0,0,DD39.
$ DD117.,0,WHEN.,0,0,<DD118.,DD119.>
$ DD118.,DA31.,FIGCN.,0,0,<DD106.,DD107.>
$ DD119.,E.18,0,0,0,<DD106.,DD107.>
$ DD120.,DA32.,RIGHT.,0,0,<DD106.,DD107.>
$ DD120A,0,LEFT.,0,0,<DD106.,DD107.>
$ DD121.,DA35.,0,0,0,<DD106.,DD107.>

;OCCURS INTERGER TIMES ...
$ DD122.,DA33.,INTGR.,0,0,<DD123.,DD122A,DD122L>
$ DD122A,0,TO.,0,0,<DD122B,DD53.>
$ DD122B,DA56.,INTGR.,0,0,<DD122C,DD122D,DD122E>
$ DD122C,0,TIMES.,0,0,<DD122D,DD122E>
$ DD122D,TST.HI,DEPEN.,0,0,<DD122F,DD122G>
$ DD122E,E.126,0,0,0,DD122L
$ DD122F,0,ON.,0,0,DD122G
$ DD122G,0,0,0,0,<DD122H,DD122M,DD122K>
$ DD122H,DA57.,DATAN.,0,0,<DD122N,DD122L>
$ DD122K,CE111.,0,0,0,DD122L
$ DD122L,0,0,0,0,<DD126.,DD335.,DD336.,DD106.,DD107.>
$ DD122M,0,USERN.,0,0,DD122H
$ DD122N,0,OF.,0,0,<DD122P,DD122Q,DD122K>
$ DD122P,DA60.,DATAN.,0,0,<DD122N,DD122L>
$ DD122Q,0,USERN.,0,0,DD122P
$ DD123.,0,TIMES.,0,0,DD122L

;IS {EXTERNAL|GLOBAL}
$ DD124.,0,IS.,0,0,<DD124A,DD124B,DD124C>
$ DD124A,DA723.,EXTER.,0,0,<DD106.,DD107.>
$ DD124B,DA724.,GLOBL.,0,0,<DD106.,DD107.>
$ DD124C,E.836,0,0,0,<DD106.,DD107.>
$ DD126.,0,INDXD.,0,0,<DD127.,DD128.,DD128A,DD129.>
$ DD127.,0,BY.,0,0,<DD128.,DD128A,DD129.>
$ DD128.,DA34.,USERN.,0,0,<DD128.,DD128A,DD335.,DD336.,DD106.,DD107.>
$ DD128A,DA34.,DATAN.,0,0,<DD128.,DD128A,DD335.,DD336.,DD106.,DD107.>
$ DD129.,E.58,0,0,0,<DD335.,DD336.,DD106.,DD107.>
$ DD131.,DA36.,RIGHT.,0,0,<DD106.,DD107.>
$ DD132.,DA37.,LEFT.,0,0,<DD106.,DD107.>
$ DD133.,DA37.,0,0,0,<DD106.,DD107.>
$ DD134.,0,IS.,0,0,DD135.
$ DD135.,0,0,0,0,<DD136.,DD137.,DD138.,DD139.,DD140.,DD140A,DD141.,DD142.,DD142A,DD142B,DD49.>
$ DD136.,DA39A.,DISPL.,0,0,<DD106.,DD107.>
$ DD137.,DA39.,DSPL6.,0,0,<DD106.,DD107.>
$ DD138.,DA38.,DSPL7.,0,0,<DD106.,DD107.>
$ DD139.,DA40.,COMP.,0,0,<DD106.,DD107.>
$ DD140.,DA41.,COMP1.,0,0,<DD106.,DD107.>
$ DD140A,DA41A.,COMP2.,0,0,<DD106.,DD107.>
$ DD141.,DA42.,COMP3.,0,0,<DD106.,DD107.>
$ DD142.,DA43.,INDEX.,0,0,<DD106.,DD107.>
$ DD142A,DA43A.,DBKEY.,0,0,<DD106.,DD107.>
$ DD142B,DA43B.,DSPL9.,0,0,<DD106.,DD107.>

;VALUE IS ...
$ DD145.,0,IS.,0,0,<DD146.,DD146A,DD146B,DD146C,DD146D,DD147.>
$ DD146.,DA55.,LITER.,0,0,<DD106.,DD107.>
$ DD146A,DA55.,NLIT.,0,0,<DD106.,DD107.>
$ DD146B,DA55.,INTGR.,0,0,<DD106.,DD107.>
$ DD146C,DA55.,FIGCN.,0,0,<DD106.,DD107.>
$ DD146D,DA55.S,SYCHN.,0,0,<DD106.,DD107.>	;symbolic-character
$ DD147.,E.258,0,0,0,DD39.
$ DD153.,DA46.,USERN.,0,0,<DD40.,DD156.,DD159.>
$ DD153A,0,0,0,0,<DD153.,DD153B,DD153E,DD71.>
$ DD153B,DA46.,DATAN.,0,0,DD153G
$ DD153E,DA46.,CONDI.,0,0,DD153G
$ DD153G,0,0,0,0,<DD40.,DD156.,DD159.>
$ DD156.,0,VALUE.,0,0,<DD157.,DD157A>
$ DD157.,0,IS.,0,0,DD157A
$ DD157A,0,0,0,0,<DD158.,DD158A,DD158B,DD158C,DD158D,DD159.>
$ DD158.,DA47.,LITER.,0,0,<DD160.,DD161.>
$ DD158A,DA47.,NLIT.,0,0,<DD160.,DD161.>
$ DD158B,DA47.,INTGR.,0,0,<DD160.,DD161.>
$ DD158C,DA47.,FIGCN.,0,0,<DD160.,DD161.>
$ DD158D,DA47.S,SYCHN.,0,0,<DD160.,DD161.>	;symbolic-character
$ DD159.,DA47E.,0,0,0,<DD160.,DD161.>
$ DD160.,0,THRU.,0,0,<DD162.,DD162A,DD162B,DD162C,DD159.>
$ DD161.,DA48.,0,0,0,<DD40.,DD156.,DD157A>
$ DD162.,DA49.,LITER.,0,0,<DD40.,DD156.,DD157A>
$ DD162A,DA49.,NLIT.,0,0,<DD40.,DD156.,DD157A>
$ DD162B,DA49.,INTGR.,0,0,<DD40.,DD156.,DD157A>
$ DD162C,DA49.,FIGCN.,0,0,<DD40.,DD156.,DD157A>
$ DD165.,0,0,0,0,<DD165A,DD165B,DD71.>
$ DD165A,DA29.,USERN.,0,0,<DD166.,DD167.>
$ DD165B,DA29.,DATAN.,0,0,<DD166.,DD167.>
$ DD166.,TST.HI,RENAM.,0,0,<DD168.,DD103.>
$ DD167.,E.281,0,0,0,DD39.
$ DD168.,DA51.,DATAN.,0,0,<DD168A,DD168B,DD172.>
$ DD168A,0,THRU.,0,0,<DD170.,DD103.>
$ DD168B,0,OF.,0,0,<DD168C,DD103.>
$ DD168C,DA51A.,DATAN.,0,0,<DD168A,DD168B,DD172.>
$ DD170.,DA52.,DATAN.,0,0,<DD170A,DD172.>
$ DD170A,0,OF.,0,0,<DD170B,DD103.>
$ DD170B,DA51A.,DATAN.,0,0,<DD170A,DD172.>
$ DD172.,DA53.,0,0,0,<DD40.,DD173A>
$ DD173A,CE125.,0,0,0,DD173B
$ DD173B,DA5.,0,0,0,DD40.
$ DD174A,0,0,0,0,<DD174.,DD175.,DD38.>
$ DD174.,DCA10.,FILEN.,0,0,<DD177A,DD178.>
$ DD175.,DCA10.,USERN.,0,0,<DD177A,DD178.>
$ DD177A,0,0,0,0,DD178.
$ DD178.,0,0,0,0,<DD179.,DD180.,DD40.,DD180A,DD49.>
$ DD179.,DA16.,DATA.,0,0,<DD183A,DD183.>
$ DD180.,0,REC.,0,0,<DD188.,DD189.,DD53.>
$ DD180A,DD500.,RECRDG,1,0,<DD40.,DD178.>
$ DD183.,0,0,0,0,<DD185.,DD186.,DD186A,DD71.>
$ DD183A,0,REC.,0,0,DD183.
$ DD185.,0,ARE.,0,0,<DD186.,DD186A,DD71.>
$ DD186.,DA18.,USERN.,0,0,DD186D
$ DD186A,DA18.,DATAN.,0,0,DD186D
$ DD186D,0,0,0,0,<DD186.,DD186A,DD178.>

$ DD188.,0,CONTA.,0,0,<DD189.,DD53.>
$ DD189.,DA11.,INTGR.,0,0,<DD191.,DD194.,DD195.>
$ DD191.,DA15T.,TO.,0,0,<DD192.,DD53.>
$ DD192.,DA12.,INTGR.,0,0,<DD194.,DD195.>
$ DD194.,0,CHARA.,0,0,DD195.
$ DD195.,DA15.,0,0,0,DD178.

;CODE-SET IS alphabet-name
$ DD198.,0,CDSET.,0,0,<DD198A,DD198B,DD198C>	;CODE-SET
$ DD198A,0,IS.,0,0,<DD198B,DD198C>		;IS
$ DD198B,0,ALPBN.,0,0,<DD40.,DD41.>		;alphabet-name
$ DD198C,E.713,0,0,0,DD39.
;REPORT(S) IS/ARE <REPORT-NAME-1, REPORT-NAME-2, ...>
$ DD43A.,DA62A.,REPOR.,0,0,<DD196.,DD197.,DD199.,DD199X>	;REPORT
$ DD196.,0,IS.,0,0,<DD197.,DD199.,DD199X>		;IS
$ DD197.,DA62.,USERN.,0,0,<DD197.,DD199.,DD40.,DD41.>	;REP-NAME: LINK FILE TO REP
$ DD199.,E.338,RPNAM.,0,0,<DD197.,DD199.,DD40.,DD41.>	;?DUPLICATE REP-NAME
$ DD199X,DA62XE,0,0,0,<DD40.,DD41.>		;?ILLEGAL REP-NAME

;REPORT SECTION.
$ DD8A.,DCA6.,REPOR.,0,1,<DD200.,DD201.>	;REPORT: INIT SECTION
$ DD8AE.,E.341,REPOR.,0,0,DD8A.			;REPORT: ?NOT AT A-MARG
$ DD200.,0,SECT.,0,0,<DD202.,DD203.>		;SECTION
$ DD201.,E.140,0,0,0,<DD202.,DD203.>		;?SECTION EXPECTED
$ DD202.,0,PRIOD.,0,0,DD204.			;PERIOD
$ DD203.,CE125.,0,0,0,DD204.			;?PERIOD NOT SEEN
$ DD204.,0,0,0,0,<DD202.,DD205.,DD205E.,DD7.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD204A>
$ DD204A,DA98.,0,0,0,DD204.
$ DD204E,0,0,0,0,<DD400.,DD350.,DD380A,DD380B,DD7.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD204F>
$ DD204F,DA98.,0,0,0,DD204E			;SKIP CLAUSE

;RD <REPORT-NAME>
$ DD205.,DA10R.,RD.,0,1,DD205G		;RD: CLEAN UP PREV. GROUP
$ DD205E,E.341,RD.,0,0,DD205.			;RD: ?NOT AT A-MARG
$ DD205G,DD205S,0,1,0,<DD24.,DD205.,DD205E,DD7.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD208.>
$ DD205S,0,0,0,0,<DD206.,DD206E,DD206F,DD207.>  ;[1637]
$ DD206.,DA64.,RPNAM.,0,0,<DD40.,DD209.>	;[174] REP-NAM: INIT RD
$ DD206E,DA64E.,USERN.,0,0,DD206.
$ DD206F,DA64E.,FILEN.,0,0,DD206.		;[1637]
$ DD207.,DA64XE,0,0,0,DD39.			;?NOT DEFINED IN FILE SECT.
$ DD208.,E.148,PRIOD.,0,0,<DD24.,DD205.,DD205E,DD7.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD208.,DD21.>		;[216] GIVE AN ERROR MESSAGE AND
					; CONTINUE SCAN IF WE SEE A DOUBLE PERIOD.

;OPTIONS IN RD PARAGRAPH
$ DD209.,0,0,0,0,<DD312.,DD313.,DD327.,DD210.,DD211.,DD48.,DD49.>

;CONTROL IS <FINAL, DATA-NAME>
$ DD210.,0,CONTR.,0,0,<DD230.,DD231.,DD232.,DD233.,DD239.>  ;CONTROL
$ DD230.,0,IS.,0,0,<DD231.,DD232.,DD233.,DD239.>;IS
$ DD231.,DA71.,FINAL.,0,0,<DD232.,DD233.,DD234.,DD40.,DD209.>  ;FINAL: MAKE CTRL RPW ENTRY
$ DD232.,0,USERN.,0,0,DD241.			;U-NAME: WILL CAUSE UNDEF FLAG
$ DD233.,DA72.,DATAN.,0,0,<DD234.,DD232.,DD233.,DD40.,DD209.>  ;D-NAME: MAKE CTRL ENTRY
$ DD234.,E.346,FINAL.,0,0,<DD232.,DD233.,DD234.,DD40.,DD209.>  ;FINAL: ?SHOULD BE 1ST
$ DD239.,E.345,0,0,0,DD240.			;?CONTROL IDENT EXPECTED
$ DD240.,DA7.,0,0,0,<DD40.,DD209.>		;SET TO REGET LAST WORD
$ DD241.,E.345,0,0,0,<DD232.,DD233.,DD40.,DD209.>	;DON'T REGET LAST WORD.
;PAGE LIMIT IS <INTEGER> LINES
$ DD211.,0,PAGE.,0,0,<DD212.,DD213.,DD214.,DD215.>  ;PAGE: INIT LINE-CTR
$ DD212.,0,LIM.,0,0,<DD213.,DD214.,DD215.>	;LIMIT
$ DD213.,0,IS.,0,0,<DD214.,DD215.>		;IS
$ DD214.,DA66.,INTGR.,0,0,<DD216.,DD217.>	;INTEGER: GET #LINES/PAGE
$ DD215.,E.18,0,0,0,<DD40.,DD209.>		;?IMPROPER CLAUSE
$ DD216.,0,LINE.,0,0,DD217.			;LINES

;OPTIONS IN PAGE LIMIT CLAUSE
$ DD217.,0,0,0,0,<DD218.,DD219.,DD220.,DD221.,DD325.,DD326.>
$ DD325.,DA104.,PRIOD.,0,0,DD40.		;PERIOD: SET DEFAULTS
$ DD326.,DA104.,0,0,0,DD209.			;SET DEFAULTS

;HEADING <INTEGER>
$ DD218.,0,HEADG.,0,0,<DD222.,DD223.>		;HEADING
$ DD222.,DA67.,INTGR.,0,0,DD217.		;INTEGER: STORE HEADING LINE#
$ DD223.,E.18,0,0,0,DD217.			;?IMPROPER CLAUSE

;FIRST DETAIL <INTEGER>
$ DD219.,0,FIRST.,0,0,<DD224.,DD223.>		;FIRST
$ DD224.,0,DE.,0,0,<DD225.,DD223.>		;DETAIL
$ DD225.,DA68.,INTGR.,0,0,DD217.		;INTEGER: STORE 1ST DE LINE#

;LAST DETAIL <INTEGER>
$ DD220.,0,LAST.,0,0,<DD226.,DD223.>		;LAST
$ DD226.,0,DE.,0,0,<DD227.,DD223.>		;DETAIL
$ DD227.,DA69.,INTGR.,0,0,DD217.		;INTEGER: STORE LAST DE LINE#

;FOOTING <INTEGER>
$ DD221.,0,FOOT.,0,0,<DD228.,DD223.>		;FOOTING
$ DD228.,DA70.,INTGR.,0,0,DD217.		;INTEGER: STORE FOOTING LINE#
;LINE NUMBER IS {integer [ON NEXT PAGE]|PLUS integer|NEXT PAGE(COBOL-68)}
$ DD247.,DA74.,LINE.,0,0,<DD248.,DD249.,DD250.,DD254.,DD256.,DD49.>  ;LINE:
$ DD248.,0,NUMBR.,0,0,<DD249.,DD250.,DD254.,DD256.,DD49.>  ;NUMBER
$ DD249.,0,IS.,0,0,<DD250.,DD254.,DD256.,DD49.>	;IS

$ DD250.,DA76.,INTGR.,0,0,<DD251.,DD252.,DD99A.>	;INTEGER:
$ DD251.,0,ON.,0,0,<DD252A,DD253A>		;ON
$ DD252.,DA75A.,NEXT.,0,0,<DD253.,DD258A,DD256B>	;NEXT (PAGE OR GROUP)
$ DD252A,0,NEXT.,0,0,<DD253.,DD256B>		;NEXT (MUST BE PAGE)
$ DD253.,DA75.,PAGE.,0,0,DD99A.			;PAGE
$ DD253A,E.747,0,0,0,DD39.			;?NEXT EXPECTED

$ DD254.,0,PLS.,0,0,<DD255.,DD53.>		;PLUS
$ DD255.,DA77.,INTGR.,0,0,DD99A.		;INTEGER:

$ DD256.,TST.68,NEXT.,0,0,<DD256A,DD256B>	;NEXT (COBOL-68 LEFT-OVER)
$ DD256A,DA75.,PAGE.,0,0,DD99A.			;PAGE
$ DD256B,E.351,0,0,0,DD39.			;?PAGE EXPECTED


;NEXT GROUP IS {integer|PLUS integer|NEXT PAGE}
$ DD257.,DA79.,NEXT.,0,0,<DD258.,DD49.>		; [315] NEXT (GROUP) IS REQUIRED)
$ DD258.,0,GROUP.,0,0,<DD259.,DD260.,DD261.,DD263.,DD49.>  ;GROUP
$ DD258A,DA79A.,GROUP.,0,0,<DD259.,DD260.,DD261.,DD263.,DD49.>  ;GROUP (FROM NEXT PAGE)
$ DD259.,0,IS.,0,0,<DD260.,DD261.,DD263.,DD49.>	;IS
$ DD260.,DA81.,INTGR.,0,0,DD99A.		;INTEGER:
$ DD261.,0, PLS.,0,0,<DD262.,DD53.>		;PLUS
$ DD262.,DA82.,INTGR.,0,0,DD99A.		;INTEGER:
$ DD263.,0,NEXT.,0,0,<DD264.,DD256.>		;NEXT
$ DD264.,DA80.,PAGE.,0,0,DD99A.			;PAGE:
;GROUP INDICATE
$ DD265.,DA83.,GROUP.,0,0,<DD266.,DD266.>	;GROUP: SET GROUP INDIC. FLAG
$ DD266.,0,INDIC.,0,0,DD99A.			;INDICATE: POPJ


;RESET ON <CONTROL-IDENTIFIER, FINAL>
$ DD267.,DA74.,RESET.,0,0,<DD268.,DD269.,DD270.,DD271.,DD272.>  ;RESET
$ DD268.,0,ON.,0,0,<DD269.,DD270.,DD271.,DD272.>;ON
$ DD269.,DA84.,FINAL.,0,0,DD99A.		;FINAL:
$ DD270.,0,USERN.,0,0,DD271.			;U-NAME: WILL CAUSE UNDEF FLAG
$ DD271.,DA85.,DATAN.,0,0,DD99A.		;D-NAME: PUT LINK IN RPWTAB
$ DD272.,E.345,0,0,0,DD39.			;?CONTROL IDENTIFIER EXPECTED


;COLUMN NUMBER IS <INTEGER>
$ DD277.,DA74.,COL.,0,0,<DD278.,DD279.,DD280.,DD53.>  ;COLUMN
$ DD278.,0,NUMBR.,0,0,<DD279.,DD280.,DD53.>	;NUMBER
$ DD279.,0,IS.,0,0,<DD280.,DD53.>		;IS
$ DD280.,DA86.,INTGR.,0,0,DD99A.		;INTEGER:
;TYPE IS <RH,PH,CH,DE,CF,PF,RF>
$ DD282.,DA74.,TYPE.,0,0,<DD283.,DD283A>	;TYPE
$ DD283.,0,IS.,0,0,DD283A			;IS
$ DD283A,0,0,0,0,<DD284.,DD285.,DD286.,DD287.,DD288.,DD289.,DD290.,DD291.,DD292.,DD293.,DD295.>
$ DD284.,0,REPOR.,0,0,<DD284A,DD284B,DD294.>	;REPORT
$ DD284A,DA87.,HEADG.,0,0,DD99A.		;HEADING:
$ DD284B,DA93.,FOOT.,0,0,DD99A.			;FOOTING:
$ DD285.,0,PAGE.,0,0,<DD285A,DD285B,DD294.>	;PAGE
$ DD285A,DA88.,HEADG.,0,0,DD99A.		;HEADING:
$ DD285B,DA92.,FOOT.,0,0,DD99A.			;FOOTING:
$ DD286.,0,CONTR.,0,0,<DD286A,DD286B,DD294.>	;CONTROL
$ DD286A,DA89.,HEADG.,0,0,<DD296.,DD297.,DD298.,DD303.>  ;HEADING:
$ DD286B,DA91.,FOOT.,0,0,<DD296.,DD297.,DD298.,DD303.>  ;FOOTING:
$ DD287.,DA87.,RH.,0,0,DD99A.			;RH:
$ DD288.,DA88.,PH.,0,0,DD99A.			;PH:
$ DD289.,DA89.,CH.,0,0,<DD296.,DD297.,DD298.,DD303.>  ;CH:
$ DD290.,DA90.,DE.,0,0,DD99A.			;DE:
$ DD291.,DA91.,CF.,0,0,<DD296.,DD297.,DD298.,DD303.>  ;CF:
$ DD292.,DA92.,PF.,0,0,DD99A.			;PF:
$ DD293.,DA93.,RF.,0,0,DD99A.			;RF:
$ DD294.,E.355,0,0,0,DD39.			;?HEAD OR FOOT REQ'D
$ DD295.,E.356,0,0,0,DD39.			;?TYPE REQUIRED
$ DD296.,0,USERN.,0,0,DD297.			;U-NAME: WILL CAUSE UNDEF FLAG
$ DD297.,DA94.,DATAN.,0,0,DD99A.		;D-NAME: LINK ITEM TO CTRL ENTRY
$ DD298.,DA95.,FINAL.,0,0,DD99A.		;FINAL:
$ DD303.,E.231,0,0,0,DD302.			;?CONTROL ID OR FINAL EXPECTED
$ DD302.,DA7.,0,0,0,DD99A.			;SET TO REGET WORD
;SOURCE IS <IDENTIFIER>

$ DD304.,DA74.,SOUR.,0,0,<DD305.,DD307.,DD308.>	;SOURCE: CK FOR REP SEC
$ DD305.,0,IS.,0,0,<DD307.,DD308.>		;IS
$ DD307.,DCA12.,DATAN.,0,0,DD307A		;D-NAME: STORE SOURCE LINK
$ DD307A,DD800.,0,1,0,DD307B			;QUALIFIED, WITH SUBSCRIPTS
$ DD307B,DA97.,0,0,0,DD99A.			;STORE ITEM IN RPWTAB ENTRY
$ DD308.,E.101,0,0,0,DD99A.			;?IDENTIFIER EXPECTED


;IS GLOBAL
$ DD312.,0,IS.,0,0,<DD313.,DD313A>
$ DD313.,DA722.,GLOBL.,0,0,<DD40.,DD209.>
$ DD313A,E.837,0,0,0,<DD40.,DD209.>

;SUM <IDENTIFIER>,<IDENTIFIER>,...UPON <DATA-NAME>
$ DD314.,DA103.,SUM.,0,0,<DD315.,DD316.,DD317.>
$ DD315.,DA101.,USERN.,0,0,<DD315.,DD316.,DD318.,DD322.,DD99A.>
$ DD316.,DA101.,DATAN.,0,0,<DD315.,DD316.,DD318.,DD322.,DD99A.>
$ DD317.,E.101,0,0,0,DD99A.
$ DD318.,0,OF.,0,0,<DD319.,DD320.,DD321.>
$ DD319.,DA60.,USERN.,0,0,<DD318.,DD315.,DD316.,DD322.,DD99A.>
$ DD320.,DA60.,DATAN.,0,0,<DD318.,DD315.,DD316.,DD322.,DD99A.>
$ DD321.,E.347,0,0,0,DD39.
$ DD322.,0,UPON.,0,0,<DD323.,DD324.,DD317.>
$ DD323.,DA102.,DATAN.,0,0,<DD323.,DD324.,DD99A.>
$ DD324.,DA102.,USERN.,0,0,<DD323.,DD324.,DD99A.>

;CODE IS {mnenonic-name|literal}
$ DD327.,DA106X,CODE.,0,0,<DD328.,DD329.,DD330.,DD331.,DD332.>
$ DD328.,TST.68,IS.,0,0,<DD329.,DD330.,DD331.,DD332.>
$ DD329.,DA106.,SPECN.,0,0,<DD40.,DD209.>
$ DD330.,DA106A,LITER.,0,0,<DD40.,DD209.>
$ DD331.,E.104,USERN.,0,0,<DD40.,DD209.>
$ DD332.,E.18,0,0,0,DD240.
;ASCENDING/DESCENDING KEY CLAUSE FOR OCCURS
$ DD335.,DA108.,ASCND.,0,0,<DD337.,DD337.>
$ DD336.,DA109.,DESCN.,0,0,<DD337.,DD337.>
$ DD337.,0,KEY,0,0,<DD338.,DD338.>
$ DD338.,0,IS.,0,0,<DD339.,DD340.,DD341.>
$ DD339.,0,DATAN.,0,0,DD340.
$ DD340.,DA110.,USERN.,0,0,<DD342.,DD339.,DD340.,DD335.,DD336.,DD126.,DD106.,DD107.>
$ DD341.,E.18,0,0,0,<DD126.,DD106.,DD107.>
$ DD342.,0,OF.,0,0,<DD343.,DD344.,DD53.>
$ DD343.,0,DATAN.,0,0,DD344.
$ DD344.,DA60.,USERN.,0,0,<DD342.,DD339.,DD340.,DD335.,DD336.,DD126.,DD106.,DD107.>
;INVOKE SUB-SCHEMA <SUB-SCHEMA NAME> OF SCHEMA <SCHEMA-NAME>
;	[PRIVACY KEY FOR COMPILE IS <IDENTIFIER>].

IFN DBMS,<

$ DD350.,DA113.,SCHEM.,0,1,<DD352.,DD351.>
$ DD351.,E.140,0,0,0,DD352.
$ DD352.,0,SECT.,0,0,<DD354.,DD353.>
$ DD353.,CE125.,0,0,0,DD354.
$ DD354.,0,PRIOD.,0,0,<DD355A,DD355B,DD6.>
$ DD355A,DA114A,INVOK.,0,0,<DD356.,DD357.,DD370.>
$ DD355B,DA114B,ACCES.,0,0,<DD356.,DD357.,DD370.>
$ DD356.,0,SBSCH.,0,0,<DD357.,DD370.>
$ DD357.,DA115.,USERN.,0,0,<DD358.,DD359.,DD360.,DD371.>
$ DD358.,0,OF.,0,0,<DD359.,DD360.,DD371.>
$ DD359.,0,SCHEM.,0,0,<DD360.,DD371.>
$ DD360.,DA116.,USERN.,0,0,<DD361.,DD367.>
$ DD361.,0,PRVCY.,0,0,<DD362.,DD372.>
$ DD362.,0,KEY,0,0,<DD363.,DD364.,DD373.>
$ DD363.,0,FOR.,0,0,<DD364.,DD374.>
$ DD364.,0,COMPIL.,0,0,<DD365.,DD366.,DD375.>
$ DD365.,0,IS.,0,0,<DD366.,DD375.>
$ DD366.,DA117.,USERN.,0,0,<DD367.,DD367.>
$ DD367.,DA119.,0,0,0,DD24A


;ERROR NODES FOR INVOKE
$ DD370.,E.420,0,0,0,DD12.
$ DD371.,E.471,0,0,0,DD12.
$ DD372.,E.161,0,0,0,DD12.
$ DD373.,E.418,0,0,0,DD12.
$ DD374.,E.413,0,0,0,DD12.
$ DD375.,E.429,0,0,0,DD12.
$ DD376.,E.421,INVOK.,0,0,DD12.		;ERROR MESSAGE ON INVOKE
$ DD377.,E.18,0,0,0,DD12.

	>



IFE DBMS,<
$ DD350.,E.91,SCHEM.,0,0,DD12.
$ DD376.,E.91,INVOK.,0,0,DD12.
	>



;[710] NO-OP MULTI-INVOKE HANDLING

$ DD380A,E.91,INVOK.,0,0,DD12.
$ DD380B,E.91,ACCES.,0,0,DD12.
;PARSE CD SPECIFICATION
;
;
IFN MCS,<
$ DD400.,DA120.,COMM.,0,1,<DD401.,DD409.>
$ DD401.,0,SECT.,0,0,<DD402.,DD403.>
$ DD402.,DA144.,PRIOD.,0,0,<DD400.,DD411.,DD404.,DD7.,DD402.,DD350.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD407.>
$ DD403.,CE125.,0,0,0,DD402.
$ DD404.,DA143.,INTGR.,0,0,DD405.
$ DD405.,DD86A.,0,1,0,DD406.
$ DD406.,DA8.,0,0,0,DD402.
$ DD407.,E.43,0,0,0,DD408.
$ DD408.,DA5.,0,0,0,<DD411.,DD404.,DD7.,DD350.,DD7A.,DD8.,DD8A.,DD8AE.,DD9.,DD10.,DD408.>
$ DD409.,E.140,0,0,0,<DD402.,DD403.>
	>

IFE MCS,<
$ DD400.,E.91,COMM.,0,1,DD204E
	>



;CONTINUE PARSING CD BLOCK...

IFN MCS,<
$ DD411.,TST.HI,CD.,0,1,<DD412.,DD469.,DD470.>
$ DD412.,DA121.,USERN.,0,0,<DD413.,DD414.,DD415.,DD416.,DD471.>
$ DD413.,0,FOR.,0,0,<DD414.,DD415.,DD416.,DD472.>
$ DD414.,DA122.,INITL.,0,0,<DD415.,DD473.>
$ DD415.,DA123.,INPUT.,0,0,<DD417.,DD417.>
$ DD416.,DA138.,OUTPU.,0,0,<DD417A,DD417A>
$ DD417.,DD420.,0,1,0,DD402.
$ DD417A,DD443.,0,1,0,DD402.
$ DD418.,DA139.,PRIOD.,0,0,<DD512.,DD512.>
$ DD419.,E.18,0,0,0,DD418.
$ DD420.,0,0,0,0,<DD424.,DD425.,DD426.,DD427.,DD428.,DD429.,DD430.,DD431.,DD432.,DD433.,DD434.,DD435.,DD436.,DD437.,DD442A,DD418.,DD442.,DD442B,DD419.>
$ DD424.,0,SYMBL.,0,0,<DD425.,DD426.,DD427.,DD428.,DD429.,DD474.>
$ DD425.,DA126.,QUEUE.,0,0,DD439.
$ DD426.,DA127.,SUBQ1.,0,0,DD439.
$ DD427.,DA128.,SUBQ2.,0,0,DD439.
$ DD428.,DA129.,SUBQ3.,0,0,DD439.
$ DD429.,DA130.,SOUR.,0,0,DD439.,
$ DD430.,0,MSG.,0,0,<DD431.,DD432.,DD433.,DD475.>
$ DD431.,DA131.,DATE..,0,0,DD439.
$ DD432.,DA132.,TIME..,0,0,DD439.
$ DD433.,DA124.,COUNT.,0,0,DD439.
$ DD434.,0,TEXT.,0,0,<DD435.,DD476.>
$ DD435.,DA133.,LNGTH.,0,0,DD439.
$ DD436.,DA134.,END.,0,0,<DD438.,DD440.,DD441.,DD477.>
$ DD437.,DA135.,STATU.,0,0,<DD438.,DD440.,DD441.,DD477.>
$ DD438.,0,KEY,0,0,DD439.
$ DD439.,0,0,0,0,<DD440.,DD441.,DD441A,DD478.>
$ DD440.,0,IS.,0,0,<DD441.,DD441A,DD479.>
$ DD441.,DA136.,DATAN.,0,0,DD420.
$ DD441A,DA136.,USERN.,0,0,DD420.
$ DD442A,DA137.,USERN.,0,0,<DD442A,DD442B,DD442.,DD418.>
$ DD442.,DA137.,DATAN.,0,0,<DD442B,DD442.,DD442A,DD418.>
$ DD442B,DA137.,FILLE.,0,0,<DD442.,DD442A,DD442B,DD418.>


;OUTPUT CD PARSE...
$ DD443.,0,0,0,0,<DD444.,DD453.,DD455.,DD456.,DD458.,DD460.,DD461.,DD445.,DD446.,DD454.,DD418.,DD512.>
$ DD443A,DA7.,0,0,0,DD443.
$ DD444.,0,DEST.,0,0,<DD445.,DD446.,DD462.>
$ DD445.,DA129.,COUNT.,0,0,DD463.
$ DD446.,0,TABLE.,0,0,<DD447.,DD480.>
$ DD447.,0,OCCUR.,0,0,<DD448.,DD481.>
$ DD448.,DA140.,INTGR.,0,0,<DD449.,DD450.,DD443A>
$ DD449.,0,TIMES.,0,0,<DD450.,DD443A>
$ DD450.,0,INDXD.,0,0,<DD451.,DD452.,DD452A,DD482.>
$ DD451.,0,BY.,0,0,<DD452.,DD452A,DD482.>
$ DD452.,DA141.,DATAN.,0,0,<DD452.,DD452A,DD443A>
$ DD452A,DA141.,USERN.,0,0,<DD452.,DD452A,DD443A>
$ DD453.,0,TEXT.,0,0,<DD454.,DD483.>
$ DD454.,DA131.,LNGTH.,0,0,DD463.
$ DD455.,DA134.,ERROR.,0,0,<DD457.,DD463A>
$ DD456.,DA132.,STATU.,0,0,<DD457.,DD463A>
$ DD457.,0,KEY,0,0,DD463.
$ DD458.,0,SYMBL.,0,0,<DD459.,DD484.>
$ DD459.,DA135.,DEST.,0,0,DD463.
$ DD460.,0,MSG.,0,0,<DD461.,DD485.>
$ DD461.,DA124.,CLASS.,0,0,DD463.
$ DD462.,DA142.,0,0,0,DD463.
$ DD463A,DA7.,0,0,0,DD463.
$ DD463.,0,0,0,0,<DD464.,DD465.,DD466.,DD486.>
$ DD464.,0,IS.,0,0,<DD465.,DD466.,DD487.>
$ DD465.,DA136.,DATAN.,0,0,DD443.
$ DD466.,DA136.,USERN.,0,0,DD443.
;ERROR NODES FOR CD PROCESSING

$ DD469.,E.456,0,0,0,DD408.
$ DD470.,E.435,0,0,0,DD408.
$ DD471.,E.418,0,0,0,DD408.
$ DD472.,E.436,0,0,0,DD408.
$ DD473.,E.437,0,0,0,DD408.
$ DD474.,E.438,0,0,0,DD420.
$ DD475.,E.439,0,0,0,DD420.
$ DD476.,E.440,0,0,0,DD420.
$ DD477.,E.161,0,0,0,DD420.
$ DD478.,E.441,0,0,0,DD420.
$ DD479.,CE111.,0,0,0,DD420.

;OUTPUT CD ERRORS
$ DD480.,E.442,0,0,0,DD443.
$ DD481.,E.25,0,0,0,DD443.
$ DD482.,E.58,0,0,0,DD443.
$ DD483.,E.440,0,0,0,DD443.
$ DD484.,E.443,0,0,0,DD443.
$ DD485.,E.444,0,0,0,DD443.
$ DD486.,E.441,0,0,0,DD443.
$ DD487.,CE111.,0,0,0,DD443.
	>
;SAW "RECORDING" IN AN FD OR SD.

$ DD500.,TST.NS,0,0,0,<DD501.,DD502.,DD502B,DD503.,DD504.,DD505.,DD507.,DD508.,DD509.,DD511.>

$ DD501.,0,MODE.,0,0,<DD502.,DD500.>		;MODE.
$ DD502.,0,IS.,0,0,DD500.			;IS.
$ DD502B,DA150B,BYTE.,0,0,DD500.		;BYTE
$ DD503.,DA145.,ASCII.,0,0,DD512.		;ASCII.
$ DD504.,DA146.,STDAS.,0,0,DD512.		;STANDARD-ASCII.
$ DD505.,0,STAND.,0,0,<DD506.,DD507.>		;STANDARD <SPACE> ASCII
$ DD506.,DA146.,ASCII.,0,0,DD512.		; IS OK TOO.
$ DD507.,E.18,0,0,0,DD512.			;STANDARD WITHOUT ASCII
						; IS AN ERROR.
$ DD508.,DA147.,SIXBT.,0,0,DD512.		;SIXBIT.
$ DD509.,DA148.,BINRY.,0,0,DD512.		;BINARY.
$ DD511.,DA149.,0,0,0,DD512.			;F, V OR ERROR.
$ DD512.,DA0.,0,0,0				;RETURN.
;LINAGE CLAUSE.

$ DD600.,DA200.,LINAG.,0,0,<DD601.,DD602.,DD603.,DD604.>	;LINAGE
$ DD601.,0,IS.,0,0,<DD602.,DD603.,DD604.>			;IS
$ DD602.,DA201.,USERN.,0,0,<DD605.,DD608.,DD609.,DD612.,DD617.,DD618.,DD619.,DD40.,DD41.>	;USER NAME
$ DD603.,DA202.,INTGR.,0,0,<DD605.,DD608.,DD609.,DD612.,DD617.,DD618.,DD619.,DD40.,DD41.>	;INTEGER
$ DD604.,E.705,0,0,0,DD39.					;DATA-NAME OR INTEGER EXPECTED
$ DD605.,0,LINE.,0,0,<DD608.,DD609.,DD612.,DD617.,DD618.,DD619.,DD40.,DD41.>	;LINES
$ DD608.,0,WITH.,0,0,<DD612.,DD613.>				;WITH
$ DD609.,0,LINE.,0,0,<DD617.,DD618.,DD619.,DD620.>		;LINES
$ DD612.,0,FOOT.,0,0,<DD614.,DD615.,DD616.,DD604.>		;FOOTING
$ DD613.,E.707,0,0,0,DD39.					;'FOOTING' EXPECTED
$ DD614.,0,AT.,0,0,<DD615.,DD616.,DD604.>			;AT
$ DD615.,DA203.,USERN.,0,0,<DD609.,DD617.,DD618.,DD619.,DD40.,DD41.>	;DATA-NAME
$ DD616.,DA204.,INTGR.,0,0,<DD609.,DD617.,DD618.,DD619.,DD40.,DD41.>	;INTEGER
$ DD617.,0,AT.,0,0,<DD618.,DD619.,DD620.>		;AT
$ DD618.,0,TOP.,0,0,<DD621.,DD622.,DD604.>		;TOP
$ DD619.,0,BOTTO.,0,0,<DD623.,DD624.,DD604.>		;BOTTOM
$ DD620.,E.708,0,0,0,DD39.				;TOP OR BOTTOM EXPECTED
$ DD621.,DA205.,USERN.,0,0,<DD609.,DD617.,DD619.,DD40.,DD41.>	;DATA-NAME
$ DD622.,DA206.,INTGR.,0,0,<DD609.,DD617.,DD619.,DD40.,DD41.>	;INTEGER
$ DD623.,DA207.,USERN.,0,0,<DD40.,DD41.>	;DATA-NAME
$ DD624.,DA208.,INTGR.,0,0,<DD40.,DD41.>	;INTEGER
;Extra ANSI-8x items in FD

;RECORD IS VARYING IN SIZE [[FROM integer-2] [TO [integer-3] CHARACTERS] [DEPENDING ON data-name-1]
$ DD700.,0,IS.,0,0,<DD701.,DD715.>					;IS
$ DD701.,DA711.,VARYI.,0,0,<DD702.,DD703.,DD704.,DD705.,DD706.,DD709.,DD40.,DD41.>	;VARYING
$ DD702.,0,IN.,0,0,<DD703.,DD704.,DD705.,DD706.,DD709.,DD40.,DD41.>	;IN
$ DD703.,0,SIZE.,0,0,<DD704.,DD705.,DD706.,DD709.,DD40.,DD41.>		;SIZE
$ DD704.,0,FROM.,0,0,<DD705.,DD53.>					;FROM
$ DD705.,DA11.,INTGR.,0,0,<DD706.,DD708.,DD709.,DD66.>			;integer-2
$ DD706.,DA15T.,TO.,0,0,<DD707.,DD53.>					;TO
$ DD707.,DA12.,INTGR.,0,0,<DD708.,DD709.,DD66.>				;integer-3
$ DD708.,0,CHARA.,0,0,<DD709.,DD66.>					;CHARACTERS
$ DD709.,DA15.,DEPEN.,0,0,<DD710.,DD711.,DD712.>			;DEPENDING
$ DD710.,0,ON.,0,0,<DD711.,DD712.>					;ON
$ DD711.,DA17.,USERN.,0,0,<DD40.,DD41.>					;data-name
$ DD712.,E.101,0,0,0,DD39.						;Illegal data-name

$ DD713.,0,IS.,0,0,<DD714.,DD715.>	;RECORD read during BLOCK CONTAINS
$ DD714.,DA711A.,VARYI.,0,0,<DD702.,DD703.,DD704.,DD705.,DD706.,DD709.,DD40.,DD41.>	;VARYING
$ DD715.,E.846,0,0,0,DD39.						;VARYING expected

;ACCESS MODE IS {SEQUENTIAL|RANDOM|DYNAMIC}
$ DD720.,DA700.,ACCES.,0,0,<DD721.,DD722.,DD723.,DD724.,DD725.,DD726.>  ;ACCESS
$ DD721.,0,MODE.,0,0,<DD722.,DD723.,DD724.,DD725.,DD726.>	;MODE
$ DD722.,0,IS.,0,0,<DD723.,DD724.,DD725.,DD726.>		;IS
$ DD723.,DA701.,SEQU.,0,0,<DD40.,DD41.>				;SEQUENTIAL
$ DD724.,DA702.,RAND.,0,0,<DD40.,DD41.>				;RANDOM
$ DD725.,DA703.,DYNAM.,0,0,<DD40.,DD41.>			;DYNAMIC
$ DD726.,E.704,0,0,0,<DD40.,DD41.>				;ILLEGAL ACCESS MODE

;RELATIVE KEY IS data-name
$ DD730.,DA705.,RELAT.,0,0,<DD731.,DD732.,DD733.,DD737.>  ;RELATIVE: STORE ACT KEY CODE
$ DD731.,0,KEY,0,0,<DD732.,DD733.,DD737.>  		;KEY
$ DD732.,0,IS.,0,0,<DD733.,DD737.>			;IS
$ DD733.,DA706.,USERN.,0,0,<DD734.,DD40.,DD41.>		;DATA-NAME: SAVE ACT. KEY
$ DD734.,0,OF.,0,0,<DD735.,DD736.,DD737.>		;OF
$ DD735.,DA707.,USERN.,0,0,<DD734.,DD40.,DD41.>		;DATA-NAME: SAVE QUALIFIER
$ DD736.,DA707.,FILEN.,0,0,<DD40.,DD41.>		;FILE-NAME: SAVE QUALIFIER
$ DD737.,E.17,0,0,0,<DD40.,DD41.>			;ILLEGAL DATA NAME

;ALTERNATE RECORD KEY IS data-name [WITH DUPLICATES]

$ DD740.,DA511.,ALTRN.,0,0,<DD741.,DD49.>		;ALTERNATE
$ DD741.,0,REC.,0,0,<DD742.,DD743.,DD744.,DD49.>	;RECORD
$ DD742.,0,KEY,0,0,<DD743.,DD744.,DD49.>		;KEY
$ DD743.,0,IS.,0,0,<DD744.,DD49.>			;IS
$ DD744.,DA707.,USERN.,0,0,<DD745.,DD748.,DD749.,DD40.,DD41.>	;DATA-NAME
$ DD745.,0,OF.,0,0,<DD746.,DD747.,DD737.>		;OF
$ DD746.,DA709.,USERN.,0,0,<DD745.,DD748.,DD749.,DD40.,DD41.>	;DATA-NAME
$ DD747.,DA709.,FILEN.,0,0,<DD748.,DD749.,DD40.,DD41.>		;FILE-NAME
$ DD748.,0,WITH.,0,0,<DD749.,DD49.>			;WITH
$ DD749.,DA708.,DUPL.,0,0,<DD40.,DD41.>			;DUPLICATES


;FILE-STATUS IS data-name-1, data-name-2, ..., data-name-8

$ DD752.,DA512.,FILST.,0,0,<DD755.,DD756.,DD759.>
$ DD753.,0,FILE.,0,0,<DD754.,DD759.>		;FILE STATUS is ok too.
$ DD754.,DA512.,STATU.,0,0,<DD755.,DD756.,DD759.>
$ DD755.,0,IS.,0,0,<DD756.,DD759.>
$ DD756.,DA513.,USERN.,0,0,<DD756.,DD757.,DD40.,DD41.>
$ DD757.,0,OF.,0,0,<DD758.,DD737.>
$ DD758.,DA514.,USERN.,0,0,<DD757.,DD756.,DD40.,DD41.>
$ DD759.,E.227,0,0,0,<DD40.,DD41.>			;Didn't give any names

;RECORD KEY IS data-name
$ DD760.,0,KEY,0,0,<DD761.,DD762.,DD737.>		;KEY
$ DD761.,0,IS.,0,0,<DD762.,DD737.>			;IS
$ DD762.,DA710.,USERN.,0,0,<DD734.,DD40.,DD41.>	;DATA-NAME: SAVE ACT. KEY

;RECORD KEY IS data-name - where RECORD has been read in during BLOCK CONTAINS
$ DD765.,0,KEY,0,0,<DD766.,DD767.,DD737.>		;KEY
$ DD766.,0,IS.,0,0,<DD767.,DD737.>			;IS
$ DD767.,DA710A,USERN.,0,0,<DD734.,DD40.,DD41.>	;DATA-NAME: SAVE ACT. KEY
;Parser subroutine for parsing an identifier with Qualifiers
; and subscripts in Phase C.  This is similar to the one in DTREE.

$ DD800.,DA221.,0,0,0,<DD802.,DD809.,DD801.>
$ DD801.,DA222.,0,0,0,DD512.
$ DD802.,0,OF.,0,0,<DD804.,DD807.,DD807R,DD807C,DD807U,DD808.>
$ DD804.,DCA11.,DATAN.,0,0,<DD802.,DD809.,DD801.>
$ DD807.,DCA11.,FILEN.,0,0,<DD809.,DD801.>
$ DD807C,DCA11.,CDNAM.,0,0,<DD809.,DD801.>
$ DD807R,DCA11.,RPNAM.,0,0,<DD809.,DD801.>
$ DD807U,CE111.,USERN.,0,0,<DD802.,DD809.,DD801.>
$ DD808.,E.101,0,0,0,<DD802.,DD809.,DD801.>
$ DD809.,DA223.,LPREN.,0,0,<DD810.,DD812.,DD814.>
$ DD810.,DA220.,DATAN.,0,0,DD817.
$ DD812.,DA220.,INTGR.,0,0,DD815.
$ DD814.,DA224.,0,0,0,DD817.
$ DD815.,DA225.,0,0,0,<DD810.,DD812.,DD816.,DD817I,DD814.>	  ;[1650]
$ DD816.,DA226.,RPREN.,0,0,DD512.
$ DD817.,DD818.,0,1,0,DD817A
$ DD817A,DA225A,0,0,0,<DD817B,DD817C,DD817G>
$ DD817B,DA227.,PLUS.,0,0,<DD817E,DD817F>
$ DD817C,DA228.,MINUS.,0,0,<DD817E,DD817F>
$ DD817E,DA229.,INTGR.,0,0,<DD817G>
$ DD817F,E.25,0,0,0,DD817G
$ DD817G,0,0,0,0,<DD810.,DD812.,DD816.,DD817I,DD817H> ;[1641]
$ DD817H,E.251,0,0,0,DD816.
;[1570] scan reference modifiers
$ DD817I,DA232.,COLON.,0,0,<DD817J,DD817K,DD817L>   ;[1570][1650]stored offset as sub
$ DD817J,DA233.,INTGR.,0,0,<DD817K,DD817L>	    ;[1570][1650]found length
$ DD817K,DA234.,RPREN.,0,0,DD512.		    ;[1570][1650]end of modification
$ DD817L,E.849,0,0,0,DD801.			    ;[1570][1650]unexpected format
$ DD817M,E.251,USERN.,0,0,DD817N	;[1641][1650]
$ DD817N,DA220.,0,0,0,DD817.		;[1641][1650] USERN same as DATAN
$ DD818.,DA221.,0,0,0,<DD820.,DD801.>
$ DD820.,0,OF.,0,0,<DD823.,DD824.,DD825.>
$ DD823.,DCA11.,DATAN.,0,0,<DD820.,DD801.>
$ DD824.,DCA11.,FILEN.,0,0,<DD820.,DD801.>
$ DD825.,E.190,0,0,0,<DD820.,DD801.>


	END