.TITLE SYNTAX .LIBRARY "CLD" .ENTRY SYNTAX,^M $ENTDEF ; ; GET THE SYNTAX LIST NAME AND WRITE THE DEFINE SYNTAX RECORD OR THE ; SYNTAX= RECORD ; ; CALL SYNTAX(ENTITY,FLAG) ; WHERE ENTITY = THE ADDRES OF THE ENTITY DESCRIPTOR ; FLAG = 0, WRITE SYNTAX= RECORD ; = 1, WRITE DEFINE SYNTAX RECORD ; MOVL 4(AP),R7 MOVZWL ENT_W_SYNTAX(R7),R9 BNEQ 10$ BRW FINI ; ; USE THE SYNTAX TABLE TO FIND THE NAME TO USE FOR THE SYNTAX ; RECUR BUILDS THIS TABLE TO PREVENT DUPLICATE SYNTAX NAMES ; AND TO PREVENT MULTIPLE DEFINITIONS OF THE SAME LIST ; SYNTAX TABLE FORMAT: ; LONGWORD 1 SYNTAX ADDRESS ; LONGWORD 2 ADDRESS OF COUNTED ASCII QUAL/PARM NAME STRING ; LONGWORD 3 KLUGE CHARACTER ADDED TO THE END OF THE ; KEYWORD NAME STRING FOR CASES OF THE SAME ; NAME QUALIFIER/PARAM HAVING DIFFERENT KEYWORD ; LISTS ; 10$: CVTWL R9,R9 ADDL R7,R9 ;R9=ADDRESS OF CHANGE LIST MOVAL TABSYN,R10 ;R10=CURRENT SYNTAX TABLE POSITION MOVL SYNNUM,R11 ;R11=NUMBER OF SYNTAX'S ; 20$: CMPL R9,(R10)+ ;COMPARE CHANGE LIST ADDRESSES BEQL 30$ ;BRANCH IF ENTRY FOUND TSTL (R10)+ TSTL (R10)+ SOBGTR R11,20$ ;LOOP THROUGH TABLE ; 30$: MOVL 4(R10),SAVE MOVL (R10),R10 ; TSTL 8(AP) BEQL 40$ MOVAL DEFNAM,R11 MOVAL DEFSYN,R8 BRB 50$ ; 40$: MOVAL SYNAM,R11 MOVAL SYNREC,R8 ; 50$: MOVC3 VERBLEN,VERB,(R11) ADDL VERBLEN,R11 MOVB UNDER,(R11)+ MOVZBL (R10)+,R6 MOVC3 R6,(R10),(R11) ADDL R6,R11 CMPL #^X30,SAVE BEQL 60$ MOVB SAVE,(R11)+ 60$: SUBL3 R8,R11,R6 $RAB_STORE RAB=OUTRAB,RBF=(R8),RSZ=R6 $PUT RAB=OUTRAB ; FINI: RET ; SYNREC: .ASCII / syntax=/ SYNAM: .BLKB 80. DEFSYN: .ASCII /define syntax / DEFNAM: .BLKB 80. UNDER: .ASCII /_/ SAVE: .LONG 0 P1:: .BYTE 2 .ASCII /P1/ P2: .BYTE 2 .ASCII /P2/ .END