in reply to qr//ms problem
This is a much harder problem than you think. Try using Regexp::Common::balanced to strip out the code blocks. Unfortunately, your pattern still won't get you function names for valid C source code like:
Maybe something like:int foo(int bar, char ** baz) { ... }
(\w+)\s*$RE{balanced}{-parens=>'()'}[^{]*$RE{balanced}{-parens=>'{}'}
Though that will still have problems for some older C code.
Updated: Looking though CPAN finds C::Scan, which looks like it does what you want to do.
my $c = new C::Scan 'filename' => $filename; my $arrayref = $c->fdecls;
Updated 2: I'm a bit confused as to why you are implementing the only answer of your previous version of the same question that was stated flat out not to work by the poster.
|
|---|