Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove website from simgrid directory
[simgrid.git] / tools / doxygen / index_create.pl
1 #!/usr/bin/perl -w
2
3 ($#ARGV >= 1) or die "Usage: index_create.pl <input-tag-file> <output-doc-file>";
4
5 my($type) = "";
6 my($name) = "";
7 my(%database);
8
9 $input  = $ARGV[0];
10 $output = $ARGV[1];
11 open FILE,$input;
12 while($line=<FILE>) {
13     chomp $line;
14     if($line=~/compound kind=/) {
15         $type = $line;
16         $type =~ s/^[^\"]*\"//;
17         $type =~ s/\".*$//;
18         $line=<FILE>;chomp $line;
19     }
20     if($line=~/member kind=/) {
21         $type = $line;
22         $type =~ s/^[^\"]*\"//;
23         $type =~ s/\".*$//;
24         $line=<FILE>;chomp $line;
25     }
26     if($line=~/<name>/) {
27         $name = $line;
28         $name =~ s/.*<name>//;
29         $name =~ s/<\/name>.*//;
30         $database{$type}{$name} = 1;
31         $type = "";
32         $name = "";
33         next;
34     }
35 }
36 close FILE;
37
38 open OUTPUT,"> $output";
39 print OUTPUT <<EOF;
40 /** \\defgroup API_index Index of the API
41   * \\ingroup SimGrid_API
42   * \\brief The alphabetical list of all functions, macros and types 
43   *  defined by SimGrid
44   *
45   * List of all functions, variables, defines, enums, and typedefs with
46   * links to the files they belong to.
47
48 EOF
49
50 foreach $type qw(define enumeration enumvalue function typedef) {
51     if(defined $database{$type}) {
52         print OUTPUT "<h2>$type</h2> \n  <ul>\n";
53         foreach $name (sort keys %{$database{$type}}) {
54             if($type eq "function") {
55                 print OUTPUT "\t<LI> $name()</LI>\n";
56             } else {
57                 print OUTPUT "\t<LI> #$name</LI>\n";
58             }
59         }
60         print OUTPUT "\n  </ul>\n";
61     }
62 }
63 print OUTPUT "*/";
64 close OUTPUT;
65