Popular recipes tagged "nodevisitor"http://code.activestate.com/recipes/tags/nodevisitor/popular/2009-02-28T20:13:15-08:00ActiveState Code RecipesParse call function for Py2.6 and Py2.7 (Python)
2009-02-28T20:13:15-08:00Jervis Whitleyhttp://code.activestate.com/recipes/users/4169341/http://code.activestate.com/recipes/576671-parse-call-function-for-py26-and-py27/
<p style="color: grey">
Python
recipe 576671
by <a href="/recipes/users/4169341/">Jervis Whitley</a>
(<a href="/recipes/tags/ast/">ast</a>, <a href="/recipes/tags/call/">call</a>, <a href="/recipes/tags/function/">function</a>, <a href="/recipes/tags/namedtuple/">namedtuple</a>, <a href="/recipes/tags/nodevisitor/">nodevisitor</a>, <a href="/recipes/tags/parsing/">parsing</a>).
Revision 14.
</p>
<p>In some cases it may be desirable to parse the string expression "f1(*args)"
and return some of the key features of the represented function-like call. </p>
<p>This recipe returns the key features in the form of a namedtuple. </p>
<p>e.g. (for the above)</p>
<pre class="prettyprint"><code>>>> explain("f1(*args)")
[ Call(func='f1', starargs='args') ]
</code></pre>
<p>The recipe will return a list of such namedtuples for <code>"f1(*args)\nf2(*args)"</code>
Note that while the passed string expression must evaluate to valid python syntax,
names needn't be declared in current scope.</p>