diff options
Diffstat (limited to 'docs/parse_xsfuncs.pl')
-rwxr-xr-x | docs/parse_xsfuncs.pl | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/docs/parse_xsfuncs.pl b/docs/parse_xsfuncs.pl deleted file mode 100755 index d26cb2b..0000000 --- a/docs/parse_xsfuncs.pl +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -use Glib::ParseXSDoc; -use File::Find; -use Data::Dumper; - -my $home = $ENV{HOME}; -my $src_dir = "$home/sources/irssi/src/perl"; -$ENV{FORCE_DATA_DUMPER} = 1; -print "=over\n\n"; - -find(\&process_file, $src_dir); - -print "=back\n\n"; - -sub process_file { - my $filename = $_; - return unless $filename =~ /\.xs$/; - - my $filepath = $File::Find::name; -# print "Processing file: $filepath\n"; - - my $parser = Glib::ParseXSDoc->new; #xsdocparse($filepath); - - $parser->parse_file($filepath); - $parser->canonicalize_xsubs; - $parser->swizzle_pods; - $parser->preprocess_pods; - $parser->clean_out_empty_pods; - -# print Dumper($parser->{data}), $/; - my $data = $parser->{data}; - foreach my $package (keys %$data) { - #print "Package: $package\n"; - my $subs = $data->{$package}->{xsubs}; - foreach my $sub (@$subs) { - - my $sub_name = $sub->{symname}; - - my $args_str = ''; - my @processed_args = (); - my $args = $sub->{args}; - - foreach my $arg (@$args) { - my $type = $arg->{type} // ''; - if ($type eq 'char *') { - $type = 'string'; - } elsif ($type eq 'SV *') { - $type = 'SVptr'; - } - my $aname = $arg->{name} // ''; - if ($aname eq '...') { - push @processed_args, '...'; - } else { - push @processed_args, $type . ' $' . $aname; - } - } - $args_str = join(", ", @processed_args); - - next if $sub_name =~ m/::$/; - print $sub->{symname}, "(", $args_str, ")\n"; - } - } -} - -sub print_msglevel { - my ($sym) = @_; - if ($sym =~ m/::MSGLEVEL/) { - $sym =~ s/^Irssi:://; - print "=item C<$sym>\n\n"; - } -} - |