Analyzer docuementation This program will analyze any DBman or H & D base command file, cross reference any other text file and also indent any command file base on the control words "IF, DO WHILE or CASE." In analyzing the command file you have the option to indent, graphically connect the appropriate command structures, and analyze the logic for example: SET TALK OFF use FM D:\database.stf\ATTORNEY.dbf INDEX D:\index.stf\NAME.ATT SET FM FILTER TO VAL(DTOC(M.END))=0 go FM TOP y.ct=0 do while y.ct <8 y.ct1=str(y.ct,1) X.att_list&y.ct1 ="" inc y.ct enddo y.ct=0 y.ct1=str(y.ct,1) X.big_list="," go fm top do while not eof(fm) if len(X.att_list&y.ct1) > 220 X.att_list&y.ct1=substr(X.att_list&y.ct1,1,; len(X.att_list&y.ct1)-1) X.big_list=X.big_list+'X.att_list&y.ct1,' y.ct1=str(1+ (val(y.ct1)),1) IF LEN(TRIM(M.LAST))>0 X.att_list&y.ct1 = X.att_list&y.ct1; +!(substr(m.FIRST,1,1))+'. '; +!(SUBSTR(m.MIDDLE,1,1))+'. '; +toname(trim(m.LAST))+ ',' ENDIF skip FM 1 enddo SET FM FILTER TO save fX to D:\memory.stf\attorney.mem CLOSE FM return becomes------------------------------------------: 1 SET TALK OFF 2 3 use FM D:\database.stf\ATTORNEY.dbf INDEX D:\index.stf\NAME.ATT 4 SET FM FILTER TO VAL(DTOC(M.END))=0 5 go FM TOP 6 y.ct=0 7 DO WHILE y.ct <8 8 | y.ct1=str(y.ct,1) 9 | X.att_list&y.ct1 ="" 10 | inc y.ct 11 ENDDO 12 y.ct=0 13 y.ct1=str(y.ct,1) 14 X.big_list="," 15 go fm top 16 DO WHILE not eof(fm) 17 | IF len(X.att_list&y.ct1) > 220 18 | | X.att_list&y.ct1=substr(X.att_list&y.ct1,1,; 19 | | len(X.att_list&y.ct1)-1) 20 | | X.big_list=X.big_list+'X.att_list&y.ct1,' 21 | | y.ct1=str(1+ (val(y.ct1)),1) 22 | | 23 | | IF LEN(TRIM(M.LAST))>0 24 | | | X.att_list&y.ct1 = X.att_list&y.ct1; 25 | | | +!(substr(m.FIRST,1,1))+'. '; 26 | | | +!(SUBSTR(m.MIDDLE,1,1))+'. '; 27 | | | +toname(trim(m.LAST))+ ',' 28 | | ENDIF 29 | | skip FM 1 30 | ENDDO 31 | 32 | 33 | SET FM FILTER TO 34 | 35 | save fX to D:\memory.stf\attorney.mem 36 | CLOSE FM 37 | return 38 | CONTROL LINES FOR FILE Att_gen.asc. --------------------------------------------------- 7 DO WHILE y.ct <8 11 ENDDO 16 DO WHILE not eof(fm) 17 | IF len(X.att_list&y.ct1) > 220 23 | | IF LEN(TRIM(M.LAST))>0 28 | | ENDIF 30 | ENDDO LOGIC ERRORS FOR FILE Att_gen.asc. --------------------------------------------------- IF without ENDIF in line 17 IF in line 17 between WHILE loop lines 16 30 VARIABLE CROSS REFERENCE FOR FILE Att_gen.asc. --------------------------------------------------- ATTORNEY.dbf 3 .CLOSE 36 D 3 3 35 DTOC 4 ENDIF 28 FILTER 4 33 FM 3 4 5 29 33 36 IF 23 INDEX 3 LEN 23 M.END 4 M.LAST 23 NAME.ATT 3 OFF 1 SET 1 4 33 SUBSTR 26 TALK 1 TO 4 33 TOP 5 TRIM 23 VAL 4 X.att_list 9 17 18 18 19 20 24 24 X.big_list 14 20 20 attorney.mem 35 database.stf 3 do 7 16 enddo 11 30 eof 16 fX 35 fm 15 16 go 5 15 if 17 inc 10 index.stf 3 len 17 19 m.FIRST 25 m.LAST 27 m.MIDDLE 26 memory.stf 35 not 16 return 37 save 35 skip 29 str 8 13 21 substr 18 25 to 35 toname 27 top 15 trim 27 use 3 val 21 while 7 16 y.ct 6 7 8 10 12 13 y.ct1 8 9 13 17 18 18 19 20 21 21 24 24 & X& Ry&JL N^NuNVH