Hallo maxwell,
Ich suche ein Tool, welches jede *.h und *.c Datei eines
C-Projektverzeichnisses durchparst und die gesamte Anzahl der
Quellcodezeilen aufsummiert (Kommentare rausgefilter).
Bei meiner Google-Recherge bin ich leider noch nicht fündig
geworden. Für Ratschäge bin ich dankbar.
Man könnte vielleicht selber sowas machen,
mein erster Versuch wäre sowas:
[cntcode.pl]
use strict;
use warnings;
use File::Find;
use Regexp::Common qw /comment/;
my $types = 'c|cpp|cxx|h|hpp';
sub countlines {
local $/;
open my $fh, '; close $fh; # read file
$content =~ s/$RE{comment}{'C++'}//g; # remove comments
$content =~ s/^\s\*$//mg; # remove empty lines
$content =~ tr/\n// # count remaining lines
}
my %lines;
sub wanted { $lines{$1} += countlines($\_) if -f && /\.($types)$/ }
find { wanted =\> \&wanted, follow =\> 1, no\_chdir =\> 1 }, '.' ;
print map "$\_ =\> $lines{$\_} lines\n", keys %lines; # Anzahl ausgeben
Aufzurufen im übergeordneten Verzeichnis mit:
$/my/projects\> perl cntcode.pl
Ich mach das gerade mal bei mir
in einemVerzichnis …
c =\> 21983 lines
h =\> 6485 lines
cxx =\> 718 lines
Nunja, wer weiss
Grüße
CMБ