Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Always add the needed include file.
[simgrid.git] / src / smpi / fixsrc.pl
1 #!/usr/bin/perl
2
3 # Add include for mandatory header file
4 print "#include <smpi_cocci.h>\n";
5
6 # FIXME: here we make the assumption that people don't do things like put
7 # multiple statements after a declaration, but separated by semicolons. It's a
8 # reasonable assumption for the time being, but technically it could cause
9 # problems for some code.
10 OUTER: while ($line = <STDIN>) {
11     if ($line =~ /SMPI_VARINIT/) {
12         do {
13             chomp $line;
14             $line =~ s/\s+/ /g;
15             while ($line =~ s/(SMPI_VARINIT[A-Z0-9_]*?\(.*?\))//) {
16                 print "$1\n";
17             } 
18             if ($line =~ /SMPI_VARINIT/) {
19                 # should only happen for bad code...
20                 if (!($nextline = <STDIN>)) {
21                     last OUTER;
22                 }
23                 $line .= $nextline;
24
25             }
26         } while ($line =~ /SMPI_VARINIT/);
27     } else {
28         print $line;
29     }
30 }