EVOLUTION-MANAGER
Edit File: check_dox.pl
# run to check what methods have been doxymented and which not # also checks if something is in dox that maybe shouldn't be report(check('GDAL')); report(check('OGR')); report(check('OSR')); sub report { my($dox, $pm) = @_; for my $class (sort keys %$pm) { my @m; for my $method (sort keys %{$pm->{$class}}) { push @m, " $method not in dox\n" unless $dox->{$class}{$method}; } next unless @m; print "$class\n@m"; } return; for my $class (sort keys %$dox) { my @m; for my $method (sort keys %{$dox->{$class}}) { push @m, " $method not in pm\n" unless $pm->{$class}{$method}; } next unless @m; print "$class\n@m"; } } sub check { my($file) = @_; @gdal = `cat lib/Geo/$file.dox`; my %pm; my %dox; for (@gdal) { ($_) = /(.*?)\(/ if /\(/; @l = split /\s+/; next unless @l; if ($l[$#l-1] eq '@class') { $class = $l[$#l]; $class =~ s/\s+$//; next; } if (/^##/) { ($method) = $l[$#l]; $method =~ s/^\\//; $method =~ s/^[\$\@\%]//; $dox{$class}{$method} = 1; next; } } @gdal = `cat lib/Geo/$file.pm`; for (@gdal) { @l = split /\s+/; if (/^package/) { $class = $l[$#l]; $class =~ s/;//; $class =~ s/\s+$//; next; } if (/^\*/) { $method = $l[0]; $method =~ s/\*//; next if $method =~ /^_/; next if $method =~ /^GDAL_/; next if $method =~ /^swig_/; next if $method =~ /^VSI/; next if $method =~ /^SRS_/; next if $method =~ /^[0-9A-Z_]+$/; $pm{$class}{$method} = 1; next; } if (/^sub/) { $method = $l[1]; next if $method =~ /^_/; next if $method =~ /^GDAL_/; next if $method =~ /^swig_/; next if $method =~ /^VSI/; next if $method =~ /^SRS_/; next if $method =~ /^[0-9A-Z_]+$/; $pm{$class}{$method} = 1; next; } } return (\%dox, \%pm); }