#!/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";
}
}