home *** CD-ROM | disk | FTP | other *** search
- {.pa}
- {************************* procedure ReadLine *******************************}
-
- procedure ReadLine(var InFile :text;
- var LineText :LineType);
-
- { This procedure will read one line of text from an input file containing the
- source code & count the lines. }
-
- begin
- with LineText do
- begin
- Len := 0;
- while (not eoln(InFile)) and { read in line loop char by char }
- (Len <= MaxLengthOfLine) do
- begin
- Len := Len + 1; { count char in line }
- read(InFile,Line[Len]) { read char from input file }
- end;
- readln(InFile);
- end
- end; { procedure ReadLine }
- {************************* procedure ClearLine *****************************}
-
- procedure ClearLine(var LineText:LineType);
-
- { This procedure will initialize the array of characters in LINE and set
- LEN to zero. }
-
- var
- I :Index; { loop index }
-
- begin
- for I := 1 to LineText.Len do
- LineText.Line[I] := ' ';
- LineText.Len := 0
- end; { procedure ClearLine }
- {.pa}
- {************************ procedure ReadInReserved *************************}
-
- procedure ReadInReserved(var Reserved :ReservedType);
-
- { This procedure will read in the reserved & semi-reserved words from a list
- of assignments within this procedure. }
-
- begin
- Reserved[1]:='ABSOLUTE '; Reserved[2]:='AND '; Reserved[3]:='ARRAY ';
- Reserved[4]:='BEGIN '; Reserved[5]:='CASE '; Reserved[6]:='CONST ';
- Reserved[7]:='DIV '; Reserved[8]:='DO '; Reserved[9]:='DOWNTO ';
- Reserved[10]:='ELSE '; Reserved[11]:='END '; Reserved[12]:='EXTERNAL ';
- Reserved[13]:='FILE '; Reserved[14]:='FOR '; Reserved[15]:='FORWARD ';
- Reserved[16]:='FUNCTION '; Reserved[17]:='GOTO '; Reserved[18]:='IF ';
- Reserved[19]:='IN '; Reserved[20]:='INLINE '; Reserved[21]:='LABEL ';
- Reserved[22]:='MOD '; Reserved[23]:='NIL '; Reserved[24]:='NOT ';
- Reserved[25]:='OF '; Reserved[26]:='OR '; Reserved[27]:='PACKED ';
- Reserved[28]:='PROCEDURE'; Reserved[29]:='PROGRAM '; Reserved[30]:='RECORD ';
- Reserved[31]:='REPEAT '; Reserved[32]:='SET '; Reserved[33]:='STRING ';
- Reserved[34]:='THEN '; Reserved[35]:='TO '; Reserved[36]:='TYPE ';
- Reserved[37]:='UNTIL '; Reserved[38]:='VAR '; Reserved[39]:='WHILE ';
- Reserved[40]:='WITH ';
- end; { procedure ReadInReserved }
- {.pa}
- {************************** procedure DisplayStatus *************************}
-
- procedure DisplayStatus (var Status :Info;
- var OutF :text);
- var
- Code :integer; { actual lines of code }
-
- begin
- with Status do
- begin
- Code := TotalLines - CommentLines - BlankLines;
- writeln(OutF,'Total lines :' ,TotalLines:5 );
- writeln(OutF,'Full lines of comments :' ,CommentLines:5 );
- writeln(OutF,'Blank lines :' ,BlankLines:5 );
- writeln(OutF,'Actual lines of code :' ,Code:5 );
- writeln(OutF);
- write (OutF,'Total reserved words :' ,TotalReserved:5 );
- writeln(OutF,'':7,'Reserved/line of code :',TotalReserved/Code:5:1);
- write (OutF,'Total identifiers :' ,TotalIdents:5 );
- writeln(OutF,'':7,'Identifiers/line of code:',TotalIdents/Code:5:1 );
- write (OutF,'Total comments :' ,Comments:5 );
- writeln(OutF,'':7,'Comments/line of code :',Comments/Code:5:1 );
- writeln(OutF);
- writeln(OutF,'Different identifiers :' ,DifferentIdents:5 );
- writeln(OutF,'Avg. identifier length :' ,
- AvgIdentLength/TotalIdents:5:1);
- write (OutF,'Most used identifier : ' ,MostUsedIdent );
- writeln(OutF,'':1,'Number of times used:',MostUsedNumber:3 );
- write (OutF,'Least used identifier : ' ,LeastUsedIdent );
- writeln(OutF,'':1,'Number of times used:',LeastUsedNumber:3 );
- writeln(OutF);
- writeln(OutF,'User defined functions :' ,UsedReserved[16]:5 );
- writeln(OutF,'User defined procedures:' ,UsedReserved[28]:5 );
- end;
- end; { procedure DisplayStatus }