<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of pybliographer</tt> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This program is free software; you can redistribute it and/or</tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># modify it under the terms of the GNU General Public License</tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># as published by the Free Software Foundation; either version 2 </tt> </tt>
<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># of the License, or (at your option) any later version.</tt> </tt>
<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This program is distributed in the hope that it will be useful,</tt> </tt>
<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</tt> </tt>
<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details. </tt> </tt>
<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with this program; if not, write to the Free Software</tt> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</tt> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring">""" Stream oriented reading of a BibTeX file, with no actual semantic</tt> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring">operation on the content. Tries to return _everything_ from the file,</tt> </tt>
</div><div id="IBibTeX.flat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IBibTeX.flat-expanded"><a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-docstring">""" Return a textual version of the field, with no visible BibTeX / LaTeX markup """</tt> </tt>
</div><div id="IBibTeX.subst-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IBibTeX.subst-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-docstring">""" Return a flattened list of the balanced expressions composing the field """</tt> </tt>
</div><div id="IBibTeX.execute-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IBibTeX.execute-expanded"><a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-docstring">""" Execute the known LaTeX commands forming the field,</tt> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> substitute the known symbols, and return the resulting string"""</tt> </tt>
</div><div id="IBibTeX.tobib-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IBibTeX.tobib-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-docstring">""" Return the BibTeX version of the field """</tt> </tt>
</div><div id="Join.execute-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Join.execute-expanded"><a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># Joining of bare Text fragments leads to a lookup in the @string environment</tt> </tt>
</div><div id="Block-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Block-expanded"><a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-docstring">""" A textual block, as a sequence of text and commands """</tt> </tt>
</div><div id="_on_out-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_on_out-expanded"><a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-docstring">""" Called when the parser is not in a record """</tt> </tt>
</div><div id="_on_open-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_on_open-expanded"><a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-docstring">""" Called at the opening of a record """</tt> </tt>
<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-comment"># We eat up input as long as we don't have a balanced expression</tt> </tt>
<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-comment"># Except during the opening, the parenthesis is a normal token</tt> </tt>
<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-comment"># opening the brace only occurs on the second level</tt> </tt>
<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-comment"># We are only interested in first level items now</tt> </tt>
<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-string">"key is defined in the middle of the record"</tt><tt class="py-op">,</tt> <tt class="py-name">start</tt><tt class="py-op">)</tt> </tt>