Your IP : 3.143.244.45


Current Path : /lib64/python2.7/
Upload File :
Current File : //lib64/python2.7/markupbase.pyo

�
�mec@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"/usr/lib64/python2.7/markupbase.pyt__init__scCstd��dS(Ns.subclasses of ParserBase must override error()(tNotImplementedError(Rtmessage((s"/usr/lib64/python2.7/markupbase.pyterror!scCsd|_d|_dS(Nii(tlinenotoffset(R((s"/usr/lib64/python2.7/markupbase.pytreset%s	cCs|j|jfS(s&Return current line number and offset.(RR	(R((s"/usr/lib64/python2.7/markupbase.pytgetpos)scCs�||kr|S|j}|jd||�}|rm|j||_|jd||�}||d|_n|j|||_|S(Ns
i(trawdatatcountRtrindexR	(RtitjRtnlinestpos((s"/usr/lib64/python2.7/markupbase.pyt	updatepos1s	tc
CsF|j}|d}|||d!dkr2|dS|||d!dkrMdSt|�}|||d!dkr}|j|�S||dkr�|j|�S|j||�\}}|d	kr�|S|d
kr�d|_nxe||krA||}|dkrA||d|!}|d
kr,|j|�n
|j|�|dS|dkrut||�}|sfdS|j	�}n�|dkr�|j||�\}	}n�||jkr�|d}nv|dkr|d
kr�|j
|d|�}q.|dkr	|jd|�q.|jd�n|jd||�|d	kr�|Sq�WdS(Niit>t-Ri����s--t[itdoctypes"'t4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZtattlisttlinktypetlinktelements&unsupported '[' char in %s declarations"unexpected '[' char in declarations!unexpected %r char in declaration(RR(RRslinkselement(Rtlent
parse_commenttparse_marked_sectiont
_scan_namet_decl_othercharsthandle_decltunknown_declt_declstringlit_matchtendt_parse_doctype_subsetR(
RRRRtntdecltypetctdatatmtname((s"/usr/lib64/python2.7/markupbase.pytparse_declarationAsX	





icCs�|j}|j|d|�\}}|dkr5|S|d
krZtj||d�}nA|dkrtj||d�}n|jd||d|!�|s�dS|r�|jd�}|j||d|!�n|jd�S(Niittemptcdatatignoretincludetrcdatatiftelsetendifs+unknown status keyword %r in marked sectioni����(R/R0signoresincludeR3(R4R5R6(	RR!t_markedsectionclosetsearcht_msmarkedsectioncloseRtstartR$R&(RRtreportRtsectNameRtmatch((s"/usr/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
_commentcloseR8R:thandle_commentR&(RRR;RR=R((s"/usr/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(sattlistselementRARB(RRRRRR!tgetattrtisspace(
RRtdeclstartposRR(RR*tsR-tmeth((s"/usr/lib64/python2.7/markupbase.pyR'�sn	


cCsY|j||�\}}|dkr(dS|j}d||krU|jd|�dSdS(Ni����Ri(R!Rtfind(RRRIR-RR((s"/usr/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|dSqYdS(
NiRi����Rit(t)s'"t#(RR!RLRHR%R&(RRRIRR-RR*R,((s"/usr/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|Sq4dS(Niii����Rs'"(R!RR%R&(RRRIR-RRR*R,((s"/usr/lib64/python2.7/markupbase.pyt_parse_doctype_notation>s$	cCs1|j}|||d!dkrh|d}xA|||d!}|sHdS|j�ra|d}q-Pq-n|}|j||�\}}|dkr�|Sx�|j||d!}|s�dS|dkr�t||�}|r�|j�}q*dSq�|dkr|dS|j||�\}}|dkr�|Sq�dS(NiRDi����is'"R(RRHR!R%R&(RRRIRRR*R-R,((s"/usr/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(RRRIRR(R,RJR-((s"/usr/lib64/python2.7/markupbase.pyR!ys		cCsdS(N((RR+((s"/usr/lib64/python2.7/markupbase.pyR$�s(t__name__t
__module__t__doc__RRR
RRR"R.R RR'RMRQRRRSR!R$(((s"/usr/lib64/python2.7/markupbase.pyRs"					
	R	C		9		$	((
R[tretcompileR=RUR%R>R7R9R(((s"/usr/lib64/python2.7/markupbase.pyt<module>s