Article View: comp.lang.modula2
Article #2835LOCs for modula
From: Meinhard Berger
Date: Thu, 21 Sep 1995 12:21
Date: Thu, 21 Sep 1995 12:21
100 lines
3127 bytes
3127 bytes
Hello
maybe some one is interested in LOC measurements
for modula code.
the awk-script at the end produces following
output when applied to one of my modules.
a cyclomatic-complexity or software science would
be nicer maybe I do it next time. But I think
for one programmer or as an quick scan over
code LOCs are ok.
engelbert
cut here ----------------------------------------
IMPLEMENTATION MODULE ClipBrd;
PROCEDURE | lines | local Procs
----------------------+-------+--------------
Available | 7 | 0
Open | 6 | 0
Empty | 6 | 0
Close | 6 | 0
Compact | 8 | 0
SetData | 15 | 0
DataSize | 7 | 0
GetData | 15 | 0
_main | 3 | 0
----------------------+-------+--------------
9 procedures
cut here ----------------------------------------
# analyze modula-2 source
# -----------------------
# 16.5.1994
# Fri 15.07.1994
# changed because of enhanced AWK knowledge
BEGIN{
mod1=1;
lnNum=0;
localProcs=0;
ProcCnt=0;
}
# main loop
( ( $1=="MODULE" )||( $2=="MODULE" ) ){
if( mod1==1 ){
printf( "%s\n\n", $0 );
print( " PROCEDURE | lines | local Procs" );
print( "----------------------+-------+--------------" );
mod1=0;
}
}
# a procedure declaration must start on a new line
# store name and line number
( $1=="PROCEDURE" ){
if ( lnNum==0 ){ # not a local proc
split( $2, a, ";" ); # no ; or (
split( a[1], a, "(" );
procName=a[1];
printf( " %-20s", procName );
lnNum=FNR;
procCnt+=1;
}else{
localProcs+=1
}
}
# procedure endings must be on a separate line
# print name and number of lines
# reset procName and line number
( $1=="END" ){
if ( ( index( $2, procName )==1 )||
( ( procName=="_main" )&&( index( $0, "." )!=0 ) ) ){
printf( " | %5d | %3d\n", FNR-lnNum, localProcs )
procName=""; lnNum=0
localProcs=0;
}
}
# look for module body
( ( lnNum==0 )&& # outside any procedure
( $1=="BEGIN" ) ){
procName="_main";
printf( " %-20s", procName );
lnNum=FNR;
procCnt+=1;
}
END{
printf( "----------------------+-------+--------------\n %d procedures\n",
procCnt );
}
cut here ----------------------------------------
--
--------------------------------
- ASM-ISN Dept. SMC -
- engelbert gruber -
- peter fintl -
- helmut gragger -
- email : c51903@dm.uibk.ac.at -
--------------------------------
Technical Details
Message-ID:
<43rld5$7ci@dm2.uibk.ac.at>Path:
arc1-ca.pugleaf.net!news.uibk.ac.at!dm!c51903Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.uibk.ac.at!dm!c51903 From: c51903@dm.uibk.ac.at (Meinhard Berger) Newsgroups: comp.lang.modula2 Subject: LOCs for modula Date: 21 Sep 1995 12:21:57 GMT Organization: University of Innsbruck, Austria Message-ID: <43rld5$7ci@dm2.uibk.ac.at> NNTP-Posting-Host: dme.uibk.ac.at X-Newsreader: TIN [version 1.2 PL1]