-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplural6.html
More file actions
2 lines (2 loc) · 5.76 KB
/
plural6.html
File metadata and controls
2 lines (2 loc) · 5.76 KB
1
2
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body><pre><div class="b"><code><span class="kwd">class</span><span class="pln"> </span><span class="typ">LazyRules</span><span class="pun">:</span><span class="pln"><br> rules_filename </span><span class="pun">=</span><span class="pln"> </span><span class="str">'plural6-rules.txt'</span><span class="pln"><br><br> </span><span class="kwd">def</span><span class="pln"> __init__</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">):</span><span class="pln"><br> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">pattern_file </span><span class="pun">=</span><span class="pln"> open</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">.</span><span class="pln">rules_filename</span><span class="pun">,</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">'utf-8'</span><span class="pun">)</span><span class="pln"><br> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[]</span><span class="pln"><br><br> </span><span class="kwd">def</span><span class="pln"> __iter__</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">):</span><span class="pln"><br> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache_index </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"><br> </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">self</span><span class="pln"><br><br> </span><span class="kwd">def</span><span class="pln"> __next__</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">):</span><span class="pln"><br> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache_index </span><span class="pun">+=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> len</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache</span><span class="pun">)</span><span class="pln"> </span><span class="pun">>=</span><span class="pln"> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache_index</span><span class="pun">:</span><span class="pln"><br> </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache</span><span class="pun">[</span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache_index </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pun">]</span><span class="pln"><br><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">pattern_file</span><span class="pun">.</span><span class="pln">closed</span><span class="pun">:</span><span class="pln"><br> </span><span class="kwd">raise</span><span class="pln"> </span><span class="typ">StopIteration</span><span class="pln"><br><br> line </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">pattern_file</span><span class="pun">.</span><span class="pln">readline</span><span class="pun">()</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="kwd">not</span><span class="pln"> line</span><span class="pun">:</span><span class="pln"><br> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">pattern_file</span><span class="pun">.</span><span class="pln">close</span><span class="pun">()</span><span class="pln"><br> </span><span class="kwd">raise</span><span class="pln"> </span><span class="typ">StopIteration</span><span class="pln"><br><br> pattern</span><span class="pun">,</span><span class="pln"> search</span><span class="pun">,</span><span class="pln"> replace </span><span class="pun">=</span><span class="pln"> line</span><span class="pun">.</span><span class="pln">split</span><span class="pun">(</span><span class="kwd">None</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">)</span><span class="pln"><br> funcs </span><span class="pun">=</span><span class="pln"> build_match_and_apply_functions</span><span class="pun">(</span><span class="pln"><br> pattern</span><span class="pun">,</span><span class="pln"> search</span><span class="pun">,</span><span class="pln"> replace</span><span class="pun">)</span><span class="pln"><br> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">cache</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">funcs</span><span class="pun">)</span><span class="pln"><br> </span><span class="kwd">return</span><span class="pln"> funcs<br><br>rules </span><span class="pun">=</span><span class="pln"> </span><span class="typ">LazyRules</span><span class="pun">()</span></code></div></pre></body></html>