Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/Tools/scripts/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/Tools/scripts/__pycache__/texi2html.cpython-34.pyc

�
e f$�@swddlZddlZddlZddlZdZejd�Zejd�Zejd�Zejd�Z	ejd�Z
Gdd	�d	�ZGd
d�de�ZGdd
�d
�Z
Gdd�de
�ZGdd�d�Zdd�Zdd�Zejd�Zdd�Zdd�ZejejdZdd�Zdd�Zd d!�Zed"krse�ndS)#�Nz\input texinfoz^@([a-z]+)([ 	]|$)z^[ 	]*$z@[a-z]+z	[
@{}&<>]z.^\* ([^:]*):(:|[ 	]*([^	,
.]+)([^ 	
]*))[ 	
]*c@s�eZdZdZdZdZdZdZdd�Zdd	�Z	d
d�Z
ddd
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/python34/lib64/python3.4/Tools/scripts/texi2html.py�__init__gs							zHTMLNode.__init__cGs%x|D]}|jj|�qWdS)N)r�append)rr�linerrr�writets
zHTMLNode.writecCsat|jdt|j�d�}|j|j�|j|j�|j|j�|j�dS)N�/�w)	�openr�makefilerr�prologue�text�epilogue�close)r�fprrr�flushxs
#zHTMLNode.flushNcCs�|r�|j�dkr'd}d}nt|�}d|}|j|d|d|r_d|pbd|rrd|pud|d	|d
�
ndS)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�}dj|j�|_g|_|j�|j�|j�dj|j�}g|_|jd|jdt	|j
�d|j
dt	|j�d|jdt	|j�d|jd||_
|dkr�d	||_ndS)
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Zlength�linksrrr�finalize�s	


	i
zHTMLNode.finalizecCs|jd�dS)Nz<HR>
)r)rrrrr)�szHTMLNode.open_linkscCs|jd�dS)Nz<HR>
)r)rrrrr+�szHTMLNode.close_linkscCs�|j|jkr(|jd|j�n|jd|jdd�|jd|jdd�|jd|jdd�|j|jkr�|jd	|j�ndS)
Nz  Contz  Nextr#�Nextz  PrevZPreviousz  Up�Upz  Top)�contrr%r	r
rr)rrrrr*�szHTMLNode.output_links)�__name__�
__module__�__qualname__�__doc__r,�typer1rrrrr%r.r)r+r*rrrrrZs

rc@s.eZdZdZdd�Zdd�ZdS)�	HTML3Nodez;<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 3//EN//3.0">cCs|jd�dS)Nz<DIV CLASS=Navigation>
 <HR>
)r)rrrrr)�szHTML3Node.open_linkscCs|jd�dS)Nz
 <HR>
</DIV>
)r)rrrrr+�szHTML3Node.close_linksN)r2r3r4r,r)r+rrrrr7�sr7c@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�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��Zd�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�dd�Z�e^Z�e_Z�dd�Z�dd�Z�dd�Z�dd	�Z�d
d�Z�dd
�Z�dd�Z�e�Z�dd�Z�dd�Z�dd�Z�dd�Z�dd�Z�dd�Z�dd�Z�dd�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�d0d1�Z�d2d3�Z�d4d5�Z�d6d7�Z�d8d9�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�dBdC�Z�dDdE�Z�dFdG�Z�dHdI�Z�dJdK�Z�dLdM�Z�dNdO�Z�dPdQ�Z�dRdS�Z�dTdU�Z�e�Z�dVdW�Z�dXdY�Z�dZd[�Z�d\d]�Z�d^d_�Z�d`da�Z�dbdc�Z�ddde�Z�dfdg�Z�dhdi�Z�djdk�Z�dldm�Z�e�Z�dndo�Z�dpdq�Z�drds�Z�dtdu�Z�dvdw�Z�dxdy�Z�dzd{�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��Zd�d��Ze�Zd�d��Zd�d��Ze�Zd�d��Zd�d��ZeZd�d��Z	d�d��Z
e�Zd�d��Zd�d��Z
d�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��ZeZd�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��Z eZ!e Z"eZ#e Z$e!Z%e"Z&eZ'e Z(e'Z)e(Z*d�d��Z+d�d��Z,d�d��Z-d�d��Z.d�d��Z/d�d��Z0d�d��Z1d�d��Z2d�d��Z3d�d��Z4d�d��Z5d�d��Z6d�d��Z7d�d��Z8dd�Z9dd�Z:dd�Z;dd�Z<dd	�Z=e=Z>d
d�Z?dd
�Z@dd�ZAdS(�
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>cCsi|_i|_d|_d|_d|_d|_d|_d|_g|_d|_	d|_
d|_d|_d|_
d|_|j�g|_g|_d|_idd6|_i|_g|_d|_d|_d|_d|_g|_d|_d|_dS)NrZtmp�.r�Zhtml)�unknown�	filenames�	debugging�
print_headers�nodefp�
nodelinenor-�savetext�	savestack�htmlhelpr�
includedirr"rr�
resetindex�contents�	numbering�nofill�values�	stackinfo�	footnotes�itemarg�
itemnumber�	itemindex�node�	nodestackr1�includedepth)rrrrr�s:															
											zTexinfoParser.__init__cCs
||_dS)N)rC)rrCrrr�sethtmlhelp�szTexinfoParser.sethtmlhelpcCs
||_dS)N)r)rrrrr�
setdirname�szTexinfoParser.setdirnamecCs
||_dS)N)rD)rrDrrr�
setincludedir�szTexinfoParser.setincludedircCs�|j�}d}x?|rS|ddks:tj|�rS|j�}|d}qW|dtt��tkr�tdtf��n|j||�dS)Nr:r�%zfile does not begin with %r)�readline�blprog�matchr'�MAGIC�SyntaxError�	parserest)rrr�linenorrr�parse�s(zTexinfoParser.parsec
CsR|}d|_d|_g|_g}x�|js�|j�}|jd|_|s�|r}|jst|j|�ng}n|dkr�td�nPn|d}tj|�}|r5|j	d�\}}|||�}	|	d
kr�|j
|�q�|r"|js|j|�ng}n|j||�q*tj|�r�d|jkr�d|jkr�|r�|js�|j|�|j
r�|jd�n
|jd	�g}q�q�q*|j
|�q*W|jr�td
�n|jrtd�td|j�n|jdkrNx<|jrJ|jdj�|jdj�|jd=qWndS)Nrr:z*** EOF before @bye�noindent�refill�formatZexample�
z<P>
z*** Still skipping at the endz*** Stack not empty at the endz***)r^r_���rbrb)�done�skip�stackrVr@�process�print�cmprogrX�spanr�commandrWrHrrQrPr.r)
rrZinitial_linenor\�accur�mo�a�b�cmdrrrr[	sb					

			
	
	
	
zTexinfoParser.parserestcCs2|jdk	r%|jj|j�nd|_dS)Nr)rArBr)rrrr�startsavingAszTexinfoParser.startsavingcCsN|j}t|j�dkr;|jd|_|jd=n	d|_|pMdS)Nrr:rrbrb)rAr'rB)rrArrr�collectsavingsHs	
	zTexinfoParser.collectsavingsc	Gs�ydj|�}Wnt|�t�YnX|jdk	rP|j||_n8|jrl|jj|�n|jr�|jj|�ndS)Nr)r(rg�	TypeErrorrAr?rrO)r�argsrrrrrRs
		zTexinfoParser.writecCs�|jdk	r(td�|j�}n|jr>|j�n|jr|jdkr�|jd�|jdd�\}}}}|j	d|�|j	d|�|j	d|�|j
|jkr�|j	d|j�n|jd�n|jd	�|jj�d|_n�|j
r�|jrq|j
jsT|j
jrq|j
jrq|j
jrq|j
j�|j
j�n|jj|j
�d|_
nd
|_
dS)Nz$*** Still saving text at end of noder&z<HR>
�r/ZPrevr0ZTopz</BODY>
r)rArgrqrK�writefootnotesr?r@r�	nodelinksr%r"rrrOr1r6rr	r
r.rrPr)r�dummyrrr	r
rrr�endnode`s6
	
	


	

$
zTexinfoParser.endnodec	Cs#|jdkr�td|jd|j|jdd�|r\t|ddd�dd�n|ddd�s�|dd�r�tddd�nt�n|j�rxs|D]L}tj|�}|s�|j�d	}|j|�q�n|j	d�\}}|j	d�\}}|j	d
�\}}	|j	d�\}
}|j	d�\}}
|||�}|||	�}|dd
kr�|}n||
|�}|||
�}|j
dt|�d|d|d	�|jj
|�|j||d��q�Wndj|�}|j|�dS)Nr:�!zprocess:�end� r�z...ra��rt�:z  <LI><A HREF="z">z</A>r)r=rgrdre�inmenu�miprogrX�strip�expandrirrrC�menuitemr()rrkrrl�bgnrzrmrn�c�d�e�f�g�hr!r"�punctrrrrrf�sB&!$


			
zTexinfoParser.processcCsz|j}xZ|re|ddkrey|jt|�r<dSWntk
rQYnX|dd�}qW|oy|d	dkS)
Nr:�ifset�ifclearr�menurb)r�r�rbrb)rerJr'�KeyError)rrerrrr��s	
zTexinfoParser.inmenuc
CsEg}d}t|�}x||kr*|}tj||�}|rT|j�}n|j||d��P|j|||��||}|d}|dkr�|jd�qn|dkr�|jd�qn|dkr�|jd�qn|dkr|jd	�qn|d
kr2|jd�qn|dkr�|satd
�|jd�qn|d}|d=yt|d|�}	Wn"tk
r�|j	|�wYnX|	�qn|dkr�t
d|��n|}x-||kr||tjkr|d}q�W||krX|d}|||�}|dkrEq|j|�qn|||�}||kr�||d
kr�|d}|j|�yt|d|�}	Wn"tk
r�|j
|�wYnX|	�qnyt|d|�}	Wn"tk
r|j|�wYnX|	�qW|rAtd|�ndS)Nrr:ra�<z&lt;rz&gt;�&z&amp;�{r�}z*** Unmatched }�close_�@zunexpected funny %rr�open_Zhandle_z*** Stack not empty at para:rbrb)r'�spprog�search�startrrrg�getattr�AttributeError�
unknown_close�RuntimeError�string�
ascii_letters�unknown_open�unknown_handle)
rrre�i�nr�rlr�ro�methodrrrr��s�











"







zTexinfoParser.expandcCsgtd|d�|d}|jd|�||jkrKd|j|<n|j|d|j|<dS)Nz*** No open func for @z{...}r�r�r:)rgrr;)rrorrrr�s
zTexinfoParser.unknown_opencCsdtd|d�d|}|jd�||jkrHd|j|<n|j|d|j|<dS)Nz*** No close func for @z{...}r�r:)rgrr;)rrorrrr�s

zTexinfoParser.unknown_closecCsYtd|�|jd|�||jkr=d|j|<n|j|d|j|<dS)Nz*** No handler for @r�r:)rgrr;)rrorrrr�s
zTexinfoParser.unknown_handlecCsdS)Nr)rrrr�handle_noindent#szTexinfoParser.handle_noindentcCsdS)Nr)rrrr�
handle_refill%szTexinfoParser.handle_refillcCs|}tjj|j|�}yt|d�}Wn<tk
ro}ztdt|��dSWYdd}~XnXtd|jdt|��|j	}|j
}|j}|jd|_|j
|d�|jd|_|j�||_	||_
||_td|jdt|��dS)N�rz*** Can't open include fileryz--> filer:rz<-- file)�os�pathr(rDr�IOErrorrg�reprr=rcrdrerQr[r)rrs�filer�msgZ	save_doneZ	save_skipZ
save_stackrrr�
do_include)s&			
			zTexinfoParser.do_includecCsdS)Nr)rrrr�open_dmn@szTexinfoParser.open_dmncCsdS)Nr)rrrr�	close_dmnAszTexinfoParser.close_dmncCs|jd�dS)Nz...)r)rrrr�	open_dotsCszTexinfoParser.open_dotscCsdS)Nr)rrrr�
close_dotsDszTexinfoParser.close_dotscCsdS)Nr)rrrr�open_bulletFszTexinfoParser.open_bulletcCsdS)Nr)rrrr�close_bulletGszTexinfoParser.close_bulletcCs|jd�dS)NZTeX)r)rrrr�open_TeXIszTexinfoParser.open_TeXcCsdS)Nr)rrrr�	close_TeXJszTexinfoParser.close_TeXcCs|j|j�dS)N)r�COPYRIGHT_SYMBOL)rrrr�handle_copyrightLszTexinfoParser.handle_copyrightcCs|j|j�dS)N)rr�)rrrr�open_copyrightMszTexinfoParser.open_copyrightcCsdS)Nr)rrrr�close_copyrightNszTexinfoParser.close_copyrightcCs|jd�dS)N�-)r)rrrr�
open_minusPszTexinfoParser.open_minuscCsdS)Nr)rrrr�close_minusQszTexinfoParser.close_minuscCs|jd�dS)Nz&#161;)r)rrrr�open_exclamdownwszTexinfoParser.open_exclamdowncCsdS)Nr)rrrr�close_exclamdownxszTexinfoParser.close_exclamdowncCs|jd�dS)Nz&#191;)r)rrrr�open_questiondownyszTexinfoParser.open_questiondowncCsdS)Nr)rrrr�close_questiondownzsz TexinfoParser.close_questiondowncCs|jd�dS)Nz&#229;)r)rrrr�open_aa{szTexinfoParser.open_aacCsdS)Nr)rrrr�close_aa|szTexinfoParser.close_aacCs|jd�dS)Nz&#197;)r)rrrr�open_AA}szTexinfoParser.open_AAcCsdS)Nr)rrrr�close_AA~szTexinfoParser.close_AAcCs|jd�dS)Nz&#230;)r)rrrr�open_aeszTexinfoParser.open_aecCsdS)Nr)rrrr�close_ae�szTexinfoParser.close_aecCs|jd�dS)Nz&#198;)r)rrrr�open_AE�szTexinfoParser.open_AEcCsdS)Nr)rrrr�close_AE�szTexinfoParser.close_AEcCs|jd�dS)Nz&#248;)r)rrrr�open_o�szTexinfoParser.open_ocCsdS)Nr)rrrr�close_o�szTexinfoParser.close_ocCs|jd�dS)Nz&#216;)r)rrrr�open_O�szTexinfoParser.open_OcCsdS)Nr)rrrr�close_O�szTexinfoParser.close_OcCs|jd�dS)Nz&#223;)r)rrrr�open_ss�szTexinfoParser.open_sscCsdS)Nr)rrrr�close_ss�szTexinfoParser.close_sscCs|jd�dS)NZoe)r)rrrr�open_oe�szTexinfoParser.open_oecCsdS)Nr)rrrr�close_oe�szTexinfoParser.close_oecCs|jd�dS)NZOE)r)rrrr�open_OE�szTexinfoParser.open_OEcCsdS)Nr)rrrr�close_OE�szTexinfoParser.close_OEcCs|jd�dS)Nzl/)r)rrrr�open_l�szTexinfoParser.open_lcCsdS)Nr)rrrr�close_l�szTexinfoParser.close_lcCs|jd�dS)NzL/)r)rrrr�open_L�szTexinfoParser.open_LcCsdS)Nr)rrrr�close_L�szTexinfoParser.close_LcCs|jd�dS)Nz=&gt;)r)rrrr�open_result�szTexinfoParser.open_resultcCsdS)Nr)rrrr�close_result�szTexinfoParser.close_resultcCs|jd�dS)Nz==&gt;)r)rrrr�open_expansion�szTexinfoParser.open_expansioncCsdS)Nr)rrrr�close_expansion�szTexinfoParser.close_expansioncCs|jd�dS)Nz-|)r)rrrr�
open_print�szTexinfoParser.open_printcCsdS)Nr)rrrr�close_print�szTexinfoParser.close_printcCs|jd�dS)Nzerror--&gt;)r)rrrr�
open_error�szTexinfoParser.open_errorcCsdS)Nr)rrrr�close_error�szTexinfoParser.close_errorcCs|jd�dS)Nz==)r)rrrr�
open_equiv�szTexinfoParser.open_equivcCsdS)Nr)rrrr�close_equiv�szTexinfoParser.close_equivcCs|jd�dS)Nz-!-)r)rrrr�
open_point�szTexinfoParser.open_pointcCsdS)Nr)rrrr�close_point�szTexinfoParser.close_pointcCs|jd�|j�dS)Nzsee )rrp)rrrr�
open_pxref�s
zTexinfoParser.open_pxrefcCs|j�dS)N)�makeref)rrrr�close_pxref�szTexinfoParser.close_pxrefcCs|jd�|j�dS)NzSee )rrp)rrrr�	open_xref�s
zTexinfoParser.open_xrefcCs|j�dS)N)r�)rrrr�
close_xref�szTexinfoParser.close_xrefcCs|j�dS)N)rp)rrrr�open_ref�szTexinfoParser.open_refcCs|j�dS)N)r�)rrrr�	close_ref�szTexinfoParser.close_refcCs|jd�|j�dS)NzSee info file )rrp)rrrr�open_inforef�s
zTexinfoParser.open_inforefcCs|j�}dd�|jd�D�}x#t|�dkrM|jd�q+W|d}|d}|jd|d	|d
�dS)NcSsg|]}|j��qSr)r�)�.0�srrr�
<listcomp>�s	z/TexinfoParser.close_inforef.<locals>.<listcomp>�,r~rrr}�`z	', node `�')rq�splitr'rr)rrrsrOr�rrr�
close_inforef�s

zTexinfoParser.close_inforefcCs�|j�}dd�|jd�D�}x#t|�dkrM|jd�q+W|d}}|drs|d}n|d}|d	}t|�}|r�d
|d|}n|jd|d
|d�dS)NcSsg|]}|j��qSr)r�)r�r�rrrr��s	z)TexinfoParser.makeref.<locals>.<listcomp>r��rrr}r~rtz../rz	<A HREF="z">z</A>)rqr�r'rrr)rrrsr"r!r�r�hrefrrrr��s



zTexinfoParser.makerefcCs|j�dS)N)rp)rrrr�	open_uref�szTexinfoParser.open_urefcCs�|j�}dd�|jd�D�}x#t|�dkrM|jd�q+W|d}|d}|sq|}n|jd|d	|d
�dS)NcSsg|]}|j��qSr)r�)r�r�rrrr��s	z,TexinfoParser.close_uref.<locals>.<listcomp>r�r}rrr:z	<A HREF="z">z</A>)rqr�r'rr)rrrsr�r!rrr�
close_uref�s

	zTexinfoParser.close_urefcCs|j�dS)N)rp)rrrr�
open_image�szTexinfoParser.open_imagecCs|j�dS)N)�	makeimage)rrrr�close_image�szTexinfoParser.close_imagec	Csw|j�}dd�|jd�D�}x#t|�dkrM|jd�q+W|d}|d}|d}|d	}|d
}|jd|}tjj|d�r�|d7}nTtjj|d
�r�|d
7}n1tjj|d�r�|d7}ntd|�|j	d|d|r+d|dp.d|rBd|dpEd|rYd|dp\dd�|j
j|�dS)NcSsg|]}|j��qSr)r�)r�r�rrrr��s	z+TexinfoParser.makeimage.<locals>.<listcomp>r�r�rrr:r}r~rtrz.pngz.jpgz.gifz*** Cannot find image z
<IMG SRC="rz WIDTH="z	 HEIGHT="z ALT="z/>)rqr�r'rrr�r��existsrgrrC�addimage)	rrrs�filename�widthZheightZaltZextZ
imagelocationrrrr��s.







zTexinfoParser.makeimagecCsdS)Nr)rrrrr�szTexinfoParser.open_cCsdS)Nr)rrrrr�szTexinfoParser.close_cCs|jd�dS)Nz<CITE>)r)rrrr�	open_citeszTexinfoParser.open_citecCs|jd�dS)Nz</CITE>)r)rrrr�
close_citeszTexinfoParser.close_citecCs|jd�dS)Nz<CODE>)r)rrrr�	open_codeszTexinfoParser.open_codecCs|jd�dS)Nz</CODE>)r)rrrr�
close_codeszTexinfoParser.close_codecCs|jd�dS)Nz<TT>)r)rrrr�open_tszTexinfoParser.open_tcCs|jd�dS)Nz</TT>)r)rrrr�close_tszTexinfoParser.close_tcCs|jd�dS)Nz<DFN>)r)rrrr�open_dfnszTexinfoParser.open_dfncCs|jd�dS)Nz</DFN>)r)rrrr�	close_dfnszTexinfoParser.close_dfncCs|jd�dS)Nz<EM>)r)rrrr�	open_emph szTexinfoParser.open_emphcCs|jd�dS)Nz</EM>)r)rrrr�
close_emph!szTexinfoParser.close_emphcCs|jd�dS)Nz<I>)r)rrrr�open_i#szTexinfoParser.open_icCs|jd�dS)Nz</I>)r)rrrr�close_i$szTexinfoParser.close_icCsBt|j�d}|j|jit|�d6�|j�dS)Nr:�id)r'rKr�FN_SOURCE_PATTERNr�rp)rrrrr�
open_footnote&s!zTexinfoParser.open_footnotecCs3t|j�d}|jj||j�f�dS)Nr:)r'rKrrq)rrrrr�close_footnote-szTexinfoParser.close_footnotecCs_|j|j�x?|jD]4\}}|j|jit|�d6|d6�qWg|_dS)Nrr)r�	FN_HEADERrK�FN_TARGET_PATTERNr�)rrrrrrru1s
 zTexinfoParser.writefootnotescCs|jd�dS)Nz<CODE>)r)rrrr�	open_file8szTexinfoParser.open_filecCs|jd�dS)Nz</CODE>)r)rrrr�
close_file9szTexinfoParser.close_filecCs|jd�dS)Nz<KBD>)r)rrrr�open_kbd;szTexinfoParser.open_kbdcCs|jd�dS)Nz</KBD>)r)rrrr�	close_kbd<szTexinfoParser.close_kbdcCs|jd�dS)Nz<KEY>)r)rrrr�open_key>szTexinfoParser.open_keycCs|jd�dS)Nz</KEY>)r)rrrr�	close_key?szTexinfoParser.close_keycCs|jd�dS)Nz<R>)r)rrrr�open_rAszTexinfoParser.open_rcCs|jd�dS)Nz</R>)r)rrrr�close_rBszTexinfoParser.close_rcCs|jd�dS)Nz`<SAMP>)r)rrrr�	open_sampDszTexinfoParser.open_sampcCs|jd�dS)Nz</SAMP>')r)rrrr�
close_sampEszTexinfoParser.close_sampcCs|jd�dS)Nz<SMALLCAPS>)r)rrrr�open_scGszTexinfoParser.open_sccCs|jd�dS)Nz</SMALLCAPS>)r)rrrr�close_scHszTexinfoParser.close_sccCs|jd�dS)Nz<STRONG>)r)rrrr�open_strongJszTexinfoParser.open_strongcCs|jd�dS)Nz	</STRONG>)r)rrrr�close_strongKszTexinfoParser.close_strongcCs|jd�dS)Nz<B>)r)rrrr�open_bMszTexinfoParser.open_bcCs|jd�dS)Nz</B>)r)rrrr�close_bNszTexinfoParser.close_bcCs|jd�dS)Nz<VAR>)r)rrrr�open_varPszTexinfoParser.open_varcCs|jd�dS)Nz</VAR>)r)rrrr�	close_varQszTexinfoParser.close_varcCs|jd�dS)Nz	<NOBREAK>)r)rrrr�open_wSszTexinfoParser.open_wcCs|jd�dS)Nz
</NOBREAK>)r)rrrr�close_wTszTexinfoParser.close_wcCs|j�dS)N)rp)rrrr�open_urlVszTexinfoParser.open_urlcCs)|j�}|jd|d|d�dS)Nz	<A HREF="z">z</A>)rqr)rrrrr�	close_urlWszTexinfoParser.close_urlcCs|j�dS)N)rp)rrrr�
open_email[szTexinfoParser.open_emailcCs)|j�}|jd|d|d�dS)Nz<A HREF="mailto:z">z</A>)rqr)rrrrr�close_email\szTexinfoParser.close_emailcCsdS)Nr)rrrr�
open_smallcszTexinfoParser.open_smallcCsdS)Nr)rrrr�close_smalldszTexinfoParser.close_smallcCs4|jd�\}}|||�}||d�j�}|jdkrwtd|jd|j|jd||�nyt|d|�}Wn|tk
ryt|d|�}Wn2tk
r�|js�|j||�ndSYnX|jj	|�||�dSYnX|js#|dkr0||�ndS)Nr:ryzcommand:r�Zdo_Zbgn_rz)
rir�r=rgrdrer�r��unknown_cmdr)rrrlrmrnrors�funcrrrrjfs(

		
	zTexinfoParser.commandcCsOtdd||�||jkr3d|j|<n|j|d|j|<dS)Nz*** unknownr�r:)rgr;)rrorsrrrr,}szTexinfoParser.unknown_cmdcCs�|j�}|std�n�|d}|jsF|jd|krYtd|d�n
|jd=yt|d|�}Wn#tk
r�|j|�dSYnX|�dS)	Nz*** @end w/o argsrr:z*** @endZ
unexpectedZend_rbrb)r�rgrer�r��unknown_end)rrs�wordsror-rrr�do_end�s




	zTexinfoParser.do_endcCsVd|}tdd|�||jkr:d|j|<n|j|d|j|<dS)Nzend z*** unknownr�r:)rgr;)rrorrrr.�s

zTexinfoParser.unknown_endcCsdS)Nr)rrsrrr�
do_comment�szTexinfoParser.do_commentcCsdS)Nr)rrsrrr�
bgn_ifinfo�szTexinfoParser.bgn_ifinfocCsdS)Nr)rrrr�
end_ifinfo�szTexinfoParser.end_ifinfocCs|jd|_dS)Nr:)rd)rrsrrr�	bgn_iftex�szTexinfoParser.bgn_iftexcCs|jd|_dS)Nr:)rd)rrrr�	end_iftex�szTexinfoParser.end_iftexcCs|jd|_dS)Nr:)rd)rrsrrr�
bgn_ignore�szTexinfoParser.bgn_ignorecCs|jd|_dS)Nr:)rd)rrrr�
end_ignore�szTexinfoParser.end_ignorecCs|jd|_dS)Nr:)rd)rrsrrr�bgn_tex�szTexinfoParser.bgn_texcCs|jd|_dS)Nr:)rd)rrrr�end_tex�szTexinfoParser.end_texcCs^|jd�}|d}t|�dkr4d}ndj|dd��}||j|<dS)Nr{rr:)r�r'r(rI)rrsZfields�key�valuerrr�do_set�s
	zTexinfoParser.do_setcCsd|j|<dS)N)rI)rrsrrr�do_clear�szTexinfoParser.do_clearcCse||jks"|j|dkrK|jd|_d|jt|j�<nd|jt|j�<dS)Nr:r)rIrdrJr're)rrsrrr�	bgn_ifset�s"zTexinfoParser.bgn_ifsetcCs{yH|jt|j�dr0|jd|_n|jt|j�d=Wn,tk
rvtdt|j�d�YnXdS)Nr:z*** end_ifset: KeyError :)rJr'rerdr�rg)rrrr�	end_ifset�s
zTexinfoParser.end_ifsetcCse||jkrK|j|dk	rK|jd|_d|jt|j�<nd|jt|j�<dS)Nr:r)rIrdrJr're)rrsrrr�bgn_ifclear�s"zTexinfoParser.bgn_ifclearcCs{yH|jt|j�dr0|jd|_n|jt|j�d=Wn,tk
rvtdt|j�d�YnXdS)Nr:z*** end_ifclear: KeyError :)rJr'rerdr�rg)rrrr�end_ifclear�s
zTexinfoParser.end_ifclearcCs|j�dS)N)rp)rrrr�
open_value�szTexinfoParser.open_valuecCsC|j�}||jkr2|j|j|�n
td|�dS)Nz*** Undefined value: )rqrIrrg)rr:rrr�close_value�szTexinfoParser.close_valuecCs*|j�|j|�|j�|_dS)N)rpr�rqr)rrsrrr�do_settitle�s

zTexinfoParser.do_settitlecCsdS)Nr)rrsrrr�
do_parskip�szTexinfoParser.do_parskipcCs|j�d|_dS)Nr:)rxrc)rrsrrr�do_bye�s
zTexinfoParser.do_byecCs|jd|_dS)Nr:)rd)rrsrrr�
bgn_titlepage�szTexinfoParser.bgn_titlepagecCs|jd|_dS)Nr:)rd)rrrr�
end_titlepage�szTexinfoParser.end_titlepagecCsdS)Nr)rrsrrr�do_shorttitlepage�szTexinfoParser.do_shorttitlepagecCs+|jd�|j|�|jd�dS)Nz<H1>z</H1>
)rr�)rrsrrr�	do_center�s

zTexinfoParser.do_centerc	Cs�|j�d|_dd�|jd�D�}x#t|�dkrT|jd�q2W||_|dd�\}}}}|jdt|�}||jkr�t	d|�n#|j
r�t	d	|j
d
|�nd|j|<||_|jr|j
r|j|j
d
_n|js&||_n|}|jrI|d|j}n|j|j|j|j||||�|_|jj|j||||�dS)NrcSsg|]}|j��qSr)r�)r�r�rrrr�s	z)TexinfoParser.do_node.<locals>.<listcomp>r�rtrrz*** Filename already in use: ryz--- writingr:z -- rb)rxr@r�r'rrvrrr<rgr=r"r1rPrr�NoderOrC�addnode)	rrs�partsrrr	r
r�rrrr�do_nodes0
			
			zTexinfoParser.do_nodec	CsV|rR|j�dkr!d}nt|�}|j|d|d|d|d�ndS)Nz(dir)z../dir.htmlz: <A HREF="z" TYPE="z">z</A>  
)r rr)rr!r"r$rrrr%-s	zTexinfoParser.linkcCs7|jr3||j_x|jr/|jdj|krf|jdj�|jdj�|jd=q|jdj|kr�|jdjs�|jj|jd_n|jjs�|jd	j|j_n|jd
j�|jdj�|jd=q|dkr+|jjr+|jd
j|j_nPqWndS)Nr:rbrbrbrbrbrbrbrbrbrbrbrb)	rOr6rPr.rrrr	r
)rr6rrr�popstack8s$	

zTexinfoParser.popstackcCs$|jd|d�|jd�dS)N�H1rr:)�headingrO)rrsrrr�
do_chapterMszTexinfoParser.do_chaptercCs$|jd|d�|jd�dS)NrPr:rb)rQrO)rrsrrr�
do_unnumberedQszTexinfoParser.do_unnumberedcCs$|jd|d�|jd�dS)NrPr:rb)rQrO)rrsrrr�do_appendixTszTexinfoParser.do_appendixcCs|jd|d�dS)NrPr:rb)rQ)rrsrrr�do_topWszTexinfoParser.do_topcCs|jd|d�dS)NrPr:rb)rQ)rrsrrr�do_chapheadingYszTexinfoParser.do_chapheadingcCs|jd|d�dS)NrPr:rb)rQ)rrsrrr�do_majorheading[szTexinfoParser.do_majorheadingcCs$|jd|d�|jd�dS)NrPr:r})rQrO)rrsrrr�
do_section^szTexinfoParser.do_sectioncCs$|jd|d�|jd�dS)NrPr:r}rb)rQrO)rrsrrr�do_unnumberedsecbszTexinfoParser.do_unnumberedseccCs$|jd|d�|jd�dS)NrPr:r}rb)rQrO)rrsrrr�do_appendixseceszTexinfoParser.do_appendixseccCs|jd|d�dS)NrPr:rb)rQ)rrsrrr�
do_headingiszTexinfoParser.do_headingcCs$|jd|d�|jd�dS)N�H2r}r~)rQrO)rrsrrr�
do_subsectionlszTexinfoParser.do_subsectioncCs$|jd|d�|jd�dS)Nr\r:r~rb)rQrO)rrsrrr�do_unnumberedsubsecosz!TexinfoParser.do_unnumberedsubseccCs$|jd|d�|jd�dS)Nr\r:r~rb)rQrO)rrsrrr�do_appendixsubsecrszTexinfoParser.do_appendixsubseccCs|jd|d�dS)Nr\r:rb)rQ)rrsrrr�
do_subheadinguszTexinfoParser.do_subheadingcCs$|jd|d�|jd�dS)N�H3r~rt)rQrO)rrsrrr�do_subsubsectionxszTexinfoParser.do_subsubsectioncCs$|jd|d�|jd�dS)Nrar:rtrb)rQrO)rrsrrr�do_unnumberedsubsubsec{sz$TexinfoParser.do_unnumberedsubsubseccCs$|jd|d�|jd�dS)Nrar:rtrb)rQrO)rrsrrr�do_appendixsubsubsec~sz"TexinfoParser.do_appendixsubsubseccCs|jd|d�dS)Nrar:rb)rQ)rrsrrr�do_subsubheading�szTexinfoParser.do_subsubheadingcCs|dkr�x)t|j�|kr7|jjd�qW|j|dd�=|j|d|j|<d}x%|jD]}|t|�d}qtW|d|}|jj|||jf�n|jd|d�|j|�|jd|d	�|js|j	rt
d
|�ndS)Nrr:rr9r{r�rz</z>
z---)r'rGrr�rFr"rr�r=r>rg)rr6rs�level�xr�rrrrQ�s
zTexinfoParser.headingcCs|jdd�dS)NzTable of Contentsi�)�listcontents)rrsrrr�do_contents�szTexinfoParser.do_contentscCsdS)Nr)rrsrrr�do_shortcontents�szTexinfoParser.do_shortcontentscCs!|jd|d�dg}x�|jD]�\}}}||krGq&n||dkr|jd|dd�|j|�nI||d
kr�x6||dkr�|d=|jd|dd�q�Wn|jd|dt|�d	�|j|�|jd
�q&W|jdt|��dS)Nz<H1>z</H1>
<UL COMPACT PLAIN>
rr:z  z<UL PLAIN>
z</UL>
z<LI> <A HREF="z">z</A>
rbrbrbrbrbrb)rrFrrr�r')rr�maxlevelZ
prevlevelsrfrOrrrrh�s$	
zTexinfoParser.listcontentscCsdS)Nr)rrsrrr�do_page�szTexinfoParser.do_pagecCsdS)Nr)rrsrrr�do_need�szTexinfoParser.do_needcCsdS)Nr)rrsrrr�	bgn_group�szTexinfoParser.bgn_groupcCsdS)Nr)rrrr�	end_group�szTexinfoParser.end_groupcCs*|jr|jd�n
|jd�dS)Nraz<P>
)rHr)rrsrrr�do_sp�s	zTexinfoParser.do_spcCs|jd�dS)Nz<HR>)r)rrsrrr�do_hline�szTexinfoParser.do_hlinecCs|jd�|j|�dS)Nz<DL>)r�	do_deffnx)rrsrrr�	bgn_deffn�s
zTexinfoParser.bgn_deffncCs|jd�dS)Nz</DL>
)r)rrrr�	end_deffn�szTexinfoParser.end_deffncCs�|jd�t|d�}|dd�|dd�\}}}|jd|�x%|D]}|jdt|��q[W|jd�|jd|�dS)Nz<DT>r}z@b{%s}r{z
<DD>�fn)r�
splitwordsr��makevar�index)rrsr/�categoryr�rest�wordrrrrr�s
'

zTexinfoParser.do_deffnxcCs|jd|�dS)Nz	Function )rs)rrsrrr�	bgn_defun�szTexinfoParser.bgn_defuncCs|jd|�dS)Nz	Function )rr)rrsrrr�	do_defunx�szTexinfoParser.do_defunxcCs|jd|�dS)NzMacro )rs)rrsrrr�
bgn_defmac�szTexinfoParser.bgn_defmaccCs|jd|�dS)NzMacro )rr)rrsrrr�
do_defmacx�szTexinfoParser.do_defmacxcCs|jd|�dS)Nz{Special Form} )rs)rrsrrr�bgn_defspec�szTexinfoParser.bgn_defspeccCs|jd|�dS)Nz{Special Form} )rr)rrsrrr�do_defspecx�szTexinfoParser.do_defspecxcCs|jd�|j|�dS)Nz<DL>)r�	do_defvrx)rrsrrr�	bgn_defvr�s
zTexinfoParser.bgn_defvrcCs�|jd�t|d�}|dd�|dd�\}}}|jd|�x|D]}|jd|�q[W|jd�|jd|�dS)Nz<DT>r}z	@code{%s}r{z
<DD>�vr)rrvr�rx)rrsr/ryrrzr{rrrr��s
'

zTexinfoParser.do_defvrxcCs|jd|�dS)Nz	Variable )r�)rrsrrr�
bgn_defvar�szTexinfoParser.bgn_defvarcCs|jd|�dS)Nz	Variable )r�)rrsrrr�
do_defvarx�szTexinfoParser.do_defvarxcCs|jd|�dS)Nz{User Option} )r�)rrsrrr�
bgn_defopt�szTexinfoParser.bgn_defoptcCs|jd|�dS)Nz{User Option} )r�)rrsrrr�
do_defoptxszTexinfoParser.do_defoptxcCs|jd�|j|�dS)Nz<DL>)r�
do_deftypefnx)rrsrrr�
bgn_deftypefns
zTexinfoParser.bgn_deftypefncCs�|jd�t|d�}|dd�|dd�\}}}}|jd||f�x%|D]}|jdt|��qdW|jd�|jd|�dS)Nz<DT>r~z@code{%s} @b{%s}r{z
<DD>ru)rrvr�rwrx)rrsr/ry�datatyperrzr{rrrr�
s
*

zTexinfoParser.do_deftypefnxcCs|jd|�dS)Nz	Function )r�)rrsrrr�bgn_deftypefunszTexinfoParser.bgn_deftypefuncCs|jd|�dS)Nz	Function )r�)rrsrrr�do_deftypefunxszTexinfoParser.do_deftypefunxcCs|jd�|j|�dS)Nz<DL>)r�
do_deftypevrx)rrsrrr�
bgn_deftypevrs
zTexinfoParser.bgn_deftypevrcCs�|jd�t|d�}|dd�|dd�\}}}}|jd||f�x|D]}|jd|�qdW|jd�|jd|�dS)Nz<DT>r~z@code{%s} @b{%s}r{z
<DD>ru)rrvr�rx)rrsr/ryr�rrzr{rrrr�s
*

zTexinfoParser.do_deftypevrxcCs|jd|�dS)Nz	Variable )r�)rrsrrr�bgn_deftypevar*szTexinfoParser.bgn_deftypevarcCs|jd|�dS)Nz	Variable )r�)rrsrrr�do_deftypevarx-szTexinfoParser.do_deftypevarxcCs|jd�|j|�dS)Nz<DL>)r�	do_defcvx)rrsrrr�	bgn_defcv2s
zTexinfoParser.bgn_defcvcCs�|jd�t|d�}|dd�|dd�\}}}}|jd|�x|D]}|jd|�q^W|jd�|jdd||f�dS)Nz<DT>r~z@b{%s}r{z
<DD>r�z%s @r{on %s})rrvr�rx)rrsr/ry�	classnamerrzr{rrrr�8s
*

zTexinfoParser.do_defcvxcCs|jd|�dS)Nz{Instance Variable} )r�)rrsrrr�bgn_defivarCszTexinfoParser.bgn_defivarcCs|jd|�dS)Nz{Instance Variable} )r�)rrsrrr�do_defivarxFszTexinfoParser.do_defivarxcCs|jd�|j|�dS)Nz<DL>)r�	do_defopx)rrsrrr�	bgn_defopIs
zTexinfoParser.bgn_defopcCs�|jd�t|d�}|dd�|dd�\}}}}|jd|�x%|D]}|jdt|��q^W|jd�|jdd||f�dS)Nz<DT>r~z@b{%s}r{z
<DD>ruz%s @r{on %s})rrvr�rwrx)rrsr/ryr�rrzr{rrrr�Os
*

zTexinfoParser.do_defopxcCs|jd|�dS)NzMethod )r�)rrsrrr�
bgn_defmethodYszTexinfoParser.bgn_defmethodcCs|jd|�dS)NzMethod )r�)rrsrrr�
do_defmethodx\szTexinfoParser.do_defmethodxcCs|jd�|j|�dS)Nz<DL>)r�	do_deftpx)rrsrrr�	bgn_deftpas
zTexinfoParser.bgn_deftpcCs�|jd�t|d�}|dd�|dd�\}}}|jd|�x|D]}|jd|�q[W|jd�|jd|�dS)Nz<DT>r}z@b{%s}r{z
<DD>�tp)rrvr�rx)rrsr/ryrrzr{rrrr�gs
'

zTexinfoParser.do_deftpxcCs\|s,|jd�d|jt|j�<n,||_|jd�d|jt|j�<dS)Nz<OL>
z</OL>
z<UL>
z</UL>
)rrJr'rerM)rrsrrr�
bgn_enumeratess
	
zTexinfoParser.bgn_enumeratecCsEd|_|j|jt|j�d�|jt|j�d=dS)Nr:)rMrrJr're)rrrr�
end_enumerate{s	!zTexinfoParser.end_enumeratecCs||_|jd�dS)Nz<UL>
)rLr)rrsrrr�bgn_itemize�s	zTexinfoParser.bgn_itemizecCsd|_|jd�dS)Nz</UL>
)rLr)rrrr�end_itemize�s	zTexinfoParser.end_itemizecCs||_|jd�dS)Nz<DL>
)rLr)rrsrrr�	bgn_table�s	zTexinfoParser.bgn_tablecCsd|_|jd�dS)Nz</DL>
)rLr)rrrr�	end_table�s	zTexinfoParser.end_tablecCsd|_|j|�dS)Nru)rNr�)rrsrrr�
bgn_ftable�s	zTexinfoParser.bgn_ftablecCsd|_|j�dS)N)rNr�)rrrr�
end_ftable�s	zTexinfoParser.end_ftablecCsd|_|j|�dS)Nr�)rNr�)rrsrrr�
bgn_vtable�s	zTexinfoParser.bgn_vtablecCsd|_|j�dS)N)rNr�)rrrr�
end_vtable�s	zTexinfoParser.end_vtablecCsv|jr|j|j|�n|jr�|jddkrv|jdrv|jdtjkrv|jd|d}q�|jd|}n|jdk	r�|jd|}t|j�|_n|jr|jddkr|jd	�|j	|�|jd
�nm|jrK|jddkrK|jd�|j	|�|jd
�n'|jd�|j	|�|jd�dS)Nrr�r:r�r�r{z. �tablez<DT>z
<DD>Z
multitablez<TR><TD>z</TD>
</TR>
z<LI>z  rbrb)
rNrxrLr�r�rM�	incrementrerr�)rrsrrr�do_item�s*		 





zTexinfoParser.do_itemcCsd|_|jd�dS)Nz<TABLE BORDER="">
)rLr)rrsrrr�bgn_multitable�s	zTexinfoParser.bgn_multitablecCsd|_|jd�dS)Nz</TABLE>
<BR>
)rLr)rrrr�end_multitable�s	zTexinfoParser.end_multitablecCs
d|_dS)N)rL)rrrr�handle_columnfractions�sz$TexinfoParser.handle_columnfractionscCs|jd�dS)Nz</TD>
    <TD>)r)rrrr�
handle_tab�szTexinfoParser.handle_tabcCs|jd�dS)Nz<BLOCKQUOTE>)r)rrsrrr�
bgn_quotation�szTexinfoParser.bgn_quotationcCs|jd�dS)Nz</BLOCKQUOTE>
)r)rrrr�
end_quotation�szTexinfoParser.end_quotationcCs!|jd|_|jd�dS)Nr:z<PRE>)rHr)rrsrrr�bgn_example�szTexinfoParser.bgn_examplecCs!|jd�|jd|_dS)Nz</PRE>
r:)rrH)rrrr�end_example�s
zTexinfoParser.end_examplecCs|j|d�dS)Nra)r�)rrsrrr�	do_exdent�szTexinfoParser.do_exdentcCs!|jd|_|jd�dS)Nr:z<PRE>
)rHr)rrsrrr�
bgn_flushleft�szTexinfoParser.bgn_flushleftcCs!|jd�|jd|_dS)Nz</PRE>
r:)rrH)rrrr�
end_flushleft�s
zTexinfoParser.end_flushleftcCs!|jd|_|jd�dS)Nr:z<ADDRESS COMPACT>
)rHr)rrsrrr�bgn_flushright�szTexinfoParser.bgn_flushrightcCs!|jd�|jd|_dS)Nz</ADDRESS>
r:)rrH)rrrr�end_flushright�s
zTexinfoParser.end_flushrightcCs+|jd�|jd�|jj�dS)Nz<DIR>
z$  <STRONG><EM>Menu</EM></STRONG><P>
)rrC�	beginmenu)rrsrrr�bgn_menu�s

zTexinfoParser.bgn_menucCs|jd�|jj�dS)Nz</DIR>
)rrC�endmenu)rrrr�end_menu�s
zTexinfoParser.end_menucCsdS)Nr)rrsrrr�
bgn_cartouche�szTexinfoParser.bgn_cartouchecCsdS)Nr)rrrr�
end_cartouche�szTexinfoParser.end_cartouchecCs�dg|_i|_d|jd<d|jd<d|jd<d|jd<d	|jd
<d|jd<i|_x|jD]}g|j|<qvWdS)
N�cpZConceptZFunctionruZKeyword�kyZProgram�pgZTyper�ZVariabler�)�noncodeindices�
indextitle�
whichindex)rrrrrrE�s	





	zTexinfoParser.resetindexcCs9||jkr"|j||�ntdt|��dS)Nz*** No index named)r�rxrgr�)rrrsrrr�
user_indexszTexinfoParser.user_indexcCs|jd|�dS)Nr�)rx)rrsrrr�	do_cindexszTexinfoParser.do_cindexcCs|jd|�dS)Nru)rx)rrsrrr�	do_findexszTexinfoParser.do_findexcCs|jd|�dS)Nr�)rx)rrsrrr�	do_kindexszTexinfoParser.do_kindexcCs|jd|�dS)Nr�)rx)rrsrrr�	do_pindexszTexinfoParser.do_pindexcCs|jd|�dS)Nr�)rx)rrsrrr�	do_tindexszTexinfoParser.do_tindexcCs|jd|�dS)Nr�)rx)rrsrrr�	do_vindexszTexinfoParser.do_vindexcCs7|j|j||jf�|jj||j�dS)N)r�rr"rCrx)rrrsrrrrxszTexinfoParser.indexcCs�|j�}t|�dkr/td|�dS|\}}||jksY||jkrjtd|�dS||kr�|j||j|k	r�|j|}|j||t|�d�<||j|<ndS)Nr}z*** bad @synindexz*** bad key(s) in @synindex)r�r'rgr�)rrsr/�old�newZinewrrr�do_synindexs


zTexinfoParser.do_synindexcCsS|j�}x@|D]8}||jkr8|j|�qtdt|��qWdS)Nz*** No index named)r�r��prindexrgr�)rrsr/rrrr�
do_printindex-s

zTexinfoParser.do_printindexcCs�||jk}|j|}|s&dS|jrStd|jd|j|d�ng}tjd�}xx|D]p\}}|j�}|}	x9|j|�}
|
s�Pn|
j	�}||d�}q�W|j
|||f�qoW|dd�=|j�|jd�d}}
x�|D]�\}}}||f||
fkrEqn|jdkrqtd|j|d|�n|jd�|r�d	|d
}n||kr�|j
|�n|jdt|�|f�||}}
qW|jd�dS)
Nryz--- Generatingrxz^(@[a-z]+)?{z
<DL COMPACT>
r:rz<DT>z@code{r�z
<DD><A HREF="%s">%s</A>
z</DL>
)r�r�r=rgr��re�compiler rXrzr�sortrr�r)rrZiscodeindexrxZindex1Zjunkprogr:rOZsortkeyZ
oldsortkeyrlr�ZprevkeyZprevnoderrrr�5sH
	




zTexinfoParser.prindexcCs]|jrYtd�t|jj��}x.|D]#}t|jd�|j|�q/WndS)Nz--- Unrecognized commands ---r&)r;rg�sorted�keys�ljust)rZcmdsrorrr�report]s
	

zTexinfoParser.reportN(Br2r3r4r��
FN_ID_PATTERNr
rrrrKrrRrSrTr]r[rprqrrxrfr�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�r�Z	open_asisZ
close_asisrrrrrrrrrr	r
rrrrurrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)Zopen_titlefontZclose_titlefontr*r+rjr,r0r.r1Zdo_cr2r3r4r5r6r7r8r9r<r=r>r?r@rArBrCZdo_finaloutZdo_setchapternewpageZdo_setfilenamerDrErFrGrHrIrJZdo_titleZdo_subtitleZ	do_authorZdo_vskipZdo_vfillZdo_smallbookZdo_paragraphindentZdo_headingsZdo_footnotestyleZdo_evenheadingZdo_evenfootingZ
do_oddheadingZ
do_oddfootingZdo_everyheadingZdo_everyfootingrNr%rOrRrSrTrUrVrWrXrYrZZdo_appendixsectionr[r]r^r_r`rbrcrdrerQrirjZdo_summarycontentsrhrlrmrnrorprqrsrtrrr|Z	end_defunr}r~Z
end_defmacrr�Zend_defspecr�r�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�rEr�r�r�r�r�r�r�rxr�Zdo_syncodeindexr�r�r�rrrrr8�s~!8
 #T		&&
		

(r8c@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|jd�dS)Nz<BQ>)r)rrsrrrr�ssz TexinfoParserHTML3.bgn_quotationcCs|jd�dS)Nz</BQ>
)r)rrrrr�tsz TexinfoParserHTML3.end_quotationcCs!|jd|_|jd�dS)Nr:z<PRE CLASS=example><CODE>)rHr)rrsrrrr�vszTexinfoParserHTML3.bgn_examplecCs!|jd�|jd|_dS)Nz</CODE></PRE>
r:)rrH)rrrrr�{s
zTexinfoParserHTML3.end_examplecCs!|jd|_|jd�dS)Nr:z<PRE CLASS=flushleft>
)rHr)rrsrrrr�sz TexinfoParserHTML3.bgn_flushleftcCs!|jd|_|jd�dS)Nr:z4<DIV ALIGN=right CLASS=flushright><ADDRESS COMPACT>
)rHr)rrsrrrr��sz!TexinfoParserHTML3.bgn_flushrightcCs!|jd�|jd|_dS)Nz</ADDRESS></DIV>
r:)rrH)rrrrr��s
z!TexinfoParserHTML3.end_flushrightcCs|jd�|jd�dS)Nz<UL PLAIN CLASS=menu>
z  <LH>Menu</LH>
)r)rrsrrrr��s
zTexinfoParserHTML3.bgn_menucCs|jd�dS)Nz</UL>
)r)rrrrr��szTexinfoParserHTML3.end_menuN)r2r3r4r�r�r
rrr7rKr�r�r�r�r�r�r�r�r�rrrrr�esr�c@s�eZdZdZejd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zejdd�Zejdd�Zdejdd�Zdejdd�Zdd�Zejdd�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{(.*?)}cCsy||_||_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�s												zHTMLHelp.__init__cCse|||||f}||j|<t|j�|j|<|jj|�||_g|j|j<dS)N)r<r'r�r�rr�r�)rrrr	r
r�rOrrrrL�s
	zHTMLHelp.addnodecCs!|j|j}|j|�dS)N)r�r�r)rr"r�rrrr��szHTMLHelp.menuitemcCs||j|<dS)N)r<)rZ	imagenamerrrr��szHTMLHelp.addimagecCs|jj||f�dS)N)r�r)rrsr"rrrrx�szHTMLHelp.indexcCsdS)Nr)rrrrr��szHTMLHelp.beginmenucCsdS)Nr)rrrrr��szHTMLHelp.endmenuc,Cs�|js
dS|jd}|jd}|jd}|jd}|j}|jd\}}}}	}
|
}y�t|d�}tdd|�td	d|�td
d|�tdd|�tdd|�td
|dd|�td|dd|�td|dd|�tdd|�td|dd|�td|dd|�tdd|�tdd|�tdd|�tdd|�tdd|�td|d|dd|�tdd|�tdd|�tdd|�|j|�|j�WnBtk
rR}
z"t|d|
�tjd�WYdd}
~
XnXyt|d�}tdd|�tdd|�td d|�td!d|�td"d|�td#d|�td$d|�td%d|�td&d|�td'd|�td(d|�td)d|�td*d|�|j	|�td+d|�td,d|�|j�WnBtk
r�}
z"t|d|
�tjd�WYdd}
~
XnXy�t|d�}tdd|�td-d|�td d|�td!d|�td"d|�td#d|�td$d|�td%d|�td.d|�td/d|�|j
|�td+d|�td,d|�|j�WnBtk
r�}
z"t|d|
�tjd�WYdd}
~
XnXdS)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]rr:z.<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">z0<!-- This file defines the table of contents -->z<HTML>z<HEAD>zF<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�rrg�	dumpfilesrr��sys�exit�	dumpnodes�	dumpindex)rZ
resultfiler�r�r�rrZtopnextZtopprevZtopupZtopfileZdefaulttopicrr�rrrr.�s�	



	
 	
 	
zHTMLHelp.finalizecCs:t|jj��}x|D]}t|d|�qWdS)Nr�)r�r<rIrg)r�outfileZfilelistr�rrrr�9s
zHTMLHelp.dumpfilescCs�i|_|jr:|jd\}}}}}||_ntdd|�x$|jD]}|j|d|�qTWtdd|�dS)Nrz<UL>r�z</UL>)r�r��topnoderg�dumpnode)rr�r"rwrOrrrr�>s		zHTMLHelp.dumpnodesrc
Cs|r|\}}}}}||_||jkr7dSd|j|<td|ddd|�tdddd|�td|dddd|�td|dddd|�td	d|�y(|j|}	|j|	|d
|�Wqtk
r�YqXndS)Nr:r{rzr�z <LI><OBJECT type="text/sitemap">z<param name="Name" value="z">z<param name="Local" value="z	</OBJECT>r})r�r�rgr��dumpmenur�)
rrO�indentr�r"rr	r
r�r�rrrr�Is 	


zHTMLHelp.dumpnodecCs�|r�|j}||jkrCtd|dd|�|d7}nx0|D](}|j|�}|j|||�qJW||jkr�td|dd|�|d8}q�ndS)Nr{z<UL>r�r}z</UL>)r�r�rg�getnoder�)rr�r�r�Zcurrentnode�itemZmenunoderrrr�bs	

zHTMLHelp.dumpmenucCsNy|j|}|j|SWn+tk
r4dSYntk
rIdSYnXdS)N)r�r�r��
IndexError)rr"rxrrrr�os


zHTMLHelp.getnodecCs�tdd|�x�|jD]�\}}|j|�}t|�}|jd|}tdddd|�td|dddd|�td	|dddd|�td
d|�qWtdd|�dS)Nz<UL>r�rz <LI><OBJECT type="text/sitemap">rzr{z<param name="Name" value="z">z<param name="Local" value="z	</OBJECT>z</UL>)rgr��
codeexpandrr)rr�r:�locationrrrr�yszHTMLHelp.dumpindexcCsv|jj|�}|s|S|jd�\}}|jd�\}}|d|�|||�||d�}|S)Nrr:)�codeprogrXri)rr�cor�rzrmrnrrrr��s,zHTMLHelp.codeexpandN)r2r3r4r5r�r�r�rrLr�r�rxr�r�r.r��stdoutr�r�r�r�r�r�r�rrrrr��s"_

r�cCsd|dS)Nz@var{r�r)�strrrrrw�srwcCs�g}d}t|�}x|||kr�x*||krS||dkrS|d}q*W||krdPn|}t|||�}|j|||��qWx#t|�|kr�|jd�q�W|S)Nrz 	
r:r)r'�findwordendr)r�Z	minlengthr/r�r�r�rrrrv�srvz[@{} ]cCs�d}x�||kr�tj||�}|s1Pn|j�}||}|d}|dkrj|d}q	|dkr�|d}q	|dkr�|d}q	|dkr	|dkr	|dSq	W|S)Nrr:r�r�r�r{)�fwprogr�r�)r�r�r�rfrlr�rrrr��s"




r�cCs|j�}t|�dS)Nz.html)r��
fixfunnychars)r"rrrr�srz!@-=+.cCsxd}xk|t|�krs||}|tkr`d}|d|�|||dd�}n|t|�}q	W|S)Nrr�r:)r'�	goodchars)r$r�r�rrrr��s
)r�cCs�|s
dSx�tjtjtjfD]�}|d}||kr#|j|�d}|t|�kr�t|�dkr�|dd}|dkr�d}q�q�t|dd��|d}n|dd	�||}|Sq#W|S)
N�1r:rr}Z00Z10rbrbrb)r��digitsZascii_lowercaseZascii_uppercaserxr'r�)r�ZsequenceZlastcr�rrrr��s
!r�cCsKddl}d}d}d}d}d}x.|jddgkrZ|d}|jd=q-W|jddkr�d}|jd=n|jddkr�d}|jd=n|jddkr�d}|jd=n|jddkr|jd	}|jdd
�=nt|j�d
kr2tdd�|jd	�n|rDt�}n	t�}||_||_||_	|jd}|jd	}	|j
|	�|jtj
j|��t||	�}|j|�yt|d
�}
WnBtk
r}z"t|d|�|jd�WYdd}~XnX|j|
�|
j�|j�|j�dS)Nrrr:z-dz-pz-cz-3z-Hr}r~z5usage: texi2hh [-d [-d]] [-p] [-c] [-3] [-H htmlhelp]zinputfile outputdirectoryr�r)r��argvr'rgr�r�r8r1r=r>rSrTr�r�rr�rRrr�r]rr�r.)r�r=r>r1Zhtml3rCr��parserr�rrr�rrr�test�s\




				



 


r��__main__)r�r�r�r�rYr�rhrWZkwprogr�r�rr7r8r�r�rwrvr�r�rr�r�r�r�r�r�r2rrrr�<module>Bs<	[������-�9