Your IP : 216.73.217.129


Current Path : /opt/alt/python37/lib64/python3.7/Tools/scripts/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/Tools/scripts/__pycache__/texi2html.cpython-37.opt-1.pyc

B

� f+�@sddlZddlZddlZddlZdZe�d�Ze�d�Ze�d�Ze�d�Z	e�d�Z
Gdd	�d	�ZGd
d�de�ZGdd
�d
�Z
Gdd�de
�ZGdd�d�Zdd�Zdd�Ze�d�Zdd�Zdd�ZejejdZdd�Zdd�Zd d!�Zed"k�re�dS)#�Nz\input texinfoz^@([a-z]+)([ 	]|$)z^[ 	]*$z@[a-z]+z	[
@{}&<>]z5^\* ([^:]*):(:|[ \t]*([^\t,\n.]+)([^ \t\n]*))[ \t\n]*c@sbeZdZdZdZdZdZdZdd�Zdd	�Z	d
d�Z
dd
d�Zdd�Zdd�Z
dd�Zdd�ZdS)�HTMLNodez�Some of the parser's functionality is separated into this class.

    A Node accumulates its contents, takes care of links to other Nodes
    and saves itself when it is finished and all links are resolved.
    z2<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">r�z</BODY></HTML>
cCs@||_||_|r||_n||_||_||_||_||_g|_dS)N)�dirname�name�topname�title�next�prev�up�lines)�self�dirrrrrr	r
�r�</opt/alt/python37/lib64/python3.7/Tools/scripts/texi2html.py�__init__gszHTMLNode.__init__cGsx|D]}|j�|�qWdS)N)r�append)rr�linerrr�writets
zHTMLNode.writecCsJt|jdt|j�d�}|�|j�|�|j�|�|j�|��dS)N�/�w)	�openr�makefilerr�prologue�text�epilogue�close)r�fprrr�flushxs
zHTMLNode.flushNcCsb|r^|��dkrd}d}nt|�}d|}|�|d|d|rBd|pDd|rPd|pRd|d	|d
�
dS)Nz(dir)z../dir.htmlrz TITLE="%s"z: <A HREF="�"z REL=z REV=�>z</A>  
)�lowerrr)r�label�nodename�relZrev�addrrrrr�linksz
HTMLNode.linkcCs�t|j�}d�|j�|_g|_|��|��|��d�|j�}g|_|jd|jdt	|j
�d|j
dt	|j�d|jdt	|j�d|jd||_
|dkr�d	||_dS)
NrzF
<HTML><HEAD>
  <!-- Converted with texi2html and Python -->
  <TITLE>z </TITLE>
  <LINK REL=Next HREF="z	" TITLE="z">
  <LINK REL=Previous HREF="z">
  <LINK REL=Up HREF="z">
</HEAD><BODY>
�z<P>
%s</BODY></HTML>
)�lenr�joinr�
open_links�output_links�close_links�DOCTYPErrrr	r
rr)r�length�linksrrr�finalize�s
ZzHTMLNode.finalizecCs|�d�dS)Nz<HR>
)r)rrrrr)�szHTMLNode.open_linkscCs|�d�dS)Nz<HR>
)r)rrrrr+�szHTMLNode.close_linkscCsn|j|jkr|�d|j�|jd|jdd�|jd|jdd�|jd|jdd�|j|jkrj|�d	|j�dS)
Nz  Contz  Next�Next)r#z  PrevZPreviousz  Up�Upz  Top)�contrr%r	r
rr)rrrrr*�szHTMLNode.output_links)NN)�__name__�
__module__�__qualname__�__doc__r,�typer2rrrrr%r/r)r+r*rrrrrZs


rc@s eZdZdZdd�Zdd�ZdS)�	HTML3Nodez;<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 3//EN//3.0">cCs|�d�dS)Nz<DIV CLASS=Navigation>
 <HR>
)r)rrrrr)�szHTML3Node.open_linkscCs|�d�dS)Nz
 <HR>
</DIV>
)r)rrrrr+�szHTML3Node.close_linksN)r3r4r5r,r)r+rrrrr8�sr8c@s�eZdZdZdZdedZdedZdZeZ	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Z d6d7�Z!d8d9�Z"d:d;�Z#d<d=�Z$d>d?�Z%d@dA�Z&dBdC�Z'dDdE�Z(dFdG�Z)dHdI�Z*dJdK�Z+dLdM�Z,dNdO�Z-dPdQ�Z.dRdS�Z/dTdU�Z0dVdW�Z1dXdY�Z2dZd[�Z3d\d]�Z4d^d_�Z5d`da�Z6dbdc�Z7ddde�Z8dfdg�Z9dhdi�Z:djdk�Z;dldm�Z<dndo�Z=dpdq�Z>drds�Z?dtdu�Z@dvdw�ZAdxdy�ZBdzd{�ZCd|d}�ZDd~d�ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXd�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_e^Z`e_Zad�d��Zbd�d��Zcd�d��Zdd�d��Zed�d��Zfd�d��Zgd�d��Zhd�dÄZid�dńZjd�dDŽZkd�dɄZld�d˄Zmd�d̈́Znd�dτZod�dфZpd�dӄZqd�dՄZrd�dׄZsd�dلZtd�dۄZud�d݄Zvd�d߄Zwd�d�Zxd�d�Zyd�d�Zzd�d�Z{d�d�Z|d�d�Z}d�d�Z~d�d�Zd�d�Z�d�d�Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z��d�d�Z�e^Z�e_Z��d�d�Z��d�d�Z��d�d�Z��d�d	�Z��d
�d�Z��d�d
�Z��d�d�Z�e�Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d �d!�Z��d"�d#�Z��d$�d%�Z��d&�d'�Z��d(�d)�Z��d*�d+�Z��d,�d-�Z��d.�d/�Z�e�Z�e�Z�e�Z��d0�d1�Z��d2�d3�Z��d4�d5�Z��d6�d7�Z��d8�d9�Z��d:�d;�Z��d<�d=�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z�e�Z��d>�d?�Z��d@�dA�Z��dB�dC�Z��dD�dE�Z��dF�dG�Z��dH�dI�Z��dJ�dK�ZdL�dM�ZÐdN�dO�ZĐdP�dQ�ZŐdR�dS�ZƐdT�dU�Z�e�ZȐdV�dW�ZɐdX�dY�ZʐdZ�d[�Zːd\�d]�Z̐d^�d_�Z͐d`�da�Zΐdb�dc�Zϐdd�de�ZАdf�dg�Zѐdh�di�ZҐdj�dk�ZӐdl�dm�Z�e�ZՐdn�do�Z֐dp�dq�Zאdr�ds�Zؐdt�du�Zِdv�dw�Zڐdx�dy�Zېdz�d{�Zܐd|�d}�Zݐd~�d�Zސd��d��Zߐd��d��Z�e�Z�d��d��Z�d��d��Z�e�Z�d��d��Z�d��d��Z�e�Z�d��d��Z�d��d��Z�e�Z�d��d��Z�d��d��Z�e�Z�d��d��Z�d��d��Z�e�Z�d��d��Z�d��d��Z�e�Z�d��d��Z�d��d��Z�e�Z��d��d��Z��d��d��Z�e�Z��d��d��Z��d��d��Z�e�Z��d��d��Z��d��d��Z�e�Z��d��d���Z�d��d���Ze��Z�d��d���Z�d��d���Ze��Z�d��d���Z�d��d���Z�e�Z�d��d���Z	�d��d���Z
e��Z�d��d���Z�d��d���Z
�d��d���Z�ddÄ�Z�dĐdń�Z�dƐdDŽ�Z�dȐdɄ�Z�dʐd˄�Z�d̐d̈́�Z�dΐdτ�Z�dАdф�Z�dҐdӄ�Z�e�Z�dԐdՄ�Z�d֐dׄ�Z�dؐdل�Z�dڐdۄ�Z�dܐd݄�Z�dސd߄�Z�d�d��Z�d�d��Z �e�Z!�e �Z"�e�Z#�e �Z$�e!�Z%�e"�Z&�e�Z'�e �Z(�e'�Z)�e(�Z*�d�d��Z+�d�d��Z,�d�d��Z-�d�d��Z.�d�d��Z/�d�d��Z0�d�d��Z1�d�d��Z2�d�d���Z3�d��d���Z4�d��d���Z5�d��d���Z6�d��d���Z7�d��d���Z8�d�d��Z9�d�d��Z:�d�d��Z;�d�d��Z<�d�d	��Z=�e=�Z>�d
�d��Z?�d�d
��Z@�d�d��ZA�dS(�
TexinfoParserz&copy;z(%(id)s)z5<A NAME=footnoteref%(id)s HREF="#footnotetext%(id)s">z</A>z5<A NAME=footnotetext%(id)s HREF="#footnoteref%(id)s">z</A>
%(text)s<P>
zJ
<P>
<HR NOSHADE SIZE=1 WIDTH=200>
<STRONG><EM>Footnotes</EM></STRONG>
<P>cCs�i|_i|_d|_d|_d|_d|_d|_d|_g|_d|_	d|_
d|_d|_d|_
d|_|��g|_g|_d|_ddi|_i|_g|_d|_d|_d|_d|_g|_d|_d|_dS)NrZtmp�.rZhtml�)�unknown�	filenames�	debugging�
print_headers�nodefp�
nodelinenor.�savetext�	savestack�htmlhelpr�
includedirr"rr�
resetindex�contents�	numbering�nofill�values�	stackinfo�	footnotes�itemarg�
itemnumber�	itemindex�node�	nodestackr2�includedepth)rrrrr�s:
zTexinfoParser.__init__cCs
||_dS)N)rD)rrDrrr�sethtmlhelp�szTexinfoParser.sethtmlhelpcCs
||_dS)N)r)rrrrr�
setdirname�szTexinfoParser.setdirnamecCs
||_dS)N)rE)rrErrr�
setincludedir�szTexinfoParser.setincludedircCsn|��}d}x.|r:|ddks(t�|�r:|��}|d}qW|dtt��tkr^tdtf��|�||�dS)Nr;r�%zfile does not begin with %r)�readline�blprog�matchr'�MAGIC�SyntaxError�	parserest)rrr�linenorrr�parse�szTexinfoParser.parsec
Cs�|}d|_d|_g|_g}�x"|j�s>|��}|jd|_|sh|rV|jsR|�|�g}|dkrftd�P|d}t�|�}|r�|�	d�\}}|||�}	|	dkr�|�
|�n$|r�|js�|�|�g}|�||�qt�|��r2d|jk�r2d|jk�r2|�r<|j�s<|�|�|j
�r"|�d�n
|�d�g}q|�
|�qW|j�rPtd	�|j�rltd
�td|j�|jdk�r�x2|j�r�|jd��|jd��|jd=�qzWdS)
Nrr;z*** EOF before @bye)ZnoindentZrefill�formatZexample�
z<P>
z*** Still skipping at the endz*** Stack not empty at the endz***���)�done�skip�stackrWrA�process�print�cmprogrY�spanr�commandrXrIrrRrQr/r)
rrZinitial_linenor]�accur�mo�a�b�cmdrrrr\	sb





zTexinfoParser.parserestcCs"|jdk	r|j�|j�d|_dS)Nr)rBrCr)rrrr�startsavingAs
zTexinfoParser.startsavingcCs8|j}t|j�dkr*|jd|_|jd=nd|_|p6dS)Nrrar)rBr'rC)rrBrrr�collectsavingsHs
zTexinfoParser.collectsavingscGsjyd�|�}Wnt|�t�YnX|jdk	r@|j||_n&|jrT|j�|�n|jrf|j�|�dS)Nr)r(rf�	TypeErrorrBr@rrP)r�argsrrrrrRs

zTexinfoParser.writecCs&|jdk	rtd�|��}|jr(|��|jr�|jdkr�|�d�|jdd�\}}}}|�	d|�|�	d|�|�	d|�|j
|jkr�|�	d|j�|�d�|�d	�|j��d|_n`|j
�r|j�s|j
jr�|j
j�r|j
j�r|j
j�r|j
��|j
��n|j�|j
�d|_
d
|_
dS)Nz$*** Still saving text at end of noder&z<HR>
�r0ZPrevr1ZTopz</BODY>
r)rBrfrprL�writefootnotesr@rAr�	nodelinksr%r"rrrPr2r7rr	r
r/rrQr)r�dummyrrr	r
rrr�endnode`s6






zTexinfoParser.endnodec
Cs�|jdkrptd|jd|j|jdd�|rBt|ddd�dd�|ddd�s^|dd�rjtddd�t�|���rrx�|D]�}t�|�}|s�|��d	}|�|�q�|�	d�\}}|�	d�\}}|�	d
�\}}	|�	d�\}
}|�	d�\}}
|||�}|||	�}|dd
k�r|}n||
|�}|||
�}|�
dt|�d|d|d	�|j�
|�|�||d��q�Wnd�|�}|�|�dS)Nr;�!zprocess:� )�endr�z...r`��rs�:z  <LI><A HREF="z">z</A>r)r>rfrcrd�inmenu�miprogrY�strip�expandrhrrrD�menuitemr()rrjrrk�bgnrzrlrm�c�d�e�f�g�hr!r"�punctrrrrre�sB






zTexinfoParser.processcCsd|j}xL|rR|ddkrRy|jt|�r,dSWntk
rBYnX|dd�}qW|ob|ddkS)Nra)ZifsetZifclearr�menu)rdrKr'�KeyError)rrdrrrr�szTexinfoParser.inmenuc
Cs�g}d}t|�}�x^||k�rp|}t�||�}|r<|��}n|�||d��P|�|||��||}|d}|dkr�|�d�q|dkr�|�d�q|dkr�|�d�q|dkr�|�d	�q|d
kr�|�d�q|dk�rD|s�td
�|�d�q|d}|d=yt|d|�}	Wn"tk
�r:|�	|�wYnX|	�q|dk�rZt
d|��|}x(||k�r�||tjk�r�|d}�q`W||k�r�|d}|||�}|dk�r�q|�|�q|||�}||k�r2||d
k�r2|d}|�|�yt|d|�}	Wn"tk
�r(|�
|�wYnX|	�qyt|d|�}	Wn"tk
�rf|�|�wYnX|	�qW|�r�td|�dS)Nrr;r`�<z&lt;rz&gt;�&z&amp;�{r�}z*** Unmatched }ra�close_�@zunexpected funny %rr~�open_Zhandle_z*** Stack not empty at para:)r'�spprog�search�startrrrf�getattr�AttributeError�
unknown_close�RuntimeError�string�
ascii_letters�unknown_open�unknown_handle)
rrrd�i�nr�rkr�rn�methodrrrr��s�
















zTexinfoParser.expandcCsRtd|d�|d}|�d|�||jkr:d|j|<n|j|d|j|<dS)Nz*** No open func for @z{...}r�r�r;)rfrr<)rrnrrrr�s
zTexinfoParser.unknown_opencCsPtd|d�d|}|�d�||jkr8d|j|<n|j|d|j|<dS)Nz*** No close func for @z{...}r�r;)rfrr<)rrnrrrr�s

zTexinfoParser.unknown_closecCsFtd|�|�d|�||jkr.d|j|<n|j|d|j|<dS)Nz*** No handler for @r�r;)rfrr<)rrnrrrr�s

zTexinfoParser.unknown_handlecCsdS)Nr)rrrr�handle_noindent#�zTexinfoParser.handle_noindentcCsdS)Nr)rrrr�
handle_refill%r�zTexinfoParser.handle_refillc
Cs�|}tj�|j|�}yt|d�}Wn0tk
rR}ztdt|��dSd}~XYnXtd|jdt|��|j	}|j
}|j}|jd|_|�
|d�|jd|_|��||_	||_
||_td|jdt|��dS)N�rz*** Can't open include filerxz--> filer;rz<-- file)�os�pathr(rEr�IOErrorrf�reprr>rbrcrdrRr\r)rrr�filer�msgZ	save_doneZ	save_skipZ
save_stackrrr�
do_include)s&zTexinfoParser.do_includecCsdS)Nr)rrrr�open_dmn@r�zTexinfoParser.open_dmncCsdS)Nr)rrrr�	close_dmnAr�zTexinfoParser.close_dmncCs|�d�dS)Nz...)r)rrrr�	open_dotsCr�zTexinfoParser.open_dotscCsdS)Nr)rrrr�
close_dotsDr�zTexinfoParser.close_dotscCsdS)Nr)rrrr�open_bulletFr�zTexinfoParser.open_bulletcCsdS)Nr)rrrr�close_bulletGr�zTexinfoParser.close_bulletcCs|�d�dS)NZTeX)r)rrrr�open_TeXIr�zTexinfoParser.open_TeXcCsdS)Nr)rrrr�	close_TeXJr�zTexinfoParser.close_TeXcCs|�|j�dS)N)r�COPYRIGHT_SYMBOL)rrrr�handle_copyrightLr�zTexinfoParser.handle_copyrightcCs|�|j�dS)N)rr�)rrrr�open_copyrightMr�zTexinfoParser.open_copyrightcCsdS)Nr)rrrr�close_copyrightNr�zTexinfoParser.close_copyrightcCs|�d�dS)N�-)r)rrrr�
open_minusPr�zTexinfoParser.open_minuscCsdS)Nr)rrrr�close_minusQr�zTexinfoParser.close_minuscCs|�d�dS)Nz&#161;)r)rrrr�open_exclamdownwr�zTexinfoParser.open_exclamdowncCsdS)Nr)rrrr�close_exclamdownxr�zTexinfoParser.close_exclamdowncCs|�d�dS)Nz&#191;)r)rrrr�open_questiondownyr�zTexinfoParser.open_questiondowncCsdS)Nr)rrrr�close_questiondownzr�z TexinfoParser.close_questiondowncCs|�d�dS)Nz&#229;)r)rrrr�open_aa{r�zTexinfoParser.open_aacCsdS)Nr)rrrr�close_aa|r�zTexinfoParser.close_aacCs|�d�dS)Nz&#197;)r)rrrr�open_AA}r�zTexinfoParser.open_AAcCsdS)Nr)rrrr�close_AA~r�zTexinfoParser.close_AAcCs|�d�dS)Nz&#230;)r)rrrr�open_aer�zTexinfoParser.open_aecCsdS)Nr)rrrr�close_ae�r�zTexinfoParser.close_aecCs|�d�dS)Nz&#198;)r)rrrr�open_AE�r�zTexinfoParser.open_AEcCsdS)Nr)rrrr�close_AE�r�zTexinfoParser.close_AEcCs|�d�dS)Nz&#248;)r)rrrr�open_o�r�zTexinfoParser.open_ocCsdS)Nr)rrrr�close_o�r�zTexinfoParser.close_ocCs|�d�dS)Nz&#216;)r)rrrr�open_O�r�zTexinfoParser.open_OcCsdS)Nr)rrrr�close_O�r�zTexinfoParser.close_OcCs|�d�dS)Nz&#223;)r)rrrr�open_ss�r�zTexinfoParser.open_sscCsdS)Nr)rrrr�close_ss�r�zTexinfoParser.close_sscCs|�d�dS)NZoe)r)rrrr�open_oe�r�zTexinfoParser.open_oecCsdS)Nr)rrrr�close_oe�r�zTexinfoParser.close_oecCs|�d�dS)NZOE)r)rrrr�open_OE�r�zTexinfoParser.open_OEcCsdS)Nr)rrrr�close_OE�r�zTexinfoParser.close_OEcCs|�d�dS)Nzl/)r)rrrr�open_l�r�zTexinfoParser.open_lcCsdS)Nr)rrrr�close_l�r�zTexinfoParser.close_lcCs|�d�dS)NzL/)r)rrrr�open_L�r�zTexinfoParser.open_LcCsdS)Nr)rrrr�close_L�r�zTexinfoParser.close_LcCs|�d�dS)Nz=&gt;)r)rrrr�open_result�r�zTexinfoParser.open_resultcCsdS)Nr)rrrr�close_result�r�zTexinfoParser.close_resultcCs|�d�dS)Nz==&gt;)r)rrrr�open_expansion�r�zTexinfoParser.open_expansioncCsdS)Nr)rrrr�close_expansion�r�zTexinfoParser.close_expansioncCs|�d�dS)Nz-|)r)rrrr�
open_print�r�zTexinfoParser.open_printcCsdS)Nr)rrrr�close_print�r�zTexinfoParser.close_printcCs|�d�dS)Nzerror--&gt;)r)rrrr�
open_error�r�zTexinfoParser.open_errorcCsdS)Nr)rrrr�close_error�r�zTexinfoParser.close_errorcCs|�d�dS)Nz==)r)rrrr�
open_equiv�r�zTexinfoParser.open_equivcCsdS)Nr)rrrr�close_equiv�r�zTexinfoParser.close_equivcCs|�d�dS)Nz-!-)r)rrrr�
open_point�r�zTexinfoParser.open_pointcCsdS)Nr)rrrr�close_point�r�zTexinfoParser.close_pointcCs|�d�|��dS)Nzsee )rro)rrrr�
open_pxref�s
zTexinfoParser.open_pxrefcCs|��dS)N)�makeref)rrrr�close_pxref�szTexinfoParser.close_pxrefcCs|�d�|��dS)NzSee )rro)rrrr�	open_xref�s
zTexinfoParser.open_xrefcCs|��dS)N)r�)rrrr�
close_xref�szTexinfoParser.close_xrefcCs|��dS)N)ro)rrrr�open_ref�szTexinfoParser.open_refcCs|��dS)N)r�)rrrr�	close_ref�szTexinfoParser.close_refcCs|�d�|��dS)NzSee info file )rro)rrrr�open_inforef�s
zTexinfoParser.open_inforefcCs^|��}dd�|�d�D�}xt|�dkr6|�d�qW|d}|d}|�d|d	|d
�dS)NcSsg|]}|���qSr)r�)�.0�srrr�
<listcomp>�sz/TexinfoParser.close_inforef.<locals>.<listcomp>�,r}rrr|�`z	', node `�')rp�splitr'rr)rrrrrPr�rrr�
close_inforef�szTexinfoParser.close_inforefcCs�|��}dd�|�d�D�}xt|�dkr6|�d�qW|d}}|drT|d}|d}|d	}t|�}|r�d
|d|}|�d|d
|d�dS)NcSsg|]}|���qSr)r�)r�r�rrrr��sz)TexinfoParser.makeref.<locals>.<listcomp>r��rrr|r}rsz../rz	<A HREF="z">z</A>)rpr�r'rrr)rrrrr"r!r�r�hrefrrrr��szTexinfoParser.makerefcCs|��dS)N)ro)rrrr�	open_uref�szTexinfoParser.open_urefcCsf|��}dd�|�d�D�}xt|�dkr6|�d�qW|d}|d}|sP|}|�d|d	|d
�dS)NcSsg|]}|���qSr)r�)r�r�rrrr��sz,TexinfoParser.close_uref.<locals>.<listcomp>r�r|rrr;z	<A HREF="z">z</A>)rpr�r'rr)rrrrr�r!rrr�
close_uref�szTexinfoParser.close_urefcCs|��dS)N)ro)rrrr�
open_image�szTexinfoParser.open_imagecCs|��dS)N)�	makeimage)rrrr�close_image�szTexinfoParser.close_imagec		Cs"|��}dd�|�d�D�}xt|�dkr6|�d�qW|d}|d}|d}|d	}|d
}|jd|}tj�|d�r�|d7}n@tj�|d
�r�|d
7}n&tj�|d�r�|d7}ntd|�|�	d|d|r�d|dp�d|r�d|dp�d|�r
d|d�pdd�|j
�|�dS)NcSsg|]}|���qSr)r�)r�r�rrrr��sz+TexinfoParser.makeimage.<locals>.<listcomp>r�r�rrr;r|r}rsrz.pngz.jpgz.gifz*** Cannot find image z
<IMG SRC="rz WIDTH="z	 HEIGHT="z ALT="z/>)rpr�r'rrr�r��existsrfrrD�addimage)	rrrr�filename�widthZheightZaltZextZ
imagelocationrrrr��s.



zTexinfoParser.makeimagecCsdS)Nr)rrrrr�r�zTexinfoParser.open_cCsdS)Nr)rrrrr�r�zTexinfoParser.close_cCs|�d�dS)Nz<CITE>)r)rrrr�	open_citer�zTexinfoParser.open_citecCs|�d�dS)Nz</CITE>)r)rrrr�
close_citer�zTexinfoParser.close_citecCs|�d�dS)Nz<CODE>)r)rrrr�	open_coder�zTexinfoParser.open_codecCs|�d�dS)Nz</CODE>)r)rrrr�
close_coder�zTexinfoParser.close_codecCs|�d�dS)Nz<TT>)r)rrrr�open_tr�zTexinfoParser.open_tcCs|�d�dS)Nz</TT>)r)rrrr�close_tr�zTexinfoParser.close_tcCs|�d�dS)Nz<DFN>)r)rrrr�open_dfnr�zTexinfoParser.open_dfncCs|�d�dS)Nz</DFN>)r)rrrr�	close_dfnr�zTexinfoParser.close_dfncCs|�d�dS)Nz<EM>)r)rrrr�	open_emph r�zTexinfoParser.open_emphcCs|�d�dS)Nz</EM>)r)rrrr�
close_emph!r�zTexinfoParser.close_emphcCs|�d�dS)Nz<I>)r)rrrr�open_i#r�zTexinfoParser.open_icCs|�d�dS)Nz</I>)r)rrrr�close_i$r�zTexinfoParser.close_icCs2t|j�d}|�|jdt|�i�|��dS)Nr;�id)r'rLr�FN_SOURCE_PATTERNr�ro)rr
rrr�
open_footnote&szTexinfoParser.open_footnotecCs&t|j�d}|j�||��f�dS)Nr;)r'rLrrp)rr
rrr�close_footnote-szTexinfoParser.close_footnotecCsD|�|j�x,|jD]"\}}|�|jt|�|d��qWg|_dS)N)r
r)r�	FN_HEADERrL�FN_TARGET_PATTERNr�)rr
rrrrrt1s
zTexinfoParser.writefootnotescCs|�d�dS)Nz<CODE>)r)rrrr�	open_file8r�zTexinfoParser.open_filecCs|�d�dS)Nz</CODE>)r)rrrr�
close_file9r�zTexinfoParser.close_filecCs|�d�dS)Nz<KBD>)r)rrrr�open_kbd;r�zTexinfoParser.open_kbdcCs|�d�dS)Nz</KBD>)r)rrrr�	close_kbd<r�zTexinfoParser.close_kbdcCs|�d�dS)Nz<KEY>)r)rrrr�open_key>r�zTexinfoParser.open_keycCs|�d�dS)Nz</KEY>)r)rrrr�	close_key?r�zTexinfoParser.close_keycCs|�d�dS)Nz<R>)r)rrrr�open_rAr�zTexinfoParser.open_rcCs|�d�dS)Nz</R>)r)rrrr�close_rBr�zTexinfoParser.close_rcCs|�d�dS)Nz`<SAMP>)r)rrrr�	open_sampDr�zTexinfoParser.open_sampcCs|�d�dS)Nz</SAMP>')r)rrrr�
close_sampEr�zTexinfoParser.close_sampcCs|�d�dS)Nz<SMALLCAPS>)r)rrrr�open_scGr�zTexinfoParser.open_sccCs|�d�dS)Nz</SMALLCAPS>)r)rrrr�close_scHr�zTexinfoParser.close_sccCs|�d�dS)Nz<STRONG>)r)rrrr�open_strongJr�zTexinfoParser.open_strongcCs|�d�dS)Nz	</STRONG>)r)rrrr�close_strongKr�zTexinfoParser.close_strongcCs|�d�dS)Nz<B>)r)rrrr�open_bMr�zTexinfoParser.open_bcCs|�d�dS)Nz</B>)r)rrrr�close_bNr�zTexinfoParser.close_bcCs|�d�dS)Nz<VAR>)r)rrrr�open_varPr�zTexinfoParser.open_varcCs|�d�dS)Nz</VAR>)r)rrrr�	close_varQr�zTexinfoParser.close_varcCs|�d�dS)Nz	<NOBREAK>)r)rrrr�open_wSr�zTexinfoParser.open_wcCs|�d�dS)Nz
</NOBREAK>)r)rrrr�close_wTr�zTexinfoParser.close_wcCs|��dS)N)ro)rrrr�open_urlVr�zTexinfoParser.open_urlcCs|��}|�d|d|d�dS)Nz	<A HREF="z">z</A>)rpr)rrrrr�	close_urlWszTexinfoParser.close_urlcCs|��dS)N)ro)rrrr�
open_email[r�zTexinfoParser.open_emailcCs|��}|�d|d|d�dS)Nz<A HREF="mailto:z">z</A>)rpr)rrrrr�close_email\szTexinfoParser.close_emailcCsdS)Nr)rrrr�
open_smallcr�zTexinfoParser.open_smallcCsdS)Nr)rrrr�close_smalldr�zTexinfoParser.close_smallcCs�|�d�\}}|||�}||d���}|jdkrTtd|jd|j|jd||�yt|d|�}Wnbtk
r�yt|d|�}Wn&tk
r�|js�|�||�dSX|j�	|�||�dSX|jr�|dkr�||�dS)Nr;rxzcommand:r�Zdo_Zbgn_rz)
rhr�r>rfrcrdr�r��unknown_cmdr)rrrkrlrmrnrr�funcrrrrifs(
zTexinfoParser.commandcCs>tdd||�||jkr&d|j|<n|j|d|j|<dS)Nz*** unknownr�r;)rfr<)rrnrrrrrr*}s
zTexinfoParser.unknown_cmdcCs�|��}|std�nj|d}|jr2|jd|kr@td|d�n|jd=yt|d|�}Wntk
rx|�|�dSX|�dS)Nz*** @end w/o argsrraz*** @endZ
unexpectedZend_)r�rfrdr�r��unknown_end)rrr�wordsrnr+rrr�do_end�s

zTexinfoParser.do_endcCsDd|}tdd|�||jkr,d|j|<n|j|d|j|<dS)Nzend z*** unknownr�r;)rfr<)rrnrrrr,�s

zTexinfoParser.unknown_endcCsdS)Nr)rrrrrr�
do_comment�r�zTexinfoParser.do_commentcCsdS)Nr)rrrrrr�
bgn_ifinfo�r�zTexinfoParser.bgn_ifinfocCsdS)Nr)rrrr�
end_ifinfo�r�zTexinfoParser.end_ifinfocCs|jd|_dS)Nr;)rc)rrrrrr�	bgn_iftex�r�zTexinfoParser.bgn_iftexcCs|jd|_dS)Nr;)rc)rrrr�	end_iftex�r�zTexinfoParser.end_iftexcCs|jd|_dS)Nr;)rc)rrrrrr�
bgn_ignore�r�zTexinfoParser.bgn_ignorecCs|jd|_dS)Nr;)rc)rrrr�
end_ignore�r�zTexinfoParser.end_ignorecCs|jd|_dS)Nr;)rc)rrrrrr�bgn_tex�r�zTexinfoParser.bgn_texcCs|jd|_dS)Nr;)rc)rrrr�end_tex�r�zTexinfoParser.end_texcCsD|�d�}|d}t|�dkr$d}nd�|dd��}||j|<dS)Nryrr;)r�r'r(rJ)rrrZfields�key�valuerrr�do_set�s
zTexinfoParser.do_setcCsd|j|<dS)N)rJ)rrrrrr�do_clear�szTexinfoParser.do_clearcCsJ||jks|j|dkr6|jd|_d|jt|j�<nd|jt|j�<dS)Nr;r)rJrcrKr'rd)rrrrrr�	bgn_ifset�szTexinfoParser.bgn_ifsetcCsdy6|jt|j�dr"|jd|_|jt|j�d=Wn(tk
r^tdt|j�d�YnXdS)Nr;z*** end_ifset: KeyError :)rKr'rdrcr�rf)rrrr�	end_ifset�szTexinfoParser.end_ifsetcCsJ||jkr6|j|dk	r6|jd|_d|jt|j�<nd|jt|j�<dS)Nr;r)rJrcrKr'rd)rrrrrr�bgn_ifclear�szTexinfoParser.bgn_ifclearcCsdy6|jt|j�dr"|jd|_|jt|j�d=Wn(tk
r^tdt|j�d�YnXdS)Nr;z*** end_ifclear: KeyError :)rKr'rdrcr�rf)rrrr�end_ifclear�szTexinfoParser.end_ifclearcCs|��dS)N)ro)rrrr�
open_value�szTexinfoParser.open_valuecCs2|��}||jkr$|�|j|�n
td|�dS)Nz*** Undefined value: )rprJrrf)rr8rrr�close_value�s
zTexinfoParser.close_valuecCs |��|�|�|��|_dS)N)ror�rpr)rrrrrr�do_settitle�s
zTexinfoParser.do_settitlecCsdS)Nr)rrrrrr�
do_parskip�r�zTexinfoParser.do_parskipcCs|��d|_dS)Nr;)rwrb)rrrrrr�do_bye�szTexinfoParser.do_byecCs|jd|_dS)Nr;)rc)rrrrrr�
bgn_titlepage�r�zTexinfoParser.bgn_titlepagecCs|jd|_dS)Nr;)rc)rrrr�
end_titlepage�r�zTexinfoParser.end_titlepagecCsdS)Nr)rrrrrr�do_shorttitlepage�r�zTexinfoParser.do_shorttitlepagecCs"|�d�|�|�|�d�dS)Nz<H1>z</H1>
)rr�)rrrrrr�	do_center�s

zTexinfoParser.do_centerc		Cs|��d|_dd�|�d�D�}xt|�dkr<|�d�q$W||_|dd�\}}}}|jdt|�}||jkr�t	d|�n|j
r�t	d	|j
d
|�d|j|<||_|jr�|j
r�|j|j
d_|js�||_|}|jr�|d
|j}|�|j|j|j||||�|_|j�|j||||�dS)NrcSsg|]}|���qSr)r�)r�r�rrrr�sz)TexinfoParser.do_node.<locals>.<listcomp>r�rsrrz*** Filename already in use: rxz--- writingr;raz -- )rwrAr�r'rrurrr=rfr>r"r2rQrr�NoderPrD�addnode)	rrr�partsrrr	r
r�rrrr�do_nodes0

zTexinfoParser.do_nodec
Cs:|r6|��dkrd}nt|�}|�|d|d|d|d�dS)Nz(dir)z../dir.htmlz: <A HREF="z" TYPE="z">z</A>  
)r rr)rr!r"r$rrrr%-szTexinfoParser.linkcCs�|jr�||j_x�|jr�|jdj|krL|jd��|jd��|jd=q|jdj|kr�|jdjsx|jj|jd_|jjs�|jdj|j_|jd��|jd��|jd=q|dkr�|jjs�|jdj|j_PqWdS)Nrar;)	rPr7rQr/rrrr	r
)rr7rrr�popstack8s$

zTexinfoParser.popstackcCs|�d|d�|�d�dS)N�H1rr;)�headingrM)rrrrrr�
do_chapterMszTexinfoParser.do_chaptercCs|�d|d�|�d�dS)NrNrar;)rOrM)rrrrrr�
do_unnumberedQszTexinfoParser.do_unnumberedcCs|�d|d�|�d�dS)NrNrar;)rOrM)rrrrrr�do_appendixTszTexinfoParser.do_appendixcCs|�d|d�dS)NrNra)rO)rrrrrr�do_topWszTexinfoParser.do_topcCs|�d|d�dS)NrNra)rO)rrrrrr�do_chapheadingYszTexinfoParser.do_chapheadingcCs|�d|d�dS)NrNra)rO)rrrrrr�do_majorheading[szTexinfoParser.do_majorheadingcCs|�d|d�|�d�dS)NrNr;r|)rOrM)rrrrrr�
do_section^szTexinfoParser.do_sectioncCs|�d|d�|�d�dS)NrNrar|)rOrM)rrrrrr�do_unnumberedsecbszTexinfoParser.do_unnumberedseccCs|�d|d�|�d�dS)NrNrar|)rOrM)rrrrrr�do_appendixseceszTexinfoParser.do_appendixseccCs|�d|d�dS)NrNra)rO)rrrrrr�
do_headingiszTexinfoParser.do_headingcCs|�d|d�|�d�dS)N�H2r|r})rOrM)rrrrrr�
do_subsectionlszTexinfoParser.do_subsectioncCs|�d|d�|�d�dS)NrZrar})rOrM)rrrrrr�do_unnumberedsubsecosz!TexinfoParser.do_unnumberedsubseccCs|�d|d�|�d�dS)NrZrar})rOrM)rrrrrr�do_appendixsubsecrszTexinfoParser.do_appendixsubseccCs|�d|d�dS)NrZra)rO)rrrrrr�
do_subheadinguszTexinfoParser.do_subheadingcCs|�d|d�|�d�dS)N�H3r}rs)rOrM)rrrrrr�do_subsubsectionxszTexinfoParser.do_subsubsectioncCs|�d|d�|�d�dS)Nr_rars)rOrM)rrrrrr�do_unnumberedsubsubsec{sz$TexinfoParser.do_unnumberedsubsubseccCs|�d|d�|�d�dS)Nr_rars)rOrM)rrrrrr�do_appendixsubsubsec~sz"TexinfoParser.do_appendixsubsubseccCs|�d|d�dS)Nr_ra)rO)rrrrrr�do_subsubheading�szTexinfoParser.do_subsubheadingcCs�|dkr�xt|j�|kr&|j�d�q
W|j|dd�=|j|d|j|<d}x|jD]}|t|�d}qXW|d|}|j�|||jf�|�d|d�|�|�|�d|d	�|js�|j	r�t
d
|�dS)Nrr;rr:ryr�rz</z>
z---)r'rHrr�rGr"rr�r>r?rf)rr7rr�level�xr�rrrrO�s
zTexinfoParser.headingcCs|�dd�dS)NzTable of Contentsi�)�listcontents)rrrrrr�do_contents�szTexinfoParser.do_contentscCsdS)Nr)rrrrrr�do_shortcontents�szTexinfoParser.do_shortcontentscCs�|�d|d�dg}x�|jD]�\}}}||kr0q||dkr\|�d|dd�|�|�n8||dkr�x*||dkr�|d=|�d|dd�qjW|�d|dt|�d	�|�|�|�d
�qW|�dt|��dS)Nz<H1>z</H1>
<UL COMPACT PLAIN>
rraz  z<UL PLAIN>
z</UL>
z<LI> <A HREF="z">z</A>
)rrGrrr�r')rr�maxlevelZ
prevlevelsrdrPrrrrf�s$

zTexinfoParser.listcontentscCsdS)Nr)rrrrrr�do_page�r�zTexinfoParser.do_pagecCsdS)Nr)rrrrrr�do_need�r�zTexinfoParser.do_needcCsdS)Nr)rrrrrr�	bgn_group�r�zTexinfoParser.bgn_groupcCsdS)Nr)rrrr�	end_group�r�zTexinfoParser.end_groupcCs |jr|�d�n
|�d�dS)Nr`z<P>
)rIr)rrrrrr�do_sp�szTexinfoParser.do_spcCs|�d�dS)Nz<HR>)r)rrrrrr�do_hline�szTexinfoParser.do_hlinecCs|�d�|�|�dS)Nz<DL>)r�	do_deffnx)rrrrrr�	bgn_deffn�s
zTexinfoParser.bgn_deffncCs|�d�dS)Nz</DL>
)r)rrrr�	end_deffn�szTexinfoParser.end_deffncCsz|�d�t|d�}|dd�|dd�\}}}|�d|�x|D]}|�dt|��qFW|�d�|�d|�dS)Nz<DT>r|z@b{%s}ryz
<DD>�fn)r�
splitwordsr��makevar�index)rrrr-�categoryr�rest�wordrrrrp�s



zTexinfoParser.do_deffnxcCs|�d|�dS)Nz	Function )rq)rrrrrr�	bgn_defun�r�zTexinfoParser.bgn_defuncCs|�d|�dS)Nz	Function )rp)rrrrrr�	do_defunx�r�zTexinfoParser.do_defunxcCs|�d|�dS)NzMacro )rq)rrrrrr�
bgn_defmac�r�zTexinfoParser.bgn_defmaccCs|�d|�dS)NzMacro )rp)rrrrrr�
do_defmacx�r�zTexinfoParser.do_defmacxcCs|�d|�dS)Nz{Special Form} )rq)rrrrrr�bgn_defspec�r�zTexinfoParser.bgn_defspeccCs|�d|�dS)Nz{Special Form} )rp)rrrrrr�do_defspecx�r�zTexinfoParser.do_defspecxcCs|�d�|�|�dS)Nz<DL>)r�	do_defvrx)rrrrrr�	bgn_defvr�s
zTexinfoParser.bgn_defvrcCsv|�d�t|d�}|dd�|dd�\}}}|�d|�x|D]}|�d|�qFW|�d�|�d|�dS)Nz<DT>r|z	@code{%s}ryz
<DD>�vr)rrtr�rv)rrrr-rwrrxryrrrr��s



zTexinfoParser.do_defvrxcCs|�d|�dS)Nz	Variable )r�)rrrrrr�
bgn_defvar�r�zTexinfoParser.bgn_defvarcCs|�d|�dS)Nz	Variable )r�)rrrrrr�
do_defvarx�r�zTexinfoParser.do_defvarxcCs|�d|�dS)Nz{User Option} )r�)rrrrrr�
bgn_defopt�r�zTexinfoParser.bgn_defoptcCs|�d|�dS)Nz{User Option} )r�)rrrrrr�
do_defoptxr�zTexinfoParser.do_defoptxcCs|�d�|�|�dS)Nz<DL>)r�
do_deftypefnx)rrrrrr�
bgn_deftypefns
zTexinfoParser.bgn_deftypefncCs�|�d�t|d�}|dd�|dd�\}}}}|�d||f�x|D]}|�dt|��qLW|�d�|�d|�dS)Nz<DT>r}z@code{%s} @b{%s}ryz
<DD>rs)rrtr�rurv)rrrr-rw�datatyperrxryrrrr�
s

 

zTexinfoParser.do_deftypefnxcCs|�d|�dS)Nz	Function )r�)rrrrrr�bgn_deftypefunr�zTexinfoParser.bgn_deftypefuncCs|�d|�dS)Nz	Function )r�)rrrrrr�do_deftypefunxr�zTexinfoParser.do_deftypefunxcCs|�d�|�|�dS)Nz<DL>)r�
do_deftypevrx)rrrrrr�
bgn_deftypevrs
zTexinfoParser.bgn_deftypevrcCs||�d�t|d�}|dd�|dd�\}}}}|�d||f�x|D]}|�d|�qLW|�d�|�d|�dS)Nz<DT>r}z@code{%s} @b{%s}ryz
<DD>rs)rrtr�rv)rrrr-rwr�rrxryrrrr�s

 

zTexinfoParser.do_deftypevrxcCs|�d|�dS)Nz	Variable )r�)rrrrrr�bgn_deftypevar*szTexinfoParser.bgn_deftypevarcCs|�d|�dS)Nz	Variable )r�)rrrrrr�do_deftypevarx-szTexinfoParser.do_deftypevarxcCs|�d�|�|�dS)Nz<DL>)r�	do_defcvx)rrrrrr�	bgn_defcv2s
zTexinfoParser.bgn_defcvcCs�|�d�t|d�}|dd�|dd�\}}}}|�d|�x|D]}|�d|�qHW|�d�|�dd||f�dS)Nz<DT>r}z@b{%s}ryz
<DD>r�z%s @r{on %s})rrtr�rv)rrrr-rw�	classnamerrxryrrrr�8s

 

zTexinfoParser.do_defcvxcCs|�d|�dS)Nz{Instance Variable} )r�)rrrrrr�bgn_defivarCszTexinfoParser.bgn_defivarcCs|�d|�dS)Nz{Instance Variable} )r�)rrrrrr�do_defivarxFszTexinfoParser.do_defivarxcCs|�d�|�|�dS)Nz<DL>)r�	do_defopx)rrrrrr�	bgn_defopIs
zTexinfoParser.bgn_defopcCs�|�d�t|d�}|dd�|dd�\}}}}|�d|�x|D]}|�dt|��qHW|�d�|�dd||f�dS)Nz<DT>r}z@b{%s}ryz
<DD>rsz%s @r{on %s})rrtr�rurv)rrrr-rwr�rrxryrrrr�Os

 

zTexinfoParser.do_defopxcCs|�d|�dS)NzMethod )r�)rrrrrr�
bgn_defmethodYszTexinfoParser.bgn_defmethodcCs|�d|�dS)NzMethod )r�)rrrrrr�
do_defmethodx\szTexinfoParser.do_defmethodxcCs|�d�|�|�dS)Nz<DL>)r�	do_deftpx)rrrrrr�	bgn_deftpas
zTexinfoParser.bgn_deftpcCsv|�d�t|d�}|dd�|dd�\}}}|�d|�x|D]}|�d|�qFW|�d�|�d|�dS)Nz<DT>r|z@b{%s}ryz
<DD>�tp)rrtr�rv)rrrr-rwrrxryrrrr�gs



zTexinfoParser.do_deftpxcCsD|s |�d�d|jt|j�<n ||_|�d�d|jt|j�<dS)Nz<OL>
z</OL>
z<UL>
z</UL>
)rrKr'rdrN)rrrrrr�
bgn_enumeratess

zTexinfoParser.bgn_enumeratecCs6d|_|�|jt|j�d�|jt|j�d=dS)Nr;)rNrrKr'rd)rrrr�
end_enumerate{szTexinfoParser.end_enumeratecCs||_|�d�dS)Nz<UL>
)rMr)rrrrrr�bgn_itemize�szTexinfoParser.bgn_itemizecCsd|_|�d�dS)Nz</UL>
)rMr)rrrr�end_itemize�szTexinfoParser.end_itemizecCs||_|�d�dS)Nz<DL>
)rMr)rrrrrr�	bgn_table�szTexinfoParser.bgn_tablecCsd|_|�d�dS)Nz</DL>
)rMr)rrrr�	end_table�szTexinfoParser.end_tablecCsd|_|�|�dS)Nrs)rOr�)rrrrrr�
bgn_ftable�szTexinfoParser.bgn_ftablecCsd|_|��dS)N)rOr�)rrrr�
end_ftable�szTexinfoParser.end_ftablecCsd|_|�|�dS)Nr�)rOr�)rrrrrr�
bgn_vtable�szTexinfoParser.bgn_vtablecCsd|_|��dS)N)rOr�)rrrr�
end_vtable�szTexinfoParser.end_vtablecCs|jr|�|j|�|jrd|jddkrV|jdrV|jdtjkrV|jd|d}n|jd|}|jdk	r�|jd|}t|j�|_|jr�|jdd	kr�|�d
�|�	|�|�d�nR|jr�|jddkr�|�d
�|�	|�|�d�n|�d�|�	|�|�d�dS)Nrr�r;r�r�ryz. ra�tablez<DT>z
<DD>Z
multitablez<TR><TD>z</TD>
</TR>
z<LI>z  )
rOrvrMr�r�rN�	incrementrdrr�)rrrrrr�do_item�s*






zTexinfoParser.do_itemcCsd|_|�d�dS)Nz<TABLE BORDER="">
)rMr)rrrrrr�bgn_multitable�szTexinfoParser.bgn_multitablecCsd|_|�d�dS)Nz</TABLE>
<BR>
)rMr)rrrr�end_multitable�szTexinfoParser.end_multitablecCs
d|_dS)N)rM)rrrr�handle_columnfractions�sz$TexinfoParser.handle_columnfractionscCs|�d�dS)Nz</TD>
    <TD>)r)rrrr�
handle_tab�szTexinfoParser.handle_tabcCs|�d�dS)Nz<BLOCKQUOTE>)r)rrrrrr�
bgn_quotation�r�zTexinfoParser.bgn_quotationcCs|�d�dS)Nz</BLOCKQUOTE>
)r)rrrr�
end_quotation�r�zTexinfoParser.end_quotationcCs|jd|_|�d�dS)Nr;z<PRE>)rIr)rrrrrr�bgn_example�szTexinfoParser.bgn_examplecCs|�d�|jd|_dS)Nz</PRE>
r;)rrI)rrrr�end_example�s
zTexinfoParser.end_examplecCs|�|d�dS)Nr`)r�)rrrrrr�	do_exdent�r�zTexinfoParser.do_exdentcCs|jd|_|�d�dS)Nr;z<PRE>
)rIr)rrrrrr�
bgn_flushleft�szTexinfoParser.bgn_flushleftcCs|�d�|jd|_dS)Nz</PRE>
r;)rrI)rrrr�
end_flushleft�s
zTexinfoParser.end_flushleftcCs|jd|_|�d�dS)Nr;z<ADDRESS COMPACT>
)rIr)rrrrrr�bgn_flushright�szTexinfoParser.bgn_flushrightcCs|�d�|jd|_dS)Nz</ADDRESS>
r;)rrI)rrrr�end_flushright�s
zTexinfoParser.end_flushrightcCs"|�d�|�d�|j��dS)Nz<DIR>
z$  <STRONG><EM>Menu</EM></STRONG><P>
)rrD�	beginmenu)rrrrrr�bgn_menu�s

zTexinfoParser.bgn_menucCs|�d�|j��dS)Nz</DIR>
)rrD�endmenu)rrrr�end_menu�s
zTexinfoParser.end_menucCsdS)Nr)rrrrrr�
bgn_cartouche�r�zTexinfoParser.bgn_cartouchecCsdS)Nr)rrrr�
end_cartouche�r�zTexinfoParser.end_cartouchecCsndg|_i|_d|jd<d|jd<d|jd<d|jd<d	|jd
<d|jd<i|_x|jD]}g|j|<qXWdS)
N�cpZConceptZFunctionrsZKeyword�kyZProgram�pgZTyper�ZVariabler�)�noncodeindices�
indextitle�
whichindex)rrrrrrF�s





zTexinfoParser.resetindexcCs*||jkr|�||�ntdt|��dS)Nz*** No index named)r�rvrfr�)rrrrrrr�
user_indexs
zTexinfoParser.user_indexcCs|�d|�dS)Nr�)rv)rrrrrr�	do_cindexr�zTexinfoParser.do_cindexcCs|�d|�dS)Nrs)rv)rrrrrr�	do_findexr�zTexinfoParser.do_findexcCs|�d|�dS)Nr�)rv)rrrrrr�	do_kindexr�zTexinfoParser.do_kindexcCs|�d|�dS)Nr�)rv)rrrrrr�	do_pindexr�zTexinfoParser.do_pindexcCs|�d|�dS)Nr�)rv)rrrrrr�	do_tindexr�zTexinfoParser.do_tindexcCs|�d|�dS)Nr�)rv)rrrrrr�	do_vindexr�zTexinfoParser.do_vindexcCs*|j|�||jf�|j�||j�dS)N)r�rr"rDrv)rrrrrrrrvszTexinfoParser.indexcCs�|��}t|�dkr"td|�dS|\}}||jks>||jkrLtd|�dS||kr�|j||j|k	r�|j|}|j||t|�d�<||j|<dS)Nr|z*** bad @synindexz*** bad key(s) in @synindex)r�r'rfr�)rrrr-�old�newZinewrrr�do_synindexs




zTexinfoParser.do_synindexcCs>|��}x0|D](}||jkr(|�|�qtdt|��qWdS)Nz*** No index named)r�r��prindexrfr�)rrrr-rrrr�
do_printindex-s


zTexinfoParser.do_printindexcCsj||jk}|j|}|sdS|jr<td|jd|j|d�g}t�d�}xV|D]N\}}|��}|}	x(|�|�}
|
svP|
�	�}||d�}qfW|�
|||f�qPW|dd�=|��|�d�d}}
x�|D]�\}}}||f||
fkr�q�|jdk�rtd|j|d|�|�d�|�r$d	|d
}||k�r8|�
|�|�dt|�|f�||}}
q�W|�d�dS)
Nrxz--- Generatingrvz^(@[a-z]+)?{z
<DL COMPACT>
r;r~z<DT>z@code{r�z
<DD><A HREF="%s">%s</A>
z</DL>
)r�r�r>rfr��re�compiler rYrzr�sortrr�r)rrZiscodeindexrvZindex1Zjunkprogr8rPZsortkeyZ
oldsortkeyrkr�ZprevkeyZprevnoderrrr�5sH








zTexinfoParser.prindexcCsD|jr@td�t|j���}x"|D]}t|�d�|j|�q"WdS)Nz--- Unrecognized commands ---r&)r<rf�sorted�keys�ljust)rZcmdsrnrrr�report]s

zTexinfoParser.reportN(Br3r4r5r��
FN_ID_PATTERNrrrrrIrrSrTrUr^r\rorprrwrerr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Z	open_asisZ
close_asisr�r�rrrrrrrrrr	rr
rtrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'Zopen_titlefontZclose_titlefontr(r)rir*r.r,r/Zdo_cr0r1r2r3r4r5r6r7r:r;r<r=r>r?r@rAZdo_finaloutZdo_setchapternewpageZdo_setfilenamerBrCrDrErFrGrHZdo_titleZdo_subtitleZ	do_authorZdo_vskipZdo_vfillZdo_smallbookZdo_paragraphindentZdo_headingsZdo_footnotestyleZdo_evenheadingZdo_evenfootingZ
do_oddheadingZ
do_oddfootingZdo_everyheadingZdo_everyfootingrLr%rMrPrQrRrSrTrUrVrWrXZdo_appendixsectionrYr[r\r]r^r`rarbrcrOrgrhZdo_summarycontentsrfrjrkrlrmrnrorqrrrprzZ	end_defunr{r|Z
end_defmacr}r~Zend_defspecrr�Z	end_defvrr�r�Z
end_defvarr�r�Z
end_defoptr�r�Z
end_deftypefnr�r�Zend_deftypefunr�r�Z
end_deftypevrr�r�Zend_deftypevarr�r�Z	end_defcvr�r�Zend_defivarr�r�Z	end_defopr�r�Z
end_defmethodr�r�Z	end_deftpr�r�r�r�r�r�r�r�r�r�r�r�Zdo_itemxr�r�r�r�r�r�r�r�Zbgn_lispZend_lispZbgn_smallexampleZend_smallexampleZ
bgn_smalllispZ
end_smalllispZbgn_displayZend_displayZ
bgn_formatZ
end_formatr�r�r�r�r�r�r�r�r�rFr�r�r�r�r�r�r�rvr�Zdo_syncodeindexr�r�r�rrrrr9�s~!8
 #T		&&
		

(r9c@s|eZdZdZdZdedZdedZdZeZ	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�ZdS)�TexinfoParserHTML3z&copy;z[%(id)s]z3<A ID=footnoteref%(id)s HREF="#footnotetext%(id)s">z</A>z;<FN ID=footnotetext%(id)s>
<P><A HREF="#footnoteref%(id)s">z</A>
%(text)s</P></FN>
z[<DIV CLASS=footnotes>
  <HR NOSHADE WIDTH=200>
  <STRONG><EM>Footnotes</EM></STRONG>
  <P>
cCs|�d�dS)Nz<BQ>)r)rrrrrrr�sr�z TexinfoParserHTML3.bgn_quotationcCs|�d�dS)Nz</BQ>
)r)rrrrr�tr�z TexinfoParserHTML3.end_quotationcCs|jd|_|�d�dS)Nr;z<PRE CLASS=example><CODE>)rIr)rrrrrrr�vszTexinfoParserHTML3.bgn_examplecCs|�d�|jd|_dS)Nz</CODE></PRE>
r;)rrI)rrrrr�{s
zTexinfoParserHTML3.end_examplecCs|jd|_|�d�dS)Nr;z<PRE CLASS=flushleft>
)rIr)rrrrrrr�sz TexinfoParserHTML3.bgn_flushleftcCs|jd|_|�d�dS)Nr;z4<DIV ALIGN=right CLASS=flushright><ADDRESS COMPACT>
)rIr)rrrrrrr��sz!TexinfoParserHTML3.bgn_flushrightcCs|�d�|jd|_dS)Nz</ADDRESS></DIV>
r;)rrI)rrrrr��s
z!TexinfoParserHTML3.end_flushrightcCs|�d�|�d�dS)Nz<UL PLAIN CLASS=menu>
z  <LH>Menu</LH>
)r)rrrrrrr��s
zTexinfoParserHTML3.bgn_menucCs|�d�dS)Nz</UL>
)r)rrrrr��szTexinfoParserHTML3.end_menuN)r3r4r5r�r�rrrr8rIr�r�r�r�r�r�r�r�r�rrrrr�esr�c@s�eZdZdZe�d�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zejfdd�Zejfdd�Zdejfdd�Zdejfdd�Zdd�Zejfdd�Zd d!�Zd"S)#�HTMLHelpa�
    This class encapsulates support for HTML Help. Node names,
    file names, menu items, index items, and image file names are
    accumulated until a call to finalize(). At that time, three
    output files are created in the current directory:

        `helpbase`.hhp  is a HTML Help Workshop project file.
                        It contains various information, some of
                        which I do not understand; I just copied
                        the default project info from a fresh
                        installation.
        `helpbase`.hhc  is the Contents file for the project.
        `helpbase`.hhk  is the Index file for the project.

    When these files are used as input to HTML Help Workshop,
    the resulting file will be named:

        `helpbase`.chm

    If none of the defaults in `helpbase`.hhp are changed,
    the .CHM file will have Contents, Index, Search, and
    Favorites tabs.
    z@code{(.*?)}cCsR||_||_d|_d|_d|_g|_i|_i|_i|_g|_	d|_
i|_i|_dS)Nr)
�helpbaser�projectfile�contentfile�	indexfile�nodelistZ	nodenames�	nodeindexr=�	indexlist�current�menudict�dumped)rr�rrrrr�szHTMLHelp.__init__cCsJ|||||f}||j|<t|j�|j|<|j�|�||_g|j|j<dS)N)r=r'r�r�rr�r�)rrrr	r
r�rPrrrrJ�s
zHTMLHelp.addnodecCs|j|j}|�|�dS)N)r�r�r)rr"r�rrrr��szHTMLHelp.menuitemcCs||j|<dS)N)r=)rZ	imagenamerrrr��szHTMLHelp.addimagecCs|j�||f�dS)N)r�r)rrrr"rrrrv�szHTMLHelp.indexcCsdS)Nr)rrrrr��szHTMLHelp.beginmenucCsdS)Nr)rrrrr��szHTMLHelp.endmenuc
Cs�|js
dS|jd}|jd}|jd}|jd}|j}|jd\}}}}	}
|
}�yHt|d�}td|d�td	|d�td
|d�td|d�td|d�td
|d|d�td|d|d�td|d|d�td|d�td|d|d�td|d|d�td|d�td|d�td|d�td|d�td|d�td|d|d|d�td|d�td|d�td|d�|�|�|��Wn:tk
�r�}
zt|d|
�t�d�Wdd}
~
XYnXy�t|d�}td|d�td|d�td |d�td!|d�td"|d�td#|d�td$|d�td%|d�td&|d�td'|d�td(|d�td)|d�td*|d�|�	|�td+|d�td,|d�|��Wn:tk
�r�}
zt|d|
�t�d�Wdd}
~
XYnXy�t|d�}td|d�td-|d�td |d�td!|d�td"|d�td#|d�td$|d�td%|d�td.|d�td/|d�|�
|�td+|d�td,|d�|��Wn:tk
�r�}
zt|d|
�t�d�Wdd}
~
XYnXdS)0Nz.chmz.hhpz.hhcz.hhkrrz	[OPTIONS])r�zAuto Index=Yesz
Binary TOC=NozBinary Index=YeszCompatibility=1.1zCompiled file=rzContents file=zDefault topic=zError log file=ErrorLog.logzIndex file=zTitle=zDisplay compile progress=YeszFull-text search=YeszDefault window=mainz	[WINDOWS]zmain=,"z","z=","","",,,,,0x23520,222,0x1046,[10,10,780,560],0xB0000,,,,,,0z[FILES]r~r;z.<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">z0<!-- This file defines the table of contents -->z<HTML>z<HEAD>zG<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">z<!-- Sitemap 1.0 -->z</HEAD>z<BODY>z'   <OBJECT type="text/site properties">z2     <param name="Window Styles" value="0x800025">z*     <param name="comment" value="title:">z)     <param name="comment" value="base:">z   </OBJECT>z</BODY>z</HTML>z$<!-- This file defines the index -->z$<OBJECT type="text/site properties">z	</OBJECT>)r�r�rrf�	dumpfilesrr��sys�exit�	dumpnodes�	dumpindex)rZ
resultfiler�r�r�rrZtopnextZtopprevZtopupZtopfileZdefaulttopicrr�rrrr/�s�









zHTMLHelp.finalizecCs,t|j���}x|D]}t||d�qWdS)N)r�)r�r=rJrf)r�outfileZfilelistr�rrrr�9s
zHTMLHelp.dumpfilescCs`i|_|jr&|jd\}}}}}||_td|d�x|jD]}|�|d|�q:Wtd|d�dS)Nrz<UL>)r�z</UL>)r�r��topnoderf�dumpnode)rr�r"rvrPrrrr�>szHTMLHelp.dumpnodesrc
Cs�|r�|\}}}}}||_||jkr&dSd|j|<td|d|d�tdd|d�td|dd|d�td|dd|d�td|d	�y |j|}	|�|	|d
|�Wntk
r�YnXdS)Nr;ry)rzr�z <LI><OBJECT type="text/sitemap">z<param name="Name" value="z">z<param name="Local" value="z	</OBJECT>)r�r|)r�r�rfr��dumpmenur�)
rrP�indentr�r"rr	r
r�r�rrrr�Is 


zHTMLHelp.dumpnodecCs�|r||j}||jkr0td|d|d�|d7}x$|D]}|�|�}|�|||�q6W||jkr|td|d|d�|d8}dS)Nryz<UL>)r�r|z</UL>)r�r�rf�getnoder�)rr�r�r�Zcurrentnode�itemZmenunoderrrr�bs



zHTMLHelp.dumpmenucCs@y|j|}|j|Stk
r(dStk
r:dSXdS)N)r�r�r��
IndexError)rr"rvrrrr�os

zHTMLHelp.getnodecCs�td|d�xx|jD]n\}}|�|�}t|�}|jd|}tdd|d�td|dd|d�td	|dd|d�td
|d�qWtd|d�dS)Nz<UL>)r�rz <LI><OBJECT type="text/sitemap">ry)rzr�z<param name="Name" value="z">z<param name="Local" value="z	</OBJECT>z</UL>)rfr��
codeexpandrr)rr�r8�locationrrrr�ys
zHTMLHelp.dumpindexcCsX|j�|�}|s|S|�d�\}}|�d�\}}|d|�|||�||d�}|S)Nrr;)�codeprogrYrh)rr�cor�rzrlrmrrrr��s$zHTMLHelp.codeexpandN)r3r4r5r6r�r�r�rrJr�r�rvr�r�r/r��stdoutr�r�r�r�r�r�r�rrrrr��s"
_

r�cCsd|dS)Nz@var{r�r)�strrrrru�srucCs�g}d}t|�}xZ||krjx ||kr:||dkr:|d}qW||krFP|}t|||�}|�|||��qWxt|�|kr�|�d�qnW|S)Nrz 	
r;r)r'�findwordendr)r�Z	minlengthr-r�r�r�rrrrt�s
rtz[@{} ]cCs�d}x�||kr�t�||�}|s P|��}||}|d}|dkrJ|d}q|dkr\|d}q|dkrn|d}q|dkr|dkr|dSqW|S)Nrr;r�r�r�ry)�fwprogr�r�)r�r�r�rdrkr�rrrr��s"



r�cCs|��}t|�dS)Nz.html)r��
fixfunnychars)r"rrrr�srz!@-=+.cCsZd}xP|t|�krT||}|tkrFd}|d|�|||dd�}|t|�}qW|S)Nrr�r;)r'�	goodchars)r$r�r�rrrr��s r�cCs�|sdSx�tjtjtjfD]�}|d}||kr|�|�d}|t|�kr�t|�dkrn|dd}|dkr�d}q�t|dd��|d}n|dd�||}|SqW|S)N�1rar;rr|Z00Z10)r��digitsZascii_lowercaseZascii_uppercaservr'r�)r�ZsequenceZlastcr�rrrr��sr�c
Cs�ddl}d}d}d}d}d}x$|jddgkr@|d}|jd=qW|jddkr\d}|jd=|jddkrvd}|jd=|jddkr�d}|jd=|jddkr�|jd	}|jdd
�=t|j�d
kr�tdd�|�d	�|r�t�}nt�}||_||_||_	|jd}|jd	}	|�
|	�|�tj
�|��t||	�}|�|�yt|d
�}
Wn:tk
�r�}zt|d|�|�d�Wdd}~XYnX|�|
�|
��|��|��dS)Nrrr;z-dz-pz-cz-3z-Hr|r}z5usage: texi2hh [-d [-d]] [-p] [-c] [-3] [-H htmlhelp]zinputfile outputdirectoryr�r~)r��argvr'rfr�r�r9r2r>r?rTrUr�r�rr�rSrr�r^rr�r/)r�r>r?r2Zhtml3rDr��parserr�rrr�rrr�test�s\







r��__main__)r�r�r�r�rZr�rgrXZkwprogr�r�rr8r9r�r�rurtr�r�rr�r�r�r�r�r�r3rrrr�<module>BsL




	[0-
9