]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - contrib/filter_knr2ansi.pl
Imported gcc-4.4.3
[msp430-gcc.git] / contrib / filter_knr2ansi.pl
diff --git a/contrib/filter_knr2ansi.pl b/contrib/filter_knr2ansi.pl
new file mode 100755 (executable)
index 0000000..6b43e40
--- /dev/null
@@ -0,0 +1,45 @@
+#!/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];
+}
+