Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/_markupbase.cpython-35.opt-1.pyc



Yf9@s}dZddlZejdjZejdjZejdZejdZejdZ[Gdd	d	Z	dS)
zShared support for scanning document type declarations in HTML and XHTML.

This module is used as a foundation for the html.parser module.  It has no
documented public API and should not be used directly.

Nz[a-zA-Z][-_.a-zA-Z0-9]*\s*z(\'[^\']*\'|"[^"]*")\s*z--\s*>z	]\s*]\s*>z]\s*>c@seZdZdZddZddZddZdd	Zd
dZdZ	d
dZ
dddZdddZddZ
ddZddZddZddZddZd d!Zd"S)#
ParserBaseziParser base class which provides some common support methods used
    by the SGML/HTML and XHTML parsers.cCs|jtkrtddS)Nz)_markupbase.ParserBase must be subclassed)	__class__rRuntimeError)selfr0/opt/alt/python35/lib64/python3.5/_markupbase.py__init__szParserBase.__init__cCstddS)Nz.subclasses of ParserBase must override error())NotImplementedError)rmessagerrrerror szParserBase.errorcCsd|_d|_dS)Nr)linenooffset)rrrrreset$s	zParserBase.resetcCs|j|jfS)z&Return current line number and offset.)r
r)rrrrgetpos(szParserBase.getposcCs||kr|S|j}|jd||}|rm|j||_|jd||}||d|_n|j|||_|S)N
r)rawdatacountr
rindexr)rijrZnlinesposrrr	updatepos0s	zParserBase.updateposc
CsO|j}|d}|||ddkr5|dS|||ddkrSdSt|}|||ddkr|j|S||dkr|j|S|j||\}}|dkr|S|d	krd|_xh||krJ||}|dkrJ||d|}|d	kr5|j|n
|j||dS|d
kr~t||}|sodS|j	}n|dkr|j||\}	}n||jkr|d}nv|dkr"|d	kr|j
|d|}q7|dkr|jd|q7|jdn|jd|||dkr|SqWdS)Nr>-rz--[rZdoctypez"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZattlistlinktypelinkelementz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)rrr">rr!rr r")rlen
parse_commentparse_marked_section
_scan_name_decl_othercharsZhandle_declunknown_decl_declstringlit_matchend_parse_doctype_subsetr)
rrrrnZdecltypecdatamnamerrrparse_declaration@sX	


	


zParserBase.parse_declarationrcCs|j}|j|d|\}}|dkr5|S|d
krZtj||d}nD|dkrtj||d}n|jd||d||sdS|r|jd}|j||d||jdS)Nrtempcdataignoreincludercdataifelseendifz+unknown status keyword %r in marked sectionr>r5r4r3r6r7>r9r8r:r")	rr&_markedsectionclosesearch_msmarkedsectioncloserstartr(r*)rrreportrZsectNamermatchrrrr%s	zParserBase.parse_marked_sectioncCs|j}|||ddkr0|jdtj||d}|sPdS|r|jd}|j||d||jdS)Nz<!--z"unexpected call to parse_comment()rrr")rr
_commentcloser<r>Zhandle_commentr*)rrr?rr@rrrrr$s	
zParserBase.parse_commentc
Cs|j}t|}|}x||kr||}|dkr|||d}|dkrddS|dkr|j||d|jd||d|krdS|d|krdS|||ddkr|j|dd	}|d	kr|Sq|j|d|\}}|dkr+dS|dkr\|j||d|jd|t|d|}	|	||}|d	kr|Sq|dkr|d|krdS|j|d|\}}|d	kr|S||dkr|d}q|dkr|d}x*||kr<||jr<|d}qW||kr}||dkr]|S|j|||jdqdSq|jr|d}q|j|||jd|qWdS)N<rrz<!z*unexpected char in internal subset (in %r)rAz<!--r?rrr!entitynotationz)unknown declaration %r in internal subsetZ_parse_doctype_%;]rz%unexpected char after internal subsetz%unexpected char %r in internal subsetr"r"r"r"r">rErr!rDr"r"r")rr#rrr$r&getattrisspace)
rrdeclstartposrr,rr-sr0methrrrr+sn	



z ParserBase._parse_doctype_subsetcCs_|j||\}}|dkr(dS|j}d||dkr[|jd|dSdS)Nrrr"r"r")r&rfind)rrrKr0rrrrr_parse_doctype_elements	z!ParserBase._parse_doctype_elementcCs=|j}|j||\}}|||d}|dkrEd	S|dkrY|dSx|j||\}}|dkr|S|||d}|dkrd
S|dkr)d||dkr|jd|d}ndSx(|||djr|d}qW||dsAdSn|j||\}}|||d}|s_d
S|dkrt||}|r|j}ndS|||d}|sdS|dkr!||ddkrdS|j|d|\}}|dkr|S|||d}|s!dS|dkr\|dSq\WdS)Nrrrr()z'"#r"r"r"r"r"r"r"r"r")rr&rNrJr)r*)rrrKrr0rr-r/rrr_parse_doctype_attlistsZ	z!ParserBase._parse_doctype_attlistcCs|j||\}}|dkr(|S|j}x|||d}|sRdS|dkrf|dS|dkrt||}|sdS|j}q4|j||\}}|dkr4|Sq4WdS)Nrrrz'"r"r")r&rr)r*)rrrKr0rrr-r/rrr_parse_doctype_notation=s$	z"ParserBase._parse_doctype_notationcCs<|j}|||ddkro|d}xE|||d}|sNdS|jrg|d}q0Pq0Wn|}|j||\}}|dkr|Sx|j||d}|sdS|dkrt||}|r|j}q4dSq|dkr|dS|j||\}}|dkr|SqWdS)	NrrFrz'"rr"r"r")rrJr&r)r*)rrrKrrr-r0r/rrr_parse_doctype_entityTs8	

z ParserBase._parse_doctype_entitycCs|j}t|}||kr%dSt||}|r|j}|j}|t||krldS|j|jfS|j|||jd|||ddS)Nrzexpected name token at %rr")Nr"r")Nr")	rr#_declname_matchgroupstriplowerr*rr)rrrKrr,r/rLr0rrrr&xs		zParserBase._scan_namecCsdS)Nr)rr.rrrr(szParserBase.unknown_declN)__name__
__module____qualname____doc__rrrrrr'r1r%r$r+rOrSrTrUr&r(rrrrrs"
RC9$r)
r^recompiler@rWr)rBr;r=rrrrr<module>s
Back to Directory File Manager