3 \9�@sRddlZejd�jZejd�jZejd�Zejd�Zejd�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.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)N)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�|d k�rB|j||�\} }nt||jk�rX|d}n^|dk�r�|d k�r~|j |d|�}n$|dk�r�|j d|�n |j d�n|j d||�|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 rrr!r") 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@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 >r6r4r7r3r5>r8r9r:r") rr&�_markedsectionclose�search�_msmarkedsectioncloser �startr(r*)rr�reportrZsectNamer�matchrrrr%�s zParserBase.parse_marked_sectioncCsj|j}|||d�dkr$|jd�tj||d�}|sZhandle_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�rDrErr!r"r"r")rr#rr r$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}nd Sx |||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�}|ss