Your IP : 18.117.254.202


Current Path : /opt/alt/python27/lib64/python2.7/
Upload File :
Current File : //opt/alt/python27/lib64/python2.7/markupbase.pyc

�
^
bc@s}dZddlZejd�jZejd�jZejd�Zejd�Zejd�Z[dd
d	��YZ	dS(s�Shared support for scanning document type declarations in HTML and XHTML.

This module is used as a foundation for the HTMLParser and sgmllib
modules (indirectly, for htmllib as well).  It has no documented
public API and should not be used directly.

i����Ns[a-zA-Z][-_.a-zA-Z0-9]*\s*s(\'[^\']*\'|"[^"]*")\s*s--\s*>s	]\s*]\s*>s]\s*>t
ParserBasecBs�eZdZd�Zd�Zd�Zd�Zd�ZdZd�Z	dd	�Z
dd
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�ZRS(siParser base class which provides some common support methods used
    by the SGML/HTML and XHTML parsers.cCs"|jtkrtd��ndS(Ns(markupbase.ParserBase must be subclassed(t	__class__RtRuntimeError(tself((s//opt/alt/python27/lib64/python2.7/markupbase.pyt__init__scCstd��dS(Ns.subclasses of ParserBase must override error()(tNotImplementedError(Rtmessage((s//opt/alt/python27/lib64/python2.7/markupbase.pyterror!scCsd|_d|_dS(Nii(tlinenotoffset(R((s//opt/alt/python27/lib64/python2.7/markupbase.pytreset%s	cCs|j|jfS(s&Return current line number and offset.(RR	(R((s//opt/alt/python27/lib64/python2.7/markupbase.pytgetpos)scCs�||kr|S|j}|jd||�}|rm|j||_|jd||�}||d|_n|j|||_|S(Ns
i(trawdatatcountRtrindexR	(RtitjRtnlinestpos((s//opt/alt/python27/lib64/python2.7/markupbase.pyt	updatepos1s	tc
Cse|j}|d}|||!dks2td��|||d!dkrQ|dS|||d!dkrldSt|�}|||d!d	kr�|j|�S||d
kr�|j|�S|j||�\}}|dkr�|S|dkr�d|_nxe||kr`||}|dkr`||d|!}|dkrK|j|�n
|j|�|dS|d
kr�t	||�}|s�dS|j
�}n�|dkr�|j||�\}	}n�||jkr�|d}nv|d
kr8|dkr|j|d|�}qM|dkr(|jd|�qM|jd�n|jd||�|dkr�|Sq�WdS(Nis<!s$unexpected call to parse_declarationit>t-Ri����s--t[itdoctypes"'t4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZtattlisttlinktypetlinktelements&unsupported '[' char in %s declarations"unexpected '[' char in declarations!unexpected %r char in declaration(RR(RRRR(
RtAssertionErrortlent
parse_commenttparse_marked_sectiont
_scan_namet_decl_othercharsthandle_decltunknown_declt_declstringlit_matchtendt_parse_doctype_subsetR(
RRRRtntdecltypetctdatatmtname((s//opt/alt/python27/lib64/python2.7/markupbase.pytparse_declarationAsZ	





icCs|j}|||d!dks,td��|j|d|�\}}|dkrX|S|dkr}tj||d�}nA|dkr�tj||d�}n|jd
||d|!�|s�dS|r�|jd�}|j||d|!�n|j	d�S(Nis<![s)unexpected call to parse_marked_section()ittemptcdatatignoretincludetrcdatatiftelsetendifs+unknown status keyword %r in marked sectioni����(R0R1R2R3R4(R5R6R7(
RRR"t_markedsectionclosetsearcht_msmarkedsectioncloseRtstartR%R'(RRtreportRtsectNameRtmatch((s//opt/alt/python27/lib64/python2.7/markupbase.pyR!�s 	#cCs�|j}|||d!dkr0|jd�ntj||d�}|sPdS|r�|jd�}|j||d|!�n|jd�S(Nis<!--s"unexpected call to parse_comment()i����i(RRt
_commentcloseR9R;thandle_commentR'(RRR<RR>R((s//opt/alt/python27/lib64/python2.7/markupbase.pyR �s	c
Cs�|j}t|�}|}x�||kr�||}|dkr�|||d!}|dkradS|dkr�|j||d�|jd|�n|d|kr�dS|d|kr�dS|||d!dkr�|j|d	d
�}|d
kr|Sqn|j|d|�\}}|dkr+dS|dkr_|j||d�|jd|�nt|d|�}	|	||�}|d
kr�|Sq|dkr|d|kr�dS|j|d|�\}}|d
kr�|S||dkr�|d}q�q|dkr�|d}x*||krB||j�rB|d}qW||kr�||dkrc|S|j||�|jd�q�dSq|j�r�|d}q|j||�|jd|�qWdS(Nt<ii����s<!is*unexpected char in internal subset (in %r)is<!--R<iRRtentitytnotations)unknown declaration %r in internal subsett_parse_doctype_t%t;t]Rs%unexpected char after internal subsets%unexpected char %r in internal subset(RRRBRC(RRRRR R"tgetattrtisspace(
RRtdeclstartposRR)RR+tsR.tmeth((s//opt/alt/python27/lib64/python2.7/markupbase.pyR(�sn	


cCsY|j||�\}}|dkr(dS|j}d||krU|jd|�dSdS(Ni����Ri(R"Rtfind(RRRJR.RR((s//opt/alt/python27/lib64/python2.7/markupbase.pyt_parse_doctype_element�s	cCs|j}|j||�\}}|||d!}|dkrBdS|dkrV|dSx�|j||�\}}|dkr�|S|||d!}|dkr�dS|dkrd||kr�|jd|�d}ndSx%|||d!j�r|d}q�W||s,dSn|j||�\}}|||d!}|sGdS|dkr�t||�}|rw|j�}ndS|||d!}|s�dSn|d	kr||d	kr�dS|j|d|�\}}|dkr�|S|||d!}|sdSn|dkrY|dSqYWdS(
NiRi����Rit(t)s'"t#(RR"RMRIR&R'(RRRJRR.RR+R-((s//opt/alt/python27/lib64/python2.7/markupbase.pyt_parse_doctype_attlistsZ	
cCs�|j||�\}}|dkr(|S|j}x�|||d!}|sOdS|dkrc|dS|dkr�t||�}|s�dS|j�}q4|j||�\}}|dkr4|Sq4WdS(Niii����Rs'"(R"RR&R'(RRRJR.RRR+R-((s//opt/alt/python27/lib64/python2.7/markupbase.pyt_parse_doctype_notation>s$	cCs3|j}|||d!dkri|d}xB|||d!}|sHdS|j�ra|d}q-Pq-Wn|}|j||�\}}|dkr�|Sx�|j||d!}|s�dS|dkr�t||�}|r�|j�}q+dSq�|dkr|dS|j||�\}}|dkr�|Sq�WdS(NiREi����is'"R(RRIR"R&R'(RRRJRRR+R.R-((s//opt/alt/python27/lib64/python2.7/markupbase.pyt_parse_doctype_entityUs8	

cCs�|j}t|�}||kr%dSt||�}|r�|j�}|j�}|t|�|krldS|j�|j�fS|j||�|j	d|||d!�dS(Ni����sexpected name token at %ri(Ni����(Ni����(
RRtNonet_declname_matchtgrouptstriptlowerR'RR(RRRJRR)R-RKR.((s//opt/alt/python27/lib64/python2.7/markupbase.pyR"ys		cCsdS(N((RR,((s//opt/alt/python27/lib64/python2.7/markupbase.pyR%�s(t__name__t
__module__t__doc__RRR
RRR#R/R!R R(RNRRRSRTR"R%(((s//opt/alt/python27/lib64/python2.7/markupbase.pyRs"					
	R	C		9		$	((
R\tretcompileR>RVR&R?R8R:R(((s//opt/alt/python27/lib64/python2.7/markupbase.pyt<module>s

?>