Your IP : 18.221.87.37


Current Path : /lib64/python3.6/__pycache__/
Upload File :
Current File : //lib64/python3.6/__pycache__/_markupbase.cpython-36.opt-1.pyc

3


 \9�@sVdZddlZejd�jZejd�jZejd�Zejd�Zejd�Z[Gdd	�d	�Z	dS)
z�Shared 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@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdZ	d
d�Z
d#dd�Zd$dd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"S)%�
ParserBaseziParser base class which provides some common support methods used
    by the SGML/HTML and XHTML parsers.cCs|jtkrtd��dS)Nz)_markupbase.ParserBase must be subclassed)�	__class__r�RuntimeError)�self�r�#/usr/lib64/python3.6/_markupbase.py�__init__s
zParserBase.__init__cCstd��dS)Nz.subclasses of ParserBase must override error())�NotImplementedError)r�messagerrr�error szParserBase.errorcCsd|_d|_dS)N�r)�lineno�offset)rrrr�reset$szParserBase.resetcCs|j|jfS)z&Return current line number and offset.)r
r)rrrr�getpos(szParserBase.getposcCsb||kr|S|j}|jd||�}|rN|j||_|jd||�}||d|_n|j|||_|S)N�
r)�rawdata�countr
�rindexr)r�i�jrZnlines�posrrr�	updatepos0szParserBase.updatepos�c
Cs�|j}|d}|||d�dkr*|dS|||d�dkrBdSt|�}|||d�dkrh|j|�S||dkr~|j|�S|j||�\}}|dkr�|S|d	kr�d|_�x||k�r�||}|dk�r�||d|�}|d	kr�|j|�n
|j|�|dS|d
k�r&t||�}|�sdS|j	�}n�|dk�rB|j||�\}	}nt||jk�rX|d}n^|dk�r�|d	k�r~|j
|d|�}n$|dk�r�|jd|�n
|jd�n|jd||�|dkr�|Sq�WdS)N�r�>�-rz--�[rZdoctypez"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ�attlist�linktype�link�elementz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)rr���r">r rr!rr")r�len�
parse_comment�parse_marked_section�
_scan_name�_decl_othercharsZhandle_decl�unknown_decl�_declstringlit_match�end�_parse_doctype_subsetr)
rrrr�nZdecltype�c�data�m�namerrr�parse_declaration@sX











zParserBase.parse_declarationrcCs�|j}|j|d|�\}}|dkr&|S|d
kr@tj||d�}n4|dkrZtj||d�}n|jd||d|��|s|dS|r�|jd�}|j||d|��|jd�S)N�r�temp�cdata�ignore�include�rcdata�if�else�endifz+unknown status keyword %r in marked sectionr>r4r3r5r6r7>r9r8r:r")	rr&�_markedsectionclose�search�_msmarkedsectioncloser�startr(r*)rr�reportrZsectNamer�matchrrrr%�s
zParserBase.parse_marked_sectioncCsj|j}|||d�dkr$|jd�tj||d�}|s<dS|r`|jd�}|j||d|��|jd�S)N�z<!--z"unexpected call to parse_comment()rrr")rr�
_commentcloser<r>Zhandle_commentr*)rrr?rr@rrrrr$�s

zParserBase.parse_commentc
Cs4|j}t|�}|}�x||k�r.||}|dk�r4|||d�}|dkrNdS|dkrt|j||d�|jd|�|d|kr�dS|d|kr�dS|||d�dkr�|j|dd	�}|dkr|Sq|j|d|�\}}|dkr�dS|dk�r|j||d�|jd|�t|d|�}	|	||�}|dk�r,|Sq|dk�r�|d|k�rPdS|j|d|�\}}|dk�rr|S||dk�r,|d}q|dk�r�|d}x&||k�r�||j��r�|d}�q�W||k�r�||dk�r�|S|j||�|jd�ndSq|j��r|d}q|j||�|jd|�qWdS)N�<rrz<!z*unexpected char in internal subset (in %r)rAz<!--r)r?rr!�entity�notationz)unknown declaration %r in internal subsetZ_parse_doctype_�%�;�]rz%unexpected char after internal subsetz%unexpected char %r in internal subsetr"r"r"r"r">rDrEr!rr"r"r")rr#rrr$r&�getattr�isspace)
rr�declstartposrr,rr-�sr0�methrrrr+�sn











z ParserBase._parse_doctype_subsetcCsF|j||�\}}|dkrdS|j}d||d�krB|jd|�dSdS)Nrrr"r"r")r&r�find)rrrKr0rrrrr�_parse_doctype_element�sz!ParserBase._parse_doctype_elementcCs�|j}|j||�\}}|||d�}|dkr2d	S|dkrB|dS�xv|j||�\}}|dkrb|S|||d�}|dkr~d
S|dkr�d||d�kr�|jd|�d}ndSx |||d�j�r�|d}q�W||d�s�dSn|j||�\}}|||d�}|�s
d
S|dk�rLt||�}|�r.|j�}ndS|||d�}|�sLdS|dk�r�||d�dk�rldS|j|d|�\}}|dk�r�|S|||d�}|�s�dS|dkrF|dSqFWdS)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}xl|||d�}|s<dS|dkrL|dS|dkrpt||�}|sfdS|j�}q$|j||�\}}|dkr$|Sq$WdS)Nrrrz'"r"r")r&rr)r*)rrrKr0rrr-r/rrr�_parse_doctype_notation=s$

z"ParserBase._parse_doctype_notationcCs�|j}|||d�dkrV|d}x6|||d�}|s<dS|j�rN|d}q$Pq$Wn|}|j||�\}}|dkrv|Sxp|j||d�}|s�dS|dkr�t||�}|r�|j�}q�dSqx|dkr�|dS|j||�\}}|dkrx|SqxWdS)	NrrFrz'"rr"r"r")rrJr&r)r*)rrrKrrr-r0r/rrr�_parse_doctype_entityTs8


z ParserBase._parse_doctype_entitycCs�|j}t|�}||krdSt||�}|r\|j�}|j�}|t|�|krLdS|j�|j�fS|j||�|jd|||d��dS)Nrzexpected name token at %r�r")Nr"r")Nr")	rr#�_declname_match�group�strip�lowerr*rr)rrrKrr,r/rLr0rrrr&xs
zParserBase._scan_namecCsdS)Nr)rr.rrrr(�szParserBase.unknown_declN)r)r)�__name__�
__module__�__qualname__�__doc__rrrrrr'r1r%r$r+rOrSrTrUr&r(rrrrrs"
R

C9$r)
r^�re�compiler@rWr)rBr;r=rrrrr�<module>s