1 CLS:KEY OFF 2 LOCATE 1,25:PRINT "PRETTY.BAS" 3 PRINT 10 REM 'PRETTY PRINT' PROGRAMS FOR THE IBM PC BASICA 20 REM AUTHOR: WILLARD A BROWN, WESTERN WASHINGTON UNIVERSITY 30 REM COL = TAB VALUE FOR LINES ASSOCIATED WITH A STRUCTURE GROUP 40 REM IOLN$ = INPUT/OUTPUT LINE OF PROGRAM 50 REM OUTPUT FROM THIS PROGRAM WILL GO TO A FILE CALLED FILENAME.TEM 60 REM CARE MUST BE TAKEN TO AVOID EMBEDDING WEND AND NEXT IN IDENTIFIERS 64 PRINT"THIS IS A PROGRAM FOR STRUCTURING BASIC PROGRAM LISTINGS":PRINT 70 INPUT "TYPE A FILENAME WITHOUT .BAS (UP TO EIGHT CHARACTERS):";FILE$ 80 FILEIN$=FILE$+".BAS" 90 ON ERROR GOTO 330 100 OPEN FILEIN$ FOR INPUT AS #3 110 FOR DO=(NOT EOF(3)) TO -1 'bad news 120 GOODFILE=-1 130 FILEOUT$=FILE$+".TEM" 140 OPEN FILEOUT$ FOR OUTPUT AS #2 150 LINENO$=" " 160 WHILE NOT EOF(3) 170 LINE INPUT #3, IOLN$ 180 I=1 190 WHILE MID$(IOLN$,I,1)<>" " : I=I+1:WEND 'FIND END OF LINE# FIELD 200 LSET LINENO$=LEFT$(IOLN$,I-1) 'LEFT JUSTIFY LINE # 210 IOLN$=RIGHT$(IOLN$,LEN(IOLN$)-I) ' STRIP OFF LINENUMBERS 220 WHILE LEFT$(IOLN$,1)= " ":IOLN$=RIGHT$(IOLN$,LEN(IOLN$)-1):WEND 230 IF LEFT$(IOLN$,4)="FOR " OR LEFT$(IOLN$,6)="WHILE " THEN COL=COL+2 240 IF LEFT$(IOLN$,4)="FOR " AND INSTR(1,IOLN$,"NEXT")>0 THEN COL=COL-2 250 IF LEFT$(IOLN$,4)="WEND" OR LEFT$(IOLN$,4)="NEXT" THEN COL=COL-2 260 IF LEFT$(IOLN$,6)="WHILE " AND INSTR(1,IOLN$,"WEND")>0 THEN COL=COL-2 270 OUTL$=LINENO$+SPACE$(INSET)+IOLN$ 280 INSET=COL 290 PRINT#2 , OUTL$ 300 PRINT LINENO$; 310 WEND 320 NEXT DO 330 IF GOODFILE=0 THEN PRINT "EMPTY FILE SUBMITTED" 2000 CLOSE  , OUTL$ 300 PRINT LINENO$; 310 WEND 320 NEXT DO 330 IF GOODFILE=0 THEN PRINT "EMPTY FILE SUBMITTED" 2000 CLO