FFI-Platypus-Lang-Pascal

 view release on metacpan or  search on metacpan

lib/FFI/Platypus/Lang/Pascal.pm  view on Meta::CPAN

242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
my($class, @libs) = @_;
 
my %mangle;
 
foreach my $libpath (@libs)
{
  extract_symbols($libpath,
    export => sub {
      my($symbol1, $symbol2) = @_;
      return if $symbol1 =~ /^THREADVARLIST_/;
      return unless $symbol1 =~ /^[A-Z0-9_]+(\$[A-Z0-9_]+)*(\$\$[A-Z0-9_]+)?$/;
      my $symbol = $symbol1;
      my $ret = '';
      $ret = $1 if $symbol =~ s/\$\$([A-Z_]+)$//;
      my($name, @args) = split /\$/, $symbol;
      $symbol = "${name}(" . join(',', @args) . ')';
      $symbol .= ":$ret" if $ret;
      push @{ $mangle{$name} }, [ $symbol, $symbol1 ];
    },
  );
}



( run in 0.234 second using v1.01-cache-2.11-cpan-94b05bcf43c )