home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / dbdebug.zip / DEBUG.PRG < prev    next >
Text File  |  1986-04-05  |  2KB  |  121 lines

  1. SET TALK OFF
  2. SET EXACT OFF
  3. SET SAFETY OFF
  4. CLEA
  5. FILENAME=SPACE(12)
  6. @5,5 SAY 'Enter name of command file ' GET FILENAME
  7. READ
  8. CLEA
  9. ? 'Working....'
  10. IF .NOT. '.' $(FILENAME)
  11. FILENAME=TRIM(FILENAME)+'.PRG'
  12. ENDI
  13. FILENAME=UPPER(FILENAME)
  14. FNAME=SUBSTR(FILENAME,1,AT('.',FILENAME)-1)
  15. USE DEBUG
  16. ZAP
  17. APPE FROM &FILENAME SDF
  18. GO TOP
  19. STOR 0 TO INDENT,AMT,DOWHILE,IF,DOCASE,ENDDO,ENDIF,ENDCASE
  20. DO WHIL .NOT. EOF()
  21. MEMVAR=TRIM(LINE)
  22. DO WHIL SUBSTR(MEMVAR,1,1)=' '
  23. MEMVAR=SUBSTR(MEMVAR,2,LEN(MEMVAR)-1)
  24. ENDD
  25. IF MEMVAR='*' .OR. "'" $MEMVAR .OR. '(' $MEMVAR
  26. SPOT=AT(' ',MEMVAR)
  27. MEMVAR=UPPER(SUBSTR(MEMVAR,1,SPOT))+;
  28. SUBSTR(MEMVAR,SPOT+1,LEN(MEMVAR)-SPOT+1)
  29. ELSE
  30. STOR UPPER(MEMVAR) TO MEMVAR
  31. ENDI
  32. STOR .F. TO INCREASE,DECREASE,NEWELSE,NEWCASE,TEXT
  33. DO CASE
  34. CASE MEMVAR='DO WHIL'
  35. STOR DOWHILE+1 TO DOWHILE
  36. AMT=3
  37. INCREASE=.T.
  38. CASE MEMVAR='IF'
  39. STOR IF+1 TO IF
  40. AMT=3
  41. INCREASE=.T.
  42. CASE MEMVAR='DO CASE'
  43. STOR DOCASE+1 TO DOCASE
  44. AMT=8
  45. INCREASE=.T.
  46. CASE MEMVAR='CASE' .OR. MEMVAR='OTHE'
  47. STOR .T. TO NEWCASE
  48. CASE MEMVAR='ENDD'
  49. STOR ENDDO+1 TO ENDDO
  50. INDENT=INDENT-3
  51. CASE MEMVAR='ENDI'
  52. STOR ENDIF+1 TO ENDIF
  53. INDENT=INDENT-3
  54. CASE MEMVAR='ENDC'
  55. STOR ENDCASE+1 TO ENDCASE
  56. INDENT=INDENT-8
  57. CASE MEMVAR='ELSE'
  58. NEWELSE=.T.
  59. CASE MEMVAR='TEXT'
  60. STOR .T. TO TEXT
  61. ENDC
  62. REPL LINE WITH SPACE(INDENT)+MEMVAR
  63. IF NEWELSE
  64. INDENT=INDENT-AMT
  65. REPL LINE WITH SPACE(INDENT)+MEMVAR
  66. INDENT=INDENT+AMT
  67. ENDI
  68. IF NEWCASE
  69. INDENT=INDENT-5
  70. REPL LINE WITH SPACE(INDENT)+MEMVAR
  71. INDENT=INDENT+5
  72. ENDI
  73. IF INCREASE
  74. INDENT=INDENT+AMT
  75. ENDI
  76. REPL LINE WITH TRIM(LINE)
  77. ? TRIM(LINE)
  78. IF TEXT
  79. SKIP
  80. DO WHIL .NOT. 'ENDT' $(UPPER(LINE))
  81. ? TRIM(LINE)
  82. SKIP
  83. ENDD
  84. ELSE
  85. SKIP
  86. ENDI
  87. ENDD
  88. OLDNAME=FNAME+'.OLD'
  89. IF FILE(OLDNAME)
  90. ERAS &OLDNAME
  91. ENDI
  92. RENA &FILENAME TO &OLDNAME
  93. COPY TO &FILENAME DELIM WITH BLANK
  94. CLOSE DATABASES
  95. CLEA
  96. ? 'Command File statistics: '
  97. ?
  98. ? 'DO WHILE STATEMENTS    :',DOWHILE
  99. ? 'ENDDO STATEMENTS       :',ENDDO
  100. IF DOWHILE # ENDDO
  101. ?? '  <--- WHOOPS!  UNMATCHED PAIR'
  102. ENDI
  103. ?
  104. ? 'IF STATEMENTS          :',IF
  105. ? 'ENDIF STATEMENTS       :',ENDIF
  106. IF IF # ENDIF
  107. ?? ' <--- WHOOPS!  UNMATCHED PAIR'
  108. ENDI
  109. ? 'DO CASE STATEMENTS     :',DOCASE
  110. ? 'ENDCASE STATEMENTS     :',ENDCASE
  111. IF DOCASE # ENDCASE
  112. ?? '  <--- WHOOPS!  UNMATCHED PAIR'
  113. ENDI
  114. ?
  115. ?
  116. ? '            The original command file is now stored under &oldname'
  117. ?
  118. ?'             The modified, indented version is stored under &filename'
  119. ?
  120.  
  121.