� !A?h=9����dZddlZejd��jZejd��jZejd��Zejd��Zejd��Z[Gd�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�eZdZdZd�Zd�Zd�Zd�ZdZd�Z dd �Z dd �Z d �Z d �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�@�|jturtd���dS)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|_dS)N�r��lineno�offsetrs r �resetzParserBase.reset s���� ��� � � r c��|j|jfS)z&Return current line number and offset.rrs r �getposzParserBase.getpos$s���{�D�K�'�'r c���||kr|S|j}|�d||��}|r4|j|z|_|�d||��}||dzz |_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}|||�dks Jd���|||dz�dkr|dzS|||dz�dvrdSt|��}|||dz�dkr|�|��S||d kr|�|��S|�||��\}}|d kr|S|d krd |_||k�r||}|dkrC||dz|�}|d kr|�|��n|�|��|dzS|d vr)t||��}|sdS|� ��}n�|dvr|�||��\} }nr||jvr|dz}nc|d krE|d kr|� |dz|��}n=|dvrtd|z���td���td||z���|d kr|S||k��dS)N��)�-r�����z--�[r�doctyperz"'�4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>�link�attlist�element�linktypez&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration) r�len� parse_comment�parse_marked_section� _scan_name�_decl_otherchars� handle_decl� unknown_decl�_declstringlit_match�end�_parse_doctype_subset�AssertionError) r rrr�n�decltype�c�data�m�names r �parse_declarationzParserBase.parse_declaration<s����,�� ��E���q��s�|�t�#�#�#�%K�#�#�#� �1�Q�q�S�5�>�S� � ��q�5�L� �1�Q�q�S�5�>�Y� &� &��2� ��L�L�� �1�Q�q�S�5�>�T� !� !��%�%�a�(�(� (� �Q�Z�3� � � �,�,�Q�/�/� /��/�/�!�Q�/�/�K�H�a� �q�5�5��H� �y� � �$&�D� !��!�e�e��� �A��C�x�x��q��s�1�u�~���y�(�(��$�$�T�*�*�*�*� �%�%�d�+�+�+��1�u� ��E�z�z�(��!�4�4�����2��E�E�G�G����L�L�L��/�/�!�Q�/�/���a�a��d�+�+�+���E����c����y�(�(��2�2�1�q�5�!�<�<�A�A��!K�K�K� )�)Q�T\�)\�]�]�]�(�)M�N�N�N�$�%H�7�ST�:�%U�V�V�V��1�u�u���M�!�e�e�N�rr rc���|j}|||dz�dks Jd���|�|dz|��\}}|dkr|S|dvrt�||dz��}n@|dvrt�||dz��}nt d||dz|�z���|sdS|r5|�d��}|�||dz|���|�d��S) N�z�temp�cdata�ignore�rcdata�include>�if�else�endifz+unknown status keyword %r in marked sectionr%) rr0�_markedsectionclose�search�_msmarkedsectioncloser7�startr3r5)r r�reportr�sectNamer�matchs r r/zParserBase.parse_marked_section�s"������q��1��u�~��&�&�&�(S�&�&�&��o�o�q��s�A�/�/� ��!� �q�5�5��H� �G� G� G�&�-�-�g�q��s�;�;�E�E� �0� 0� 0�(�/�/���1��=�=�E�E� �=���!��A���N��� �� ��2� � /�� � �A���A� � � �g�a��c�1�f�o� .� .� .��y�y��|�|�r c�,�|j}|||dz�dkrtd���t�||dz��}|sdS|r5|�d��}|�||dz|���|�d��S)N��