home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
TURBOPAS
/
CROSSREF.ARK
/
CR-M02.INC
< prev
next >
Wrap
Text File
|
1987-04-18
|
5KB
|
98 lines
{.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 }