Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: regexp for finding all function calls

by marksman (Novice)
on Jul 17, 2009 at 18:40 UTC ( #781139=note: print w/replies, xml ) Need Help??

in reply to regexp for finding all function calls

I'm still working on this problem, and have decided to try the perl PPI.

I'm a little stuck on how to find all calls to Mod::func within PPI. I've successfully read in the document, and am calling the PPI::Node->find method.$class_|_\&wanted

My first question is how to construct the anonymous subroutine to find all PPI::Statements that match Mod::func.

A second question is if it is possible to extract the line number of the statement from PPI. Otherwise I may also use B::Xref and hope that the Mod::func calls that it finds matches the ones returned by PPI.

Update: here's the code I'm working on right now, but the 'and' condition in the anonymous sub is returning false on everything. Hopefully the intent is clear though
# find all statements that have a PPI::Token::Word with "Mod::func" my $res = $Doc->find ( sub { $_[1]->isa('PPI::Statement') and $_[1]->contains('PPI::Token::Word') } );

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://781139]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2018-06-19 01:13 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (111 votes). Check out past polls.