SUBROUTINE BUILD0(IFD,TFD) INTEGER IFD,TFD INTEGER A$BUF(200) COMMON /OPTCOM/A$BUF INTEGER SYMTE0(200),SYMNA0(200) INTEGER SYMLE0,SYMBO0 INTEGER IDTAB0 COMMON /LEXCOM/SYMTE0,SYMLE0,SYMBO0,IDTAB0,SYMNA0 INTEGER INBUF0(505) INTEGER IBPAA0,LINEN0(5),LEVEL0 INTEGER INFIL0(5) COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0 INTEGER OUTBU0(102) INTEGER OUTPA0,OUTLI0,OUTWI0 COMMON /OBUFC0/OUTBU0,OUTPA0,OUTLI0,OUTWI0 INTEGER MEMAA0(30000) COMMON /DS$MEM/MEMAA0 INTEGER L INTEGER LOOKUP,EQUAL,SCOPY INTEGER OPEN INTEGER FILEN0(180) INTEGER INFO(1) INTEGER AAAAA0(8) DATA AAAAA0/233,238,227,236,245,228,229,0/ LEVEL0=1 INFIL0(LEVEL0)=IFD LINEN0(LEVEL0)=0 CALL GETSYM 10000 IF((SYMBO0.NE.1))GOTO 10001 IF((LOOKUP(SYMNA0,INFO,IDTAB0).NE.1))GOTO 10002 CALL OUTPU0 IF((A$BUF(233-225+1).EQ.0))GOTO 10003 IF((EQUAL(SYMTE0,AAAAA0).EQ.0))GOTO 10003 CALL GETSYM CALL OUTSTR(SYMTE0) IF((SYMBO0.NE.2))GOTO 10004 L=SCOPY(SYMTE0,2,FILEN0,1) FILEN0(L)=0 GOTO 10005 10004 CALL SCOPY(SYMTE0,1,FILEN0,1) 10005 CONTINUE 10006 CALL GETSYM CALL OUTSTR(SYMTE0) IF((SYMBO0.NE.138))GOTO 10006 IF((LEVEL0.LT.5))GOTO 10007 CALL SYNERR('includes nested too deeply.') GOTO 10008 10007 LEVEL0=LEVEL0+(1) LINEN0(LEVEL0)=0 INFIL0(LEVEL0)=OPEN(FILEN0,1) IF((INFIL0(LEVEL0).NE.-3))GOTO 10009 LEVEL0=LEVEL0-(1) CALL SYNERR('can''t open include file.') CALL PRINT(-15,'File name: *s*n.',FILEN0) 10009 CONTINUE 10008 CONTINUE 10003 GOTO 10010 10002 CALL PRINT(TFD,'*s,*6i*n.',SYMNA0,OUTLI0) CALL OUTSTR(SYMTE0) 10010 GOTO 10011 10001 IF((A$BUF(236-225+1).EQ.0))GOTO 10012 IF((SYMBO0.NE.3))GOTO 10012 CALL PRINT(TFD,'*s,*6i*n.',SYMTE0,OUTLI0) CALL OUTSTR(SYMTE0) GOTO 10013 10012 CALL OUTSTR(SYMTE0) 10013 CONTINUE 10011 CALL GETSYM IF((SYMBO0.NE.-1))GOTO 10000 RETURN END SUBROUTINE OUTPU0 INTEGER A$BUF(200) COMMON /OPTCOM/A$BUF INTEGER SYMTE0(200),SYMNA0(200) INTEGER SYMLE0,SYMBO0 INTEGER IDTAB0 COMMON /LEXCOM/SYMTE0,SYMLE0,SYMBO0,IDTAB0,SYMNA0 INTEGER INBUF0(505) INTEGER IBPAA0,LINEN0(5),LEVEL0 INTEGER INFIL0(5) COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0 INTEGER OUTBU0(102) INTEGER OUTPA0,OUTLI0,OUTWI0 COMMON /OBUFC0/OUTBU0,OUTPA0,OUTLI0,OUTWI0 INTEGER MEMAA0(30000) COMMON /DS$MEM/MEMAA0 INTEGER SYMBUF(102) IF((A$BUF(226-225+1).EQ.0))GOTO 10014 CALL BOLDF0(SYMTE0,SYMBUF) CALL OUTSTR(SYMBUF) GOTO 10015 10014 IF((A$BUF(245-225+1).EQ.0))GOTO 10016 CALL UNDER0(SYMTE0,SYMBUF) CALL OUTSTR(SYMBUF) GOTO 10017 10016 CALL OUTSTR(SYMTE0) 10017 CONTINUE 10015 RETURN END SUBROUTINE BOLDF0(IN,OUT) INTEGER IN(1),OUT(102) INTEGER I,J J=1 I=1 GOTO 10020 10018 I=I+(1) 10020 IF((IN(I).EQ.0))GOTO 10019 OUT(J)=IN(I) OUT(J+1)=136 OUT(J+2)=IN(I) J=J+(3) GOTO 10018 10019 OUT(J)=0 RETURN END SUBROUTINE UNDER0(IN,OUT) INTEGER IN(1),OUT(102) INTEGER I,J J=1 I=1 GOTO 10023 10021 I=I+(1) 10023 IF((IN(I).EQ.0))GOTO 10022 OUT(J)=223 OUT(J+1)=136 OUT(J+2)=IN(I) J=J+(3) GOTO 10021 10022 OUT(J)=0 RETURN END SUBROUTINE OUTCH(C) INTEGER C INTEGER A$BUF(200) COMMON /OPTCOM/A$BUF INTEGER SYMTE0(200),SYMNA0(200) INTEGER SYMLE0,SYMBO0 INTEGER IDTAB0 COMMON /LEXCOM/SYMTE0,SYMLE0,SYMBO0,IDTAB0,SYMNA0 INTEGER INBUF0(505) INTEGER IBPAA0,LINEN0(5),LEVEL0 INTEGER INFIL0(5) COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0 INTEGER OUTBU0(102) INTEGER OUTPA0,OUTLI0,OUTWI0 COMMON /OBUFC0/OUTBU0,OUTPA0,OUTLI0,OUTWI0 INTEGER MEMAA0(30000) COMMON /DS$MEM/MEMAA0 IF((C.NE.138))GOTO 10024 CALL DUMPB0 GOTO 10025 10024 IF((OUTPA0.GE.OUTWI0))GOTO 10026 OUTBU0(OUTPA0)=C OUTPA0=OUTPA0+(1) 10026 CONTINUE 10025 RETURN END SUBROUTINE OUTSTR(STR) INTEGER STR(1) INTEGER A$BUF(200) COMMON /OPTCOM/A$BUF INTEGER SYMTE0(200),SYMNA0(200) INTEGER SYMLE0,SYMBO0 INTEGER IDTAB0 COMMON /LEXCOM/SYMTE0,SYMLE0,SYMBO0,IDTAB0,SYMNA0 INTEGER INBUF0(505) INTEGER IBPAA0,LINEN0(5),LEVEL0 INTEGER INFIL0(5) COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0 INTEGER OUTBU0(102) INTEGER OUTPA0,OUTLI0,OUTWI0 COMMON /OBUFC0/OUTBU0,OUTPA0,OUTLI0,OUTWI0 INTEGER MEMAA0(30000) COMMON /DS$MEM/MEMAA0 INTEGER I I=1 GOTO 10029 10027 I=I+(1) 10029 IF((STR(I).EQ.0))GOTO 10028 IF((STR(I).NE.138))GOTO 10030 CALL DUMPB0 GOTO 10031 10030 IF((OUTPA0.GE.OUTWI0))GOTO 10032 OUTBU0(OUTPA0)=STR(I) OUTPA0=OUTPA0+(1) 10032 CONTINUE 10031 GOTO 10027 10028 RETURN END SUBROUTINE DUMPB0 INTEGER A$BUF(200) COMMON /OPTCOM/A$BUF INTEGER SYMTE0(200),SYMNA0(200) INTEGER SYMLE0,SYMBO0 INTEGER IDTAB0 COMMON /LEXCOM/SYMTE0,SYMLE0,SYMBO0,IDTAB0,SYMNA0 INTEGER INBUF0(505) INTEGER IBPAA0,LINEN0(5),LEVEL0 INTEGER INFIL0(5) COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0 INTEGER OUTBU0(102) INTEGER OUTPA0,OUTLI0,OUTWI0 COMMON /OBUFC0/OUTBU0,OUTPA0,OUTLI0,OUTWI0 INTEGER MEMAA0(30000) COMMON /DS$MEM/MEMAA0 INTEGER AAAAB0(3) DATA AAAAB0/160,160,0/ IF((LEVEL0.LE.1))GOTO 10033 CALL PRINT(-11,'*i .',LEVEL0-1) GOTO 10034 10033 CALL PUTLIN(AAAAB0,-11) 10034 OUTBU0(OUTPA0)=0 CALL PRINT(-11,'*4i: *s*n.',OUTLI0,OUTBU0) OUTPA0=1 OUTLI0=OUTLI0+(1) RETURN END SUBROUTINE PRINT0(TFD) INTEGER TFD INTEGER A$BUF(200) COMMON /OPTCOM/A$BUF INTEGER SYMTE0(200),SYMNA0(200) INTEGER SYMLE0,SYMBO0 INTEGER IDTAB0 COMMON /LEXCOM/SYMTE0,SYMLE0,SYMBO0,IDTAB0,SYMNA0 INTEGER INBUF0(505) INTEGER IBPAA0,LINEN0(5),LEVEL0 INTEGER INFIL0(5) COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0 INTEGER OUTBU0(102) INTEGER OUTPA0,OUTLI0,OUTWI0 COMMON /OBUFC0/OUTBU0,OUTPA0,OUTLI0,OUTWI0 INTEGER MEMAA0(30000) COMMON /DS$MEM/MEMAA0 INTEGER I,PTR,NUM,S,J,L INTEGER INPUT,EQUAL INTEGER NAME(102),OLDNA0(102) INTEGER AAAAC0(8) INTEGER AAAAD0(8) DATA AAAAC0/170,172,172,172,243,170,233,0/ DATA AAAAD0/170,172,172,172,243,170,233,0/ OLDNA0(1)=0 S=INPUT(TFD,AAAAC0,NAME,NUM) 10035 IF((S.EQ.-1))GOTO 10036 CALL PUTLIN(NAME,-11) L=LENGTH(NAME) J=MAX0(18,((LENGTH(NAME)-1)/6+1)*6) I=L+1 GOTO 10039 10037 I=I+(1) 10039 IF((I.GT.J))GOTO 10038 CALL PUTCH(160,-11) GOTO 10037 10038 PTR=18+1 CALL SCOPY(NAME,1,OLDNA0,1) 10040 IF((EQUAL(NAME,OLDNA0).NE.1))GOTO 10041 IF((S.EQ.-1))GOTO 10041 IF((PTR.LE.OUTWI0))GOTO 10042 CALL PUTCH(138,-11) DO 10043 I=1,18 CALL PUTCH(160,-11) 10043 CONTINUE 10044 PTR=18+1 10042 CALL PRINT(-11,'*6i.',NUM) PTR=PTR+(6) S=INPUT(TFD,AAAAD0,NAME,NUM) GOTO 10040 10041 CALL PUTCH(138,-11) GOTO 10035 10036 RETURN END C ---- Long Name Map ---- C compare compa0 C initcrossref initc0 C putbackstr putbb0 C putback putba0 C filename filen0 C obufcom obufc0 C buildcrossref build0 C underline under0 C Outbuf outbu0 C Symbol symbo0 C Inbuf inbuf0 C Ibp ibpaa0 C Symlen symle0 C Level level0 C Mem memaa0 C Symtext symte0 C dumpbuffer dumpb0 C enterkw enter0 C outputkeyword outpu0 C Outwidth outwi0 C Outp outpa0 C boldface boldf0 C Infile infil0 C Symname symna0 C skipblanksandcomments skipb0 C printcrossref print0 C Idtable idtab0 C Outline outli0 C oldname oldna0 C Linenumber linen0