U e5d9�@sRddlZe�d�jZe�d�jZe�d�Ze�d�Ze�d�Z[Gdd�d�ZdS) �Nz[a-zA-Z][-_.a-zA-Z0-9]*\s*z(\'[^\']*\'|"[^"]*")\s*z--\s*>z ]\s*]\s*>z]\s*>c@s�eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd Zd d �Z d"dd�Z d#dd�Z dd�Z dd�Z dd�Zdd�Zdd�Zdd�Zdd �Zd!S)$� ParserBasecCs|jtkrtd��dS)Nz)_markupbase.ParserBase must be subclassed)� __class__r� RuntimeError��self�r�#/usr/lib64/python3.8/_markupbase.py�__init__s �zParserBase.__init__cCs td��dS)Nz.subclasses of ParserBase must override error())�NotImplementedError)r�messagerrr�error s�zParserBase.errorcCsd|_d|_dS)N�r��lineno�offsetrrrr�reset$szParserBase.resetcCs |j|jfS�Nrrrrr�getpos(szParserBase.getposcCsb||kr |S|j}|�d||�}|rN|j||_|�d||�}||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|�|�S||dkr~|�|�S|�||�\}}|dkr�|S|d kr�d |_||k�r�||}|dkr�||d|�}|d kr�|�|�n |�|�|dS|d k�r t||�}|�sdS|� �}n�|d k�r<|�||�\} }nt||jk�rR|d}n^|dk�r�|d k�rx|� |d|�}n$|d k�r�|� d|�n |� d�n|� d||�|dkr�|Sq�dS)N�r �>)�-r�����z--�[rZdoctyperz"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>�linktype�attlist�element�linkz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration) r�len� parse_comment�parse_marked_section� _scan_name�_decl_othercharsZ handle_decl� unknown_decl�_declstringlit_match�end�_parse_doctype_subsetr ) rrrr�nZdecltype�c�data�m�namerrr�parse_declaration@sZ                  �zParserBase.parse_declarationr cCs�|j}|�|d|�\}}|dkr&|S|dkr@t�||d�}n4|dkrZt�||d�}n|�d||d|��|s|dS|r�|�d�}|�||d|��|�d�S)N�r>�rcdata�temp�ignore�cdata�include>�endif�else�ifz+unknown status keyword %r in marked sectionr ) rr)�_markedsectionclose�search�_msmarkedsectioncloser �startr+r-)rr�reportrZsectNamer�matchrrrr(�s zParserBase.parse_marked_sectioncCsj|j}|||d�dkr$|�d�t�||d�}|sr$r#�notation�entityz)unknown declaration %r in internal subsetZ_parse_doctype_�%�;�]rz%unexpected char after internal subsetz%unexpected char %r in internal subset)rr&rr r'r)�getattr�isspace) rr� declstartposrr/rr0�sr3Zmethrrrr.�sp     �             z ParserBase._parse_doctype_subsetcCsF|�||�\}}|dkrdS|j}d||d�krB|�d|�dSdS)Nr rr )r)r�find)rrrOr3rrrrr�_parse_doctype_element�sz!ParserBase._parse_doctype_elementcCs�|j}|�||�\}}|||d�}|dkr2dS|dkrB|dS|�||�\}}|dkr^|S|||d�}|dkrzdS|dkr�d||d�kr�|�d|�d}ndS|||d���r�|d}q�||d�s�dSn|�||�\}}|||d�}|�sdS|dk�rDt||�}|�r&|��}ndS|||d�}|�sDdS|d k�r�||d�d k�rddS|�|d|�\}}|dk�r�|S|||d�}|�s�dS|dkrB|dSqBdS) Nr rr rr�(�)�'"�#)rr)rQrNr,r-)rrrOrr3rr0r2rrr�_parse_doctype_attlistsX       z!ParserBase._parse_doctype_attlistcCs�|�||�\}}|dkr|S|j}|||d�}|s:dS|dkrJ|dS|dkrnt||�}|sddS|��}q"|�||�\}}|dkr"|Sq"dS)Nrr r rrU)r)rr,r-)rrrOr3rrr0r2rrr�_parse_doctype_notation=s"  z"ParserBase._parse_doctype_notationcCs�|j}|||d�dkrR|d}|||d�}|s:dS|��rP|d}q"qVq"n|}|�||�\}}|dkrr|S|j||d�}|s�dS|dkr�t||�}|r�|��}q�dSqr|dkr�|dS|�||�\}}|dkrr|SqrdS)Nr rJr rrUr)rrNr)r,r-)rrrOrrr0r3r2rrr�_parse_doctype_entityTs4   z ParserBase._parse_doctype_entitycCs�|j}t|�}||krdSt||�}|r\|��}|��}|t|�|krLdS|��|��fS|�||�|�d|||d��dS)N)Nr zexpected name token at %r�) rr&�_declname_match�group�strip�lowerr-rr )rrrOrr/r2rPr3rrrr)xs  �zParserBase._scan_namecCsdSrr)rr1rrrr+�szParserBase.unknown_declN)r )r )�__name__� __module__� __qualname__r r rrrr*r4r(r'r.rRrWrXrYr)r+rrrrrs  R  C 9$r) �re�compilerCr[r,rFr>r@rrrrr�s