# THIS IS FILE IMPSYN, CONTAINING THE SYNTAX TO BE USED IN COMPILING EACH SUBROUTINE OF THE IMP COMPILER # ::= FREE() ::="FREE(A+B0CON)"=>"[A+B]" ELSE "[A]"; ::= FREES(,) ::= "FREES(A+C0CON,B)"=>"[A+C]_B" ELSE"[A]_B"; ::= FLEN() ::= "[A-2]"; ::= FADD(,,) ::= "FLEN(A) LE B=>FADDEX(A,B); FREES(A+B,C); B_B+1; A"; ::= HRL(,) ::= ADDOP(506B,A,B); ::= HRR(,) ::= ADDOP(542B,A,B); # ADDITIONAL SYNTAX FOR DIRECTORY PROPERTIES # ALF IS COMMON; DORG,DORG1,DORG2,DPBYPC,DPBYPA,DPBYPI,DPBYPL,DPBYPU ARE COMMON; ::= DPROP('NAME',) ::= "ALF+[A+DORG] AND 777777B"; #NAME PROPERTY RETURNS A FREE STORAGE POINTER OTHER PROPERTIES RETURN THE ACTUAL VALUE # ::= DPROP('ENTRY',) ::= "[A+DORG1]"; ::= DPROP('NODE',) ::= "[A+DORG1]"; ::= DPROP('COM',) ::= ""; ::= DPROP('ATYPE',) ::= ""; ::= DPROP('SEM',) ::= "[A+DORG2]"; ::= DPROP('ISNM',) ::= ""; ::= DPROP('LXTY',) ::= ""; ::= DPROP('USE',) ::= ""; ::= DPROPS('ENTRY',,) ::= "[A+DORG1]_B"; ::= DPROPS('NODE',,) ::= "[A+DORG1]_B"; ::= DPROPS('COM',,) ::= "_B"; ::= DPROPS('ATYPE',,) ::= "_B"; ::= DPROPS('SEM',,) ::= "[A+DORG2]_B"; ::= DPROPS('ISNM',,) ::= "_B"; ::= DPROPS('LXTY',,) ::= "_B"; ::= DPROPS('USE',,) ::= "_B"; # SEMANTICS TO SPEED UP GRAPH ACCESS # GORG,GORG1,GBYPTY,GBYPNB ARE COMMON; ::= SCR() ::= "[A+GORG]"; ::= ALT() ::= "[A+GORG]"; ::= GTYPE() ::= ""; ::= GVAL() ::= "[A+GORG1]"; ::= GNB() ::= ""; # SEMANTICS TO SPEED UP TREE ACCESS # TORG,TSCRBP,TALTBP,TNONBP ARE COMMON; ::= TSCR() ::= ""; ::= TALT() ::= ""; ::= TNODEN()::=""; ::= STSCR(,) ::= "_B"; ::= STALT(,) ::= "_B"; ::= STNODEN(,)::="_B"; ::= FORG+::="A"; ::= +FORG ::= "A"; ::= BIT(,,) ::= LOCAL I,J,L1,L2 IN " I,J ARE REGISTER, SCRATCH; I_M+ROW; J_COL; L1: (J_J-36)<0=>GO TO L2; I_I+M[1]; GO TO L1; L2: [I] AND 1 LROT J"; ::= FLAG ::= "(FINAM IS COMMON; FINAM[5] AND 1 LS (A RS 29)-101B)"%% %%