! File: LDSF1.BEG ! ! This work was supported by the Advanced Research ! Projects Agency of the Office of the Secretary of ! Defense (F44620-73-C-0074) and is monitored by the ! Air Force Office of Scientific Research. ! ! ! THIS IS THE BEGIN FILE FOR LEXAN, DECLAR, SYNTAX, FLOWAN ! ! ! !-------------------------------- !0. DEFINITION OF THE PARSE STACK EXTERNAL VECTOR STK, ! THE STACK ITSELF TOS, ! INDEX OF THE (CURRENT) TOP OF STACK LASTMARK; ! INDEX OF THE LAST FLOOR-MARK ON THE STACK !------------------------------------------- !1. FIELD DEFINITIONS FOR DELIMITER LEXEMES: MACRO HCLASS =34,2$, HPRIORITY=30,6$, HSE =29,1$, HMT =28,1$, HAE =27,1$, HFORCER2L=26,1$, HUNIQ =22,4$, HSYNTYP =0,18$, RELOPBASE =11$, MAXDELIMITER=72$, ! CAUTION! RECOMPILE GLODEC IF YOU CHANGE THIS MAXOPERATOR =39$, ! DITTO ABOVE COMMENT OPNOTUNARY =OP[HMT]$; !----------------------------------------------- !2. SYNTAX ROUTINE INDICES, AND ASSOCIATED PLIT: ! THESE INDECES ARE PLACED WITHIN THE RESERVED WORD ! DELIMITER LEXEMES. THE SYNTAX ROUTINES THEN USE ! THESE VALUES TO INDEX INTO A PLIT OF ROUTINES SO AS TO ! EXECUTE THE CORRECT ROUTINE FOR EACH SYNTAX CONSTRUCT. BIND SADDOP=0, SSWABOP=1, SDIVOP=2, SDOTOP=3, SMINOP=4, SMODOP=5, SMULOP=6, SNEGOP=7, SPLUSOP=8, SSHIFTOP=9, SBITOP=10, SGTROP=11, SLEQOP=12, SLSSOP=13, SGEQOP=14, SEQLOP=15, SNEQOP=16, SNOTOP=17, SEQVOP=18, SANDOP=19, SOROP=20, SXOROP=21, SFADROP=22, SFDVROP=23, SFIXOP=24, SFLOATOP=25, SFMPROP=26, SFNEGOP=27, SFSBROP=28, SGTRUOP=29, SLEQUOP=30, SLSSUOP=31, SGEQUOP=32, SEQLUOP=33, SNEQUOP=34, SROTOP=35, SMAXOP=36, SMINNOP=37, SCARRYOP=38, SOVFLOP=39, SSTOROP=MAXOPERATOR+1, SERROP=MAXOPERATOR+2, SYNCASE=MAXOPERATOR+3, SFPARM=MAXOPERATOR+4, SFSTORE=MAXOPERATOR+5, SYNWDO=MAXOPERATOR+6, SYNUDO=MAXOPERATOR+7, DCROUTINE=MAXOPERATOR+8, SYNCOMP=MAXOPERATOR+9, SYNINCR=MAXOPERATOR+10, SYNDECR=MAXOPERATOR+11, SYNIF=MAXOPERATOR+12, SYNDOW=MAXOPERATOR+13, SYNDOU=MAXOPERATOR+14, SYNCRE=MAXOPERATOR+15, SYNEXC=MAXOPERATOR+16, SYNSEL=MAXOPERATOR+17, SYNESC=MAXOPERATOR+18, SYNLABEL=MAXOPERATOR+19, SYNMOD=MAXOPERATOR+20, SYNPLIT=MAXOPERATOR+21, SYNPAR=MAXOPERATOR+22, SYNPOI=MAXOPERATOR+23, SYNSQB=MAXOPERATOR+24, SYNEXIT=MAXOPERATOR+25, SYNREXIT=MAXOPERATOR+26, SYNNULL=MAXOPERATOR+27, SYNINLINE=MAXOPERATOR+28, SYNENABLE=MAXOPERATOR+29, SYNSIGNAL=MAXOPERATOR+30, SYNMOVP=MAXOPERATOR+31; !----------------------------------------------------------------------- !3. FLOW ANALYSIS STRUCTURES & VARIABLES STRUCTURE ITEM[I,J,P,S]= CASE .I OF SET (.ITEM)<.P,.S>; (@.ITEM+.J)<.P,.S>; (@@.ITEM+.J)<.P,.S>; (.(@.ITEM)<18,18>+.J)<.P,.S> TES; STRUCTURE LVL[I]=CASE .I OF SET .LVL<0,36>; .LVL<0,18>; .LVL<18,18>; ST[.(.LVL)<18,18>,0,0,36]; ST[.(.LVL)<18,18>,0,0,18]; ST[.(.LVL)<18,18>,0,18,18] TES; STRUCTURE GTHSTR[I]=(.GTHSTR+.I)<0,36>; MACRO LSTHDR=ITEM$; EXTERNAL GTHSTR GTHASH, LVL LVLCOPY:FLOOR:CEILING:ABCBASE, LSTHDR CURPRLGLST:CURMULST:CURPSLGLST:CUREPLGLST:CURBOGLST:KILLST;