PDA

View Full Version : LOC


cn73
26-06-2003, 11:12
Avete mica qualche script per il conteggio delle LOC?? Ve ne sarei molto grato...

lovaz
26-06-2003, 12:21
Originally posted by "cn73"

... conteggio delle LOC...
Tradurre, please :D

maxithron
26-06-2003, 12:41
intendi malloc?

cn73
26-06-2003, 15:10
Scusate...intendo Line Of Code in un sorgente, ovvero da quante linee è composto, escludendo le interlinee vuote e i commenti... Qualcuno capisce di PERL?? :D

HO scritto questo, ma non funziona la parte di integrazione con AWK


#!/usr/bin/perl
# Author: Tom Mutdosch
# This program counts the number of lines of code, excluding
# comment characters and whitespace.
# Usage:
# LOC [-c commentchar] filename
# The default comment character is "//"


$commentChar = "\/\/"; # the default comment is //
$total = 0; # the total count of all files LOC


$ARGV[0] || die "Usage: LOC [-c commentcharacter] filename\n";



# get filename from each argurment on command line


foreach $subdir (`find . -type d | awk '{if (match($1,/^\.\/test$$|^\.\/bilancio|\.$$|^\.\/java|^\.\/workflow|old$$|bak$$|test$$/) == 0) print;}'`) {
print ( "--------------------------------" );
print ( "directory $subdir" );
cd $subdir

#foreach $file (@ARGV) {

foreach $file (`ls | awk '/.java$$/'`) {

print ( "working...$file\n" );
$flag = 0; #this flag is set if there is a command line comment

if ( $nextComment ) { #change default comment to command line comment
$commentChar = $file;
$flag = 1;
$nextComment = 0;
}

if ( $file eq "-c" ) { #a comment is given on command line...
$nextComment = 1;
$flag = 1;
}

if ( $flag == 0 ) {
open ( FILE, "<$file" ) || die "Errore!\n\n";

#$line = ;
$count = 0;

while ( $line = <FILE>) {

chop ($line) ;
$line =~ s/\s//g; #remove all whitespace

if ( $line =~ /^\/\*/ ) { #if comment is /*, stop counting...
$state = 1;
}

if ( $line =~ /^\*\// || $line =~ /\*\/$/ ) { #resume counting
print ( "resume counting..." );
$state = 0;
$count--;
}

#if it's not a comment or a blank line, count this as a LOC
if ( $line eq "" || $line =~ /^$commentChar/ || $state == 1 ) { }
else {
#print ( "$line\n" );
$count = $count + 1;
}

}
print ( "....Total lines of code: $count \n") ;
$total += $count;
}

}
}
print( "-----------------------------\n" );
print ("Total LOC : $total\n" );

maxithron
26-06-2003, 15:28
andiamo in programmazione che ne dici? :p

cn73
26-06-2003, 15:34
effettivamente l'ho messo anche li, mi scuso col mod x il doppio post :( potete chiudere.