root/trunk/jps2ps/lit_appels.pl

Revision 4, 1.9 kB (checked in by jms, 7 months ago)

Chargement de jps2ps dans le SVN.

  • Property svn:executable set to *
Line 
1 #!/usr/bin/perl -w
2
3 ## recoit le nom d'un fichier .pps
4 $source = "$ARGV[0]";
5
6 ## lecture du source, et stockage ds le tableau @le_source
7 $i = 0;
8 open (SRC, $source) or die "ouverture du fichier $source impossible";
9 while ($ligne = <SRC>) {
10     ## suppression des commentaires
11     if ($ligne =~ /%/) {
12        $ligne =~ s/%.*$//;
13     }
14     ## remplacement des tabulations
15     if ($ligne =~ /\t/) {
16         $ligne =~ s/\t/ /g;
17     };
18     ## remplacement des (){}[]!
19     if ($ligne =~ /\(|\)|{|}|\[|\]|!/) {
20            $ligne =~ s/\(|\)|{|}|\[|\]|!/ /g;
21     }
22 ##     ## remplacement des doubles espaces
23 ##     while ($ligne =~ /  /) {
24 ##            $ligne =~ s/  / /g;
25 ##     }   
26     $ligne =~ s/\r\n//;
27 ##    $ligne =~ s/\n//;
28
29 ##    print ("$i : " . $ligne);
30
31     $le_source [$i] = $ligne;
32     $i = $i + 1;
33 };
34 close (SRC);
35
36 ## on cherche les cles definies dans le fichier
37 $i = 0;
38 foreach $ligne (@le_source) {
39     ## la ligne definit une nouvelle cle
40     if ($ligne =~ /^\//) {
41         ## on l'efface de la ligne
42         $ligne =~ s/^\/[^ ]*(.*)/$1/;
43 #       print ($ligne);
44 #       print ("== : " . $cle . "== \n");
45     };
46     ## on supprime les definitions locales
47     while ($ligne =~ /\/[^ ]*(.*)/) {
48         $ligne =~ s/\/[^ ]*(.*)/$1/;
49     }
50     ## on supprime les nombres
51     while ($ligne =~ / [0-9]+ /) {
52         $ligne =~ s/ [0-9]+ (.*)/ $1/;
53     }
54     while ($ligne =~ /^[0-9]+ /) {
55         $ligne =~ s/^[0-9]+ (.*)/$1/;
56     }
57     ## on supprime les sauts de ligne
58     $ligne =~ s/\n//;
59 };
60
61 ## maintenant on recupere les appels
62 $i = 0;
63
64 foreach $ligne (@le_source) {
65     @contenu = split (/ /, $ligne);
66     foreach (@contenu) {
67         $element = $_;
68         if ($element =~ /[a-zA-Z]/) {
69             $appel [$i] = $element;
70             $i++;
71         }
72     }
73 };
74
75 ## maintenant on supprime les doublons
76 %deja_vu = ();
77 @uniques = ();
78 foreach $objet (@appel) {
79     unless ($deja_vu{$objet}) {
80         $deja_vu{$objet} = 1;
81         push (@uniques, $objet);
82     }
83 }
84
85
86 foreach (@uniques) {
87     print ($_ . "\n");
88 };
89
90 1;
Note: See TracBrowser for help on using the browser.