a �DOg9�@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|jturtd��dS)Nz)_markupbase.ParserBase must be subclassed)� __class__r� RuntimeError��self�r�#/usr/lib64/python3.9/_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�dvrBdSt|�}|||d�dkrh|�|�S||dkr~|�|�S|�||�\}}|dkr�|S|d kr�d |_||k�r�||}|dkr�||d|�}|d kr�|�|�n |�|�|dS|d v�r t||�}|�sdS|� �}n�|d v�r<|�||�\} }nt||jv�rR|d}n^|dk�r�|d k�rx|� |d|�}n$|d v�r�|� d|�n |� d�n|� d||�|dkr�|Sq�dS)N�r �>)�-r�����z--�[rZdoctyperz"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>�attlist�elementZlinktype�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|dvr@t�||d�}n8|dvrZt�||d�}n|�d||d|��d}|s�dS|r�|�d�}|�||d|��|�d�S)N�r>�ignoreZrcdataZincludeZcdataZtemp>�elseZendif�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)r<>Znotationr"r#Zentityz)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.rr/�sr2�methrrrr-�sp     �             z ParserBase._parse_doctype_subsetcCsF|�||�\}}|dkrdS|j}d||d�vrB|�d|�dSdS)Nr rr )r(r�find)rrrGr2rrrrr�_parse_doctype_element�sz!ParserBase._parse_doctype_elementcCs�|j}|�||�\}}|||d�}|dkr2dS|dkrB|dS|�||�\}}|dkr^|S|||d�}|dkrzdS|dkr�d||d�vr�|�d|�d}ndS|||d���r�|d}q�||d�s�dSn|�||�\}}|||d�}|�sdS|dv�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(rJrFr+r,)rrrGrr2rr/r1rrr�_parse_doctype_attlistsX       z!ParserBase._parse_doctype_attlistcCs�|�||�\}}|dkr|S|j}|||d�}|s:dS|dkrJ|dS|dvrnt||�}|sddS|��}q"|�||�\}}|dkr"|Sq"dS)Nrr r rrN)r(rr+r,)rrrGr2rrr/r1rrr�_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|dvr�t||�}|r�|��}q�dSqr|dkr�|dS|�||�\}}|dkrr|SqrdS)Nr rBr rrNr)rrFr(r+r,)rrrGrrr/r2r1rrr�_parse_doctype_entityUs4   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 )rrrGrr.r1rHr2rrrr(ys  �zParserBase._scan_namecCsdSrr)rr0rrrr*�szParserBase.unknown_declN)r )r )�__name__� __module__� __qualname__r r rrrr)r3r'r&r-rKrPrQrRr(r*rrrrrs  R  C 9$r) �re�compiler=rTr+r@r8r:rrrrr�s