<?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.Expression.MaxRepeat</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> :: <a href="Martel.Expression-module.html">Module Expression</a> :: Class MaxRepeat </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.Expression.MaxRepeat-class.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== CLASS DESCRIPTION ==================== --> <h1 class="epydoc">Class MaxRepeat</h1><p class="nomargin-top"><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat">source code</a></span></p> <pre class="base-tree"> <a href="Martel.Expression.Expression-class.html">Expression</a> --+ | <strong class="uidshort">MaxRepeat</strong> </pre> <hr /> <!-- ==================== INSTANCE METHODS ==================== --> <a name="section-InstanceMethods"></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">Instance Methods</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-InstanceMethods" 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 href="Martel.Expression.MaxRepeat-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">expression</span>, <span class="summary-sig-arg">min_count</span>=<span class="summary-sig-default">0</span>, <span class="summary-sig-arg">max_count</span>=<span class="summary-sig-default">65535</span>)</span><br /> (expression, min_count = 0, max_count = MAXREPEAT)</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.__init__">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 href="Martel.Expression.MaxRepeat-class.html#group_names" class="summary-sig-name">group_names</a>(<span class="summary-sig-arg">self</span>)</span><br /> the list of group names used by this Expression and its children</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.group_names">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <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 href="Martel.Expression.MaxRepeat-class.html#_find_groups" class="summary-sig-name" onclick="show_private();">_find_groups</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">tag</span>)</span><br /> return a list of all groups matching the given tag</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat._find_groups">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 href="Martel.Expression.MaxRepeat-class.html#features" class="summary-sig-name">features</a>(<span class="summary-sig-arg">self</span>)</span><br /> return a list of all features</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.features">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 href="Martel.Expression.MaxRepeat-class.html#copy" class="summary-sig-name">copy</a>(<span class="summary-sig-arg">self</span>)</span><br /> do a deep copy on this Expression tree</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.copy">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <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 href="Martel.Expression.MaxRepeat-class.html#_select_names" class="summary-sig-name" onclick="show_private();">_select_names</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">names</span>)</span><br /> internal function: do not use</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat._select_names">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <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 href="Martel.Expression.MaxRepeat-class.html#_modify_leaves" class="summary-sig-name" onclick="show_private();">_modify_leaves</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">func</span>)</span><br /> internal function for manipulating the leaves of an expression</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat._modify_leaves">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 href="Martel.Expression.MaxRepeat-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br /> the corresponding pattern string</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.__str__">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" class="summary"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="Martel.Expression.Expression-class.html">Expression</a></code></b>: <code><a href="Martel.Expression.Expression-class.html#__add__">__add__</a></code>, <code><a href="Martel.Expression.Expression-class.html#__or__">__or__</a></code>, <code><a href="Martel.Expression.Expression-class.html#make_iterator">make_iterator</a></code>, <code><a href="Martel.Expression.Expression-class.html#make_parser">make_parser</a></code> </p> </td> </tr> </table> <!-- ==================== METHOD DETAILS ==================== --> <a name="section-MethodDetails"></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">Method Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-MethodDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="__init__"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>, <span class="sig-arg">expression</span>, <span class="sig-arg">min_count</span>=<span class="sig-default">0</span>, <span class="sig-arg">max_count</span>=<span class="sig-default">65535</span>)</span> <br /><em class="fname">(Constructor)</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.__init__">source code</a></span> </td> </tr></table> <pre class="literalblock"> (expression, min_count = 0, max_count = MAXREPEAT) Match the expression at least 'min_count' times and no more than 'max_count' times. If max_count == MAXREPEAT then there is no fixed upper limit. min_count and max_count can be strings, in which case they are used as "named group repeats." That is, they are taken to be group names and used to find the repeat counts during evaluation time. The current implementation only understands named group repeats when min_count == max_count. The grouping is greedy. WARNING: There is no check to ensure that a match of 0 size is repeated indefinitely, as with "(a?)*" against the string "b". This will loop forever. WARNING: The current implementation does not support backtracking in MaxRepeats, so ".* " will not match " ". Use a more explicit construct instead, like "[^ ]* ". </pre> <dl class="fields"> </dl> </td></tr></table> </div> <a name="group_names"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">group_names</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.group_names">source code</a></span> </td> </tr></table> <p>the list of group names used by this Expression and its children</p> <dl class="fields"> <dt>Overrides: <a href="Martel.Expression.Expression-class.html#group_names">Expression.group_names</a> </dt> </dl> </td></tr></table> </div> <a name="_find_groups"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_find_groups</span>(<span class="sig-arg">self</span>, <span class="sig-arg">tag</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat._find_groups">source code</a></span> </td> </tr></table> <p>return a list of all groups matching the given tag</p> <dl class="fields"> <dt>Overrides: <a href="Martel.Expression.Expression-class.html#_find_groups" onclick="show_private();">Expression._find_groups</a> <dd><em class="note">(inherited documentation)</em></dd> </dt> </dl> </td></tr></table> </div> <a name="features"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">features</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.features">source code</a></span> </td> </tr></table> <p>return a list of all features</p> <dl class="fields"> <dt>Overrides: <a href="Martel.Expression.Expression-class.html#features">Expression.features</a> </dt> </dl> </td></tr></table> </div> <a name="copy"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">copy</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.copy">source code</a></span> </td> </tr></table> <p>do a deep copy on this Expression tree</p> <dl class="fields"> <dt>Overrides: <a href="Martel.Expression.Expression-class.html#copy">Expression.copy</a> </dt> </dl> </td></tr></table> </div> <a name="_select_names"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_select_names</span>(<span class="sig-arg">self</span>, <span class="sig-arg">names</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat._select_names">source code</a></span> </td> </tr></table> <p>internal function: do not use</p> <dl class="fields"> <dt>Overrides: <a href="Martel.Expression.Expression-class.html#_select_names" onclick="show_private();">Expression._select_names</a> </dt> </dl> </td></tr></table> </div> <a name="_modify_leaves"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_modify_leaves</span>(<span class="sig-arg">self</span>, <span class="sig-arg">func</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat._modify_leaves">source code</a></span> </td> </tr></table> <p>internal function for manipulating the leaves of an expression</p> <p>This really needs to be some sort of visit pattern, but I'm not sure the best way to do it. THIS METHOD MAY CHANGE.</p> <dl class="fields"> <dt>Overrides: <a href="Martel.Expression.Expression-class.html#_modify_leaves" onclick="show_private();">Expression._modify_leaves</a> <dd><em class="note">(inherited documentation)</em></dd> </dt> </dl> </td></tr></table> </div> <a name="__str__"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span> <br /><em class="fname">(Informal representation operator)</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#MaxRepeat.__str__">source code</a></span> </td> </tr></table> <p>the corresponding pattern string</p> <dl class="fields"> <dt>Overrides: <a href="Martel.Expression.Expression-class.html#__str__">Expression.__str__</a> </dt> </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:39 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>