<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Martel.convert_re</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="Martel-module.html">Package Martel</a> :: Module convert_re </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="Martel.convert_re-module.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== MODULE DESCRIPTION ==================== --> <h1 class="epydoc">Module convert_re</h1><p class="nomargin-top"><span class="codelink"><a href="Martel.convert_re-pysrc.html">source code</a></span></p> <p>Converts a regular expression pattern string into an Expression tree.</p> <p>This is not meant to be an externally usable module.</p> <p>This works by using msre_parse.py to parse the pattern. The result is a tree data structure, where the nodes in the tree are tuples. The first element of the tuple is the name of the node type. The format of the other elements depends on the type.</p> <p>The conversion routine is pretty simple - convert each msre_parse tuple node into a Martel Expression node. It's a recusive implementation.</p> <p>'msre_parse.py' is a modified version of Secret Labs' 'sre_parse.py'</p> <!-- ==================== CLASSES ==================== --> <a name="section-Classes"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Classes</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Classes" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.convert_re.GroupNames-class.html" class="summary-name">GroupNames</a> </td> </tr> </table> <!-- ==================== FUNCTIONS ==================== --> <a name="section-Functions"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Functions</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Functions" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_literal"></a><span class="summary-sig-name">convert_literal</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">val</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_literal">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_not_literal"></a><span class="summary-sig-name">convert_not_literal</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">val</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_not_literal">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_at"></a><span class="summary-sig-name">convert_at</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">where</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_at">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_any"></a><span class="summary-sig-name">convert_any</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">ignore</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_any">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_assert"></a><span class="summary-sig-name">convert_assert</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">(direction, terms)</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_assert">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_assert_not"></a><span class="summary-sig-name">convert_assert_not</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">(direction, terms)</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_assert_not">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_branch"></a><span class="summary-sig-name">convert_branch</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">(ignore, branches)</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_branch">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="invert"></a><span class="summary-sig-name">invert</span>(<span class="summary-sig-arg">s</span>)</span><br /> s -> a string containing all the characters not present in s</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#invert">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_in"></a><span class="summary-sig-name">convert_in</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">terms</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_in">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_subpattern"></a><span class="summary-sig-name">convert_subpattern</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">(id, terms)</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_subpattern">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_newline"></a><span class="summary-sig-name">convert_newline</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">ignore</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_newline">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_max_repeat"></a><span class="summary-sig-name">convert_max_repeat</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">(min_count, max_count, terms)</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_max_repeat">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_groupref"></a><span class="summary-sig-name">convert_groupref</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">id</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_groupref">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="convert_list"></a><span class="summary-sig-name">convert_list</span>(<span class="summary-sig-arg">group_names</span>, <span class="summary-sig-arg">terms</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#convert_list">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="make_expression"></a><span class="summary-sig-name">make_expression</span>(<span class="summary-sig-arg">pattern</span>)</span><br /> pattern -> the Expression tree for the given pattern string</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.convert_re-pysrc.html#make_expression">source code</a></span> </td> </tr> </table> </td> </tr> </table> <!-- ==================== VARIABLES ==================== --> <a name="section-Variables"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Variables</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Variables" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.convert_re-module.html#categories" class="summary-name">categories</a> = <code title="{'category_digit': '0123456789', 'category_newline': ''' \r''', 'category_not_digit': '''\x00\x01\x02\x03\x04\x05\x06\x07\x08\t \x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\ \x1d\x1e\x1f !"#$%&\'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`a\ bcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\\ x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9\ ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">category_digit</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">0123456789</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">category_newlin</code><code class="variable-ellipsis">...</code></code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.convert_re-module.html#converter_table" class="summary-name">converter_table</a> = <code title="{"any": convert_any, "assert": convert_assert, "assert_not": convert_a\ ssert_not, "at": convert_at, "branch": convert_branch, "groupref": con\ vert_groupref, "in": convert_in, "literal": convert_literal, "max_repe\ at": convert_max_repeat, "newline": convert_newline, "not_literal": co\ nvert_not_literal, "subpattern": convert_subpattern,}">{"any": convert_any, "assert": convert_asser<code class="variable-ellipsis">...</code></code> </td> </tr> </table> <!-- ==================== VARIABLES DETAILS ==================== --> <a name="section-VariablesDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Variables Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-VariablesDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="categories"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">categories</h3> <dl class="fields"> </dl> <dl class="fields"> <dt>Value:</dt> <dd><table><tr><td><pre class="variable"> <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">category_digit</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">0123456789</code><code class="variable-quote">'</code><code class="variable-op">,</code> <code class="variable-quote">'</code><code class="variable-string">category_newline</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'''</code><code class="variable-string"></code> <code class="variable-string">\r</code><code class="variable-quote">'''</code><code class="variable-op">,</code> <code class="variable-quote">'</code><code class="variable-string">category_not_digit</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'''</code><code class="variable-string">\x00\x01\x02\x03\x04\x05\x06\x07\x08\t</code> <code class="variable-string">\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> <code class="variable-string">\x1d\x1e\x1f !"#$%&\'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`a</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> <code class="variable-string">bcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> <code class="variable-string">x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> <code class="variable-ellipsis">...</code> </pre></td></tr></table> </dd> </dl> </td></tr></table> </div> <a name="converter_table"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">converter_table</h3> <dl class="fields"> </dl> <dl class="fields"> <dt>Value:</dt> <dd><table><tr><td><pre class="variable"> {"any": convert_any, "assert": convert_assert, "assert_not": convert_a<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> ssert_not, "at": convert_at, "branch": convert_branch, "groupref": con<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> vert_groupref, "in": convert_in, "literal": convert_literal, "max_repe<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> at": convert_max_repeat, "newline": convert_newline, "not_literal": co<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span> nvert_not_literal, "subpattern": convert_subpattern,} </pre></td></tr></table> </dd> </dl> </td></tr></table> </div> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Mon Sep 15 09:26:29 2008 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>