gcc/contrib/filter_knr2ansi.pl

46 lines
769 B
Perl
Executable File

#!/usr/bin/perl
#
# Goes through the input line by line to find K&R style function
# declarations, and replaces them with ANSI style declarations.
#
@blah = <>;
for ($i = 0; $i < @blah; $i++)
{
if ($blah[$i] =~ /^([a-zA-Z_0-9]+)\s*\([^)]+\)\s*$/)
{
$name = $1;
$funci = $i;
$blah[$funci]="$name (";
$i++;
$lastline = $i;
while ($lastline < @blah && $blah[$lastline] !~ /^{/)
{
$lastline++;
}
$lastline--;
while ($i < @blah && $blah[$i] !~ /^{/)
{
$arg = $blah[$i];
if ($i != $lastline)
{
$arg =~ s/;/,/g;
}
else
{
$arg =~ s/;//g;
}
$blah[$i] = "";
$blah[$funci] = "$blah[$funci]" . "$arg";
$i++;
}
$blah[$funci] = "$blah[$funci]" . ")\n";
}
}
for ($i = 0; $i < @blah; $i++)
{
print $blah[$i];
}