The R Project SVN R

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
10445 hornik 1
#! @PERL@
2
 
3
## Usage: extract-usage Rdfile
4
 
10456 hornik 5
use R::Rdtools;
10445 hornik 6
 
7
my $OSdir = "unix";
10534 ripley 8
 
9
open INFILE, "< $ARGV[0]" || die "Can't open input file";
10
open OUTFILE, "> $ARGV[1]" || die "Can't open output file";
11
 
12
while (<INFILE>) {
13
    chomp;
14
    open RDFILE, "< $_";
15
    print OUTFILE "# usages in file $_\n";
16
    my $text;
17
    my $skipping = 0;
18
    while(<RDFILE>) {
19
	if (/^#ifdef\s+([A-Za-z0-9]+)/o) {
20
	    if ($1 ne $OSdir) { $skipping = 1; }
21
	    next;
22
	}
23
	if (/^#ifndef\s+([A-Za-z0-9]+)/o) {
24
	    if ($1 eq $OSdir) { $skipping = 1; }
25
	    next;
26
	}
27
	if (/^#endif/o) {
28
	    $skipping = 0;
29
	    next;
30
	}
31
	next if $skipping > 0;
32
	$text .= $_;
10445 hornik 33
    }
10534 ripley 34
 
35
    {
36
	local $/; # unset for get_usages
37
	%usages = get_usages($text);
10445 hornik 38
    }
10534 ripley 39
 
40
    foreach $key (keys(%usages)){
41
	$usages{$key} =~ s/ *\\.?dots/ .../g;
42
	if ($key !~ /^</) {
43
	    print OUTFILE "$key <- function$usages{$key} NULL\n";
44
	}
10445 hornik 45
    }
10534 ripley 46
 
47
    print OUTFILE "\n";
10445 hornik 48
}