home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
db3debug.zip
/
DEBUGGER.PRG
< prev
next >
Wrap
Text File
|
1986-04-29
|
4KB
|
158 lines
*********DEBUGGER.PRG
CLEAR
SET TALK OFF
SET EXACT OFF
SET SAFETY OFF
SET INTENSITY ON
PROGNAME = SPACE(12)
@ 5,5 SAY 'PROGRAM NAME : ' GET PROGNAME
READ
CLEAR
? 'PLEASE WAIT WHILE I SEARCH FOR THE FILE...'
IF .NOT. '.' $(PROGNAME)
PROGNAME = TRIM(PROGNAME)+".PRG"
ENDIF
PROGNAME = UPPER(PROGNAME)
FILNAME = SUBSTR(PROGNAME,1,AT(".",PROGNAME)-1)
USE DEBUGGER
ZAP
APPEND FROM &PROGNAME SDF
GO TOP
STORE " " TO ANS
STORE 0 TO DOCASCNT
STORE 0 TO DOWHICNT
STORE 0 TO ENCASCNT
STORE 0 TO ENDDOCNT
STORE 0 TO ENDIFCNT
STORE 0 TO IFCNT
STORE 0 TO INDENT
STORE 0 TO TAB
CLEAR
DO WHILE .NOT. EOF()
MEMVAR = TRIM(LINELOCATE)
DO WHILE SUBSTR(MEMVAR,1,1) = " "
MEMVAR = SUBSTR(MEMVAR,2,LEN(MEMVAR)-1)
ENDDO
IF MEMVAR = "'" .OR. '"' $MEMVAR .OR. "*" $MEMVAR .OR."(" $MEMVAR
PLACE = AT(" ",MEMVAR)
MEMVAR = UPPER(SUBSTR(MEMVAR,1,PLACE))+;
SUBSTR(MEMVAR,PLACE+1,LEN(MEMVAR)-PLACE+1)
ELSE
STORE UPPER(MEMVAR) TO MEMVAR
ENDIF
STORE .F. TO ADDONE,NOTADONE
STORE .F. TO ELSE2,CASE2,TEXT
DO CASE
CASE MEMVAR = "CASE" .OR. MEMVAR = "OTHE"
STORE .T. TO CASE2
CASE MEMVAR = "DO CASE"
STORE DOCASCNT +1 TO DOCASCNT
TAB = 8
ADDONE = .T.
CASE MEMVAR = "DO WHIL"
STORE DOWHICNT +1 TO DOWHICNT
TAB = 3
ADDONE = .T.è CASE MEMVAR = "ELSE"
ELSE2 = .T.
CASE MEMVAR = "ENDC"
STORE ENCASCNT +1 TO ENCASCNT
INDENT = INDENT -8
CASE MEMVAR = "ENDD"
STORE ENDDOCNT +1 TO ENDDOCNT
INDENT = INDENT -3
CASE MEMVAR = "ENDI"
STORE ENDIFCNT +1 TO ENDIFCNT
INDENT = INDENT -3
CASE MEMVAR = "IF "
STORE IFCNT+1 TO IFCNT
TAB = 3
ADDONE = .T.
CASE MEMVAR = "TEXT"
STORE .T. TO TEXT
ENDCASE
REPLACE LINELOCATE WITH SPACE(INDENT)+MEMVAR
IF ELSE2
INDENT = INDENT - TAB
REPLACE LINELOCATE WITH SPACE(INDENT) + MEMVAR
INDENT = INDENT + TAB
ENDIF
IF CASE2
INDENT = INDENT - 5
REPLACE LINELOCATE WITH SPACE(INDENT) + MEMVAR
INDENT = INDENT +5
ENDIF
IF ADDONE
INDENT=INDENT + TAB
ENDIF
REPLACE LINELOCATE WITH TRIM(LINELOCATE)
? TRIM(LINELOCATE)
IF TEXT
SKIP
DO WHILE .NOT. "ENDT" $(UPPER(LINELOCATE))
? TRIM(LINELOCATE)
SKIP
ENDDO (MEMVAR # ENDTEXT)
ELSE
SKIP
ENDIF
ENDDO
BAKNAME = FILNAME + ".XXX"
IF FILE(BAKNAME)
ERASE &BAKNAME
ENDIF (BAKNAME)
RENAME &PROGNAME TO &BAKNAME
COPY TO &PROGNAME DELIM WITH BLANK
CLEAR
?
? "DO WHILE STATEMENTS :",DOWHICNT
? "ENDDO STATEMENTS :",ENDDOCNTèIF DOWHICNT # ENDDOCNT
?? " <<<--PAIR NOT MATCHED---"
ENDIF (DOWICNT)
?
? "IF STATEMENTS :",IFCNT
? "ENDIF STATEMENTS :",ENDIFCNT
IF IFCNT # ENDIFCNT
?? " <<<--PAIR NOT MATCHED---"
ENDIF (IFCNT)
?
? "DO CASE STATEMENTS :",DOCASCNT
? "ENDCASE STATEMENTS :",ENCASCNT
IF DOCASCNT # ENCASCNT
?? " <<<--PAIR NOT MATCHED---"
ENDIF (DOCASCNT)
?
?
?
?
?
? " THE DEBUGGED PROGRAM FILE IS NOW STORED UNDER THE NAME &PROGNAME"
?
? " THE ORIGINAL PROGRAM FILE IS NOW STORED UNDER THE NAME &BAKNAME"
? " FOR YOUR EDITING PURPOSES."
?
@ 20,3
WAIT " WOULD YOU LIKE A HARDCOPY OF DEBUGGED PROGRAM FILE? Y/N" TO ANS
IF ANS <> "Y"
CLEAR
RETURN
ENDIF
SET PRINT ON
?
? " PROGRAM NAME : "+PROGNAME
?
GO TOP
DO WHILE .NOT. EOF()
LIST
ENDDO
EJECT
SET PRINT OFF
SET TALK ON
CLOSE DATABASES
CLEAR
RETURN