dougm       01/03/04 15:38:25

  Added:       util     source_stats.pl
  Log:
  utility for gathering some source statistics
  
  Revision  Changes    Path
  1.1                  modperl-2.0/util/source_stats.pl
  
  Index: source_stats.pl
  ===================================================================
  use lib qw(lib);
  
  use strict;
  use Apache::FunctionTable ();
  use Apache::StructureTable ();
  
  my %stats;
  
  for my $entry (@$Apache::FunctionTable) {
      unless ($entry->{name} =~ /^(ap|apr)_/) {
          #print "found alien function $entry->{name}\n";
          next;
      }
  
      $stats{functions}->{$1}++;
  }
  
  for my $entry (@$Apache::StructureTable) {
      my $elts = $entry->{elts};
      my $type = $entry->{type};
  
      my $c = $type =~ /^apr_/ ? "apr" : "ap";
      @$elts = () if $type =~ /^ap_LINK/;
      if (@$elts) {
          $stats{typedef_structs}->{$c}++;
          $stats{struct_members}->{$c} += @$elts;
      }
      else {
          $stats{typedefs}->{$c}++;
      }
  }
  
  while (my($name, $tab) = each %stats) {
      printf "%d %s\n", $tab->{ap} + $tab->{apr}, $name;
      for (qw(apr ap)) {
          printf "%6s: %d\n", $_, $tab->{$_};
      }
  }
  
  
  

Reply via email to