The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
our %sig;
our %ret;
while (<>) {
	if (/^#define VTABLE_(\w*)\((.*)\)/) {
		my @params = split(/\s* , \s*/x,$2);
		my $args = join ',', map {/\w+ \s* \*? \s* (\w+)/x;} split(',',$sig{$1});
		my $ret = 'int';
		print "$ret{$1} $1$sig{$1} {\n    return VTABLE_$1($args)\n}\n";
	} elsif (/^typedef \s* (.*?) \s* \(.*?(\w+?)_method_t\)(.*);$/x) {
		$sig{$2} = $3;
		$ret{$2} = $1;
		#print "method_t: $1 sig:$2\n";
	}
}