� !A?h=9 � �� � d Z ddlZ ej d� � j Z ej d� � j Z ej d� � Z ej d� � Z ej d� � Z[ G d� 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 �n � e Zd ZdZd� Zd� Zd� Zd� ZdZd� Z dd �Z dd �Zd� Zd� Z d � Zd� Zd� Zd� Zd� ZdS )� ParserBaseziParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.c �@ � | j t u rt d� � �d S )Nz)_markupbase.ParserBase must be subclassed)� __class__r �RuntimeError��selfs �8/opt/alt/python-internal/lib64/python3.11/_markupbase.py�__init__zParserBase.__init__ s, � ��>�Z�'�'��;�=� =� =� (�'� c �" � d| _ d| _ d S )N� r ��lineno�offsetr s r �resetzParserBase.reset s � ��������r c � � | j | j fS )z&Return current line number and offset.r r s r �getposzParserBase.getpos$ s � ��{�D�K�'�'r c �� � ||k r|S | j }|� d||� � }|r4| j |z | _ |� d||� � }||dz z | _ n| j |z |z | _ |S )N� r )�rawdata�countr �rindexr )r �i�jr �nlines�poss r � updateposzParserBase.updatepos, s � ���6�6��H��,�����t�Q��*�*��� ,��+��.�D�K��.�.��q�!�,�,�C��S��U�)�D�K�K��+��/�!�+�D�K��r � c �� � | j }|dz }|||� dk s J d� � �|||dz � dk r|dz S |||dz � dv rdS t |� � }|||dz � dk r| � |� � S || d k r| � |� � S | � ||� � \ }}|d k r|S |dk rd| _ ||k �r|| }|dk rC||dz |� }|dk r| � |� � n| � |� � |dz S |d v r)t ||� � }|sdS |� � � }n�|dv r| � ||� � \ } }nr|| j v r|dz }nc|d k rE|dk r| � |dz |� � }n=|dv rt d|z � � �t d� � �t d|| z � � �|d k r|S ||k ��dS )N� �