home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
dbdebug.zip
/
DEBUG.PRG
< prev
next >
Wrap
Text File
|
1986-04-05
|
2KB
|
121 lines
SET TALK OFF
SET EXACT OFF
SET SAFETY OFF
CLEA
FILENAME=SPACE(12)
@5,5 SAY 'Enter name of command file ' GET FILENAME
READ
CLEA
? 'Working....'
IF .NOT. '.' $(FILENAME)
FILENAME=TRIM(FILENAME)+'.PRG'
ENDI
FILENAME=UPPER(FILENAME)
FNAME=SUBSTR(FILENAME,1,AT('.',FILENAME)-1)
USE DEBUG
ZAP
APPE FROM &FILENAME SDF
GO TOP
STOR 0 TO INDENT,AMT,DOWHILE,IF,DOCASE,ENDDO,ENDIF,ENDCASE
DO WHIL .NOT. EOF()
MEMVAR=TRIM(LINE)
DO WHIL SUBSTR(MEMVAR,1,1)=' '
MEMVAR=SUBSTR(MEMVAR,2,LEN(MEMVAR)-1)
ENDD
IF MEMVAR='*' .OR. "'" $MEMVAR .OR. '(' $MEMVAR
SPOT=AT(' ',MEMVAR)
MEMVAR=UPPER(SUBSTR(MEMVAR,1,SPOT))+;
SUBSTR(MEMVAR,SPOT+1,LEN(MEMVAR)-SPOT+1)
ELSE
STOR UPPER(MEMVAR) TO MEMVAR
ENDI
STOR .F. TO INCREASE,DECREASE,NEWELSE,NEWCASE,TEXT
DO CASE
CASE MEMVAR='DO WHIL'
STOR DOWHILE+1 TO DOWHILE
AMT=3
INCREASE=.T.
CASE MEMVAR='IF'
STOR IF+1 TO IF
AMT=3
INCREASE=.T.
CASE MEMVAR='DO CASE'
STOR DOCASE+1 TO DOCASE
AMT=8
INCREASE=.T.
CASE MEMVAR='CASE' .OR. MEMVAR='OTHE'
STOR .T. TO NEWCASE
CASE MEMVAR='ENDD'
STOR ENDDO+1 TO ENDDO
INDENT=INDENT-3
CASE MEMVAR='ENDI'
STOR ENDIF+1 TO ENDIF
INDENT=INDENT-3
CASE MEMVAR='ENDC'
STOR ENDCASE+1 TO ENDCASE
INDENT=INDENT-8
CASE MEMVAR='ELSE'
NEWELSE=.T.
CASE MEMVAR='TEXT'
STOR .T. TO TEXT
ENDC
REPL LINE WITH SPACE(INDENT)+MEMVAR
IF NEWELSE
INDENT=INDENT-AMT
REPL LINE WITH SPACE(INDENT)+MEMVAR
INDENT=INDENT+AMT
ENDI
IF NEWCASE
INDENT=INDENT-5
REPL LINE WITH SPACE(INDENT)+MEMVAR
INDENT=INDENT+5
ENDI
IF INCREASE
INDENT=INDENT+AMT
ENDI
REPL LINE WITH TRIM(LINE)
? TRIM(LINE)
IF TEXT
SKIP
DO WHIL .NOT. 'ENDT' $(UPPER(LINE))
? TRIM(LINE)
SKIP
ENDD
ELSE
SKIP
ENDI
ENDD
OLDNAME=FNAME+'.OLD'
IF FILE(OLDNAME)
ERAS &OLDNAME
ENDI
RENA &FILENAME TO &OLDNAME
COPY TO &FILENAME DELIM WITH BLANK
CLOSE DATABASES
CLEA
? 'Command File statistics: '
?
? 'DO WHILE STATEMENTS :',DOWHILE
? 'ENDDO STATEMENTS :',ENDDO
IF DOWHILE # ENDDO
?? ' <--- WHOOPS! UNMATCHED PAIR'
ENDI
?
? 'IF STATEMENTS :',IF
? 'ENDIF STATEMENTS :',ENDIF
IF IF # ENDIF
?? ' <--- WHOOPS! UNMATCHED PAIR'
ENDI
? 'DO CASE STATEMENTS :',DOCASE
? 'ENDCASE STATEMENTS :',ENDCASE
IF DOCASE # ENDCASE
?? ' <--- WHOOPS! UNMATCHED PAIR'
ENDI
?
?
? ' The original command file is now stored under &oldname'
?
?' The modified, indented version is stored under &filename'
?