Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

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.
http://search.cpan.org/~adamk/PPI-1.203/lib/PPI/Node.pm#find_$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') } );


Comment on Re: regexp for finding all function calls
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://781139]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (8)
As of 2014-07-30 02:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (229 votes), past polls