<?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</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 Expression </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-module.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== MODULE DESCRIPTION ==================== --> <h1 class="epydoc">Module Expression</h1><p class="nomargin-top"><span class="codelink"><a href="Martel.Expression-pysrc.html">source code</a></span></p> <pre class="literalblock"> Classes for nodes in the Expression tree. Expression |--- Any - match (or don't match) a set of characters |--- AnyEol - match any newline representation (" ", " " or " ") |--- Assert - used for positive and negative lookahead assertions |--- AtBeginning - match the beginning of a line |--- AtEnd - match the end of a line |--- Debug - print a debug message |--- Dot - match any character except newline |--- Group - give a group name to an expression |--- GroupRef - match a previously identified expression |--- Literal - match (or don't match) a single character |--- MaxRepeat - greedy repeat of an expression, within min/max bounds |--- NullOp - does nothing (useful as an initial seed) |--- PassThrough - used when overriding 'make_parser'; match its subexp | |--- FastFeature - keeps information about possibly optional tags | |--- HeaderFooter - files with a header, records and a footer | `--- ParseRecords - parse a record at a time |--- Str - match a given string `--- ExpressionList - expressions containing several subexpressions |--- Alt - subexp1 or subexp2 or subexp3 or ... `--- Seq - subexp1 followed by subexp2 followed by subexp3 ... </pre> <!-- ==================== 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.Expression.Expression-class.html" class="summary-name">Expression</a><br /> Base class for nodes in the Expression tree </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Any-class.html" class="summary-name">Any</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Assert-class.html" class="summary-name">Assert</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.AtBeginning-class.html" class="summary-name">AtBeginning</a><br /> Match the beginning of a line </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.AtEnd-class.html" class="summary-name">AtEnd</a><br /> Match the end of a line </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Debug-class.html" class="summary-name">Debug</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Dot-class.html" class="summary-name">Dot</a><br /> Match any character except newline </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.AnyEol-class.html" class="summary-name">AnyEol</a><br /> Match a newline (" ", " " or " ") </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Group-class.html" class="summary-name">Group</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.GroupRef-class.html" class="summary-name">GroupRef</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Literal-class.html" class="summary-name">Literal</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.MaxRepeat-class.html" class="summary-name">MaxRepeat</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.NullOp-class.html" class="summary-name">NullOp</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.PassThrough-class.html" class="summary-name">PassThrough</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.FastFeature-class.html" class="summary-name">FastFeature</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.HeaderFooter-class.html" class="summary-name">HeaderFooter</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.ParseRecords-class.html" class="summary-name">ParseRecords</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Str-class.html" class="summary-name">Str</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.ExpressionList-class.html" class="summary-name">ExpressionList</a><br /> shares implementation used by 'Expressions with subexpressions' </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Alt-class.html" class="summary-name">Alt</a><br /> An Expression tree with a list of alternate matches. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression.Seq-class.html" class="summary-name">Seq</a><br /> An Expression matching a set of subexpressions, in sequential order </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 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 name="_verify_name"></a><span class="summary-sig-name">_verify_name</span>(<span class="summary-sig-arg">s</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_verify_name">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 name="_make_fast_lookup"></a><span class="summary-sig-name">_make_fast_lookup</span>()</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_make_fast_lookup">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 name="_quote"></a><span class="summary-sig-name">_quote</span>(<span class="summary-sig-arg">s</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_quote">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 name="_make_group_pattern"></a><span class="summary-sig-name">_make_group_pattern</span>(<span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">expression</span>, <span class="summary-sig-arg">attrs</span>)</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_make_group_pattern">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="escape"></a><span class="summary-sig-name">escape</span>(<span class="summary-sig-arg">pattern</span>)</span><br /> Escape all non-alphanumeric characters in pattern.</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#escape">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 name="_minimize_escape_char"></a><span class="summary-sig-name">_minimize_escape_char</span>(<span class="summary-sig-arg">c</span>)</span><br /> (c) -> into an appropriately escaped pattern for the character</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_minimize_escape_char">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 name="_minimize_escape_range"></a><span class="summary-sig-name">_minimize_escape_range</span>(<span class="summary-sig-arg">c1</span>, <span class="summary-sig-arg">c2</span>)</span><br /> (c1, c2) -> the pattern for the range bounded by those two characters</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_minimize_escape_range">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-module.html#_minimize_any_range" class="summary-sig-name" onclick="show_private();">_minimize_any_range</a>(<span class="summary-sig-arg">s</span>)</span><br /> s -> a string useable inside [] which matches all the characters in s</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_minimize_any_range">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-module.html#_make_no_case" class="summary-sig-name" onclick="show_private();">_make_no_case</a>(<span class="summary-sig-arg">node</span>)</span><br /> modify an expression in place to remove case dependencies</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#_make_no_case">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="NoCase"></a><span class="summary-sig-name">NoCase</span>(<span class="summary-sig-arg">expr</span>)</span><br /> expression -> expression where the text is case insensitive</td> <td align="right" valign="top"> <span class="codelink"><a href="Martel.Expression-pysrc.html#NoCase">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 name="MAXREPEAT"></a><span class="summary-name">MAXREPEAT</span> = <code title="65535">65535</code> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="_fast_quote_lookup"></a><span class="summary-name">_fast_quote_lookup</span> = <code title="None">None</code> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Martel.Expression-module.html#_minimize_escape_chars" class="summary-name" onclick="show_private();">_minimize_escape_chars</a> = <code title="{'\x07': '\\a', '\x08': '\\b', '\t': '\\t', ''' ''': '\\n', '\x0b': '\\v', '\x0c': '\\f', '\r': '\\r', ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">\x07</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\a</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">\x08</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\b</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">\t</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-ellipsis">...</code></code> </td> </tr> </table> <!-- ==================== FUNCTION DETAILS ==================== --> <a name="section-FunctionDetails"></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">Function Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-FunctionDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="_minimize_any_range"></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">_minimize_any_range</span>(<span class="sig-arg">s</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#_minimize_any_range">source code</a></span> </td> </tr></table> <p>s -> a string useable inside [] which matches all the characters in s</p> <p>For example, passing in "0123456789" returns "\d".</p> <p>This code isn't perfect.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="_make_no_case"></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">_make_no_case</span>(<span class="sig-arg">node</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Martel.Expression-pysrc.html#_make_no_case">source code</a></span> </td> </tr></table> <p>modify an expression in place to remove case dependencies</p> <p>may return a new top-level node</p> <dl class="fields"> </dl> </td></tr></table> </div> <br /> <!-- ==================== 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="_minimize_escape_chars"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">_minimize_escape_chars</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">\x07</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\a</code><code class="variable-quote">'</code><code class="variable-op">,</code> <code class="variable-quote">'</code><code class="variable-string">\x08</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\b</code><code class="variable-quote">'</code><code class="variable-op">,</code> <code class="variable-quote">'</code><code class="variable-string">\t</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\t</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"></code><code class="variable-quote">'''</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\n</code><code class="variable-quote">'</code><code class="variable-op">,</code> <code class="variable-quote">'</code><code class="variable-string">\x0b</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\v</code><code class="variable-quote">'</code><code class="variable-op">,</code> <code class="variable-quote">'</code><code class="variable-string">\x0c</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">\\f</code><code class="variable-quote">'</code><code class="variable-op">,</code> <code class="variable-quote">'</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">\\r</code><code class="variable-quote">'</code><code class="variable-op">,</code> <code class="variable-ellipsis">...</code> </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>