o 0¦i=9 ã @ sV d Z ddlZe d¡jZe d¡jZe d¡Ze d¡Ze d¡Z[G dd „ 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 @ sˆ e Zd ZdZdd„ Zdd„ Zdd„ Zdd „ Zd Zdd„ Z d!dd„Z d!dd„Zdd„ Zdd„ Z dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd S )"Ú ParserBaseziParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.c C s | j tu r tdƒ‚d S )Nz)_markupbase.ParserBase must be subclassed)Ú __class__r ÚRuntimeError©Úself© r ú2/opt/alt/python310/lib64/python3.10/_markupbase.pyÚ__init__ s ÿÿzParserBase.__init__c C s d| _ d| _d S )Né r ©ÚlinenoÚoffsetr r r r Úreset s zParserBase.resetc C s | j | jfS )z&Return current line number and offset.r r r r r Úgetpos$ s zParserBase.getposc C sd ||kr|S | j }| d||¡}|r(| j| | _| d||¡}||d | _|S | j| | | _|S )NÚ r )ÚrawdataÚcountr Úrindexr )r ÚiÚjr ZnlinesÚposr r r Ú updatepos, s ÿzParserBase.updateposÚ c C s´ | j }|d }|||d … dkr|d S |||d … dv r!dS t|ƒ}|||d … dkr4| |¡S || dkr?| |¡S | ||¡\}}|dk rM|S |d krTd | _||k rØ|| }|dkr~||d |… }|d kru| |¡ |d S | |¡ |d S |dv r�t||ƒ}|s‹dS | ¡ }n>|dv r�| ||¡\} }n1|| jv r§|d }n'|dkrÆ|d kr¸| |d |¡}n|d v rÂtd| ƒ‚tdƒ‚td|| ƒ‚|dk rÔ|S ||k sXdS )Né r ú>)ú-r éÿÿÿÿz--ú[r Zdoctyper z"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ> ÚelementÚlinkZlinktypeÚattlistz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)r ÚlenÚ parse_commentÚparse_marked_sectionÚ _scan_nameÚ_decl_othercharsZhandle_declÚunknown_declÚ_declstringlit_matchÚendÚ_parse_doctype_subsetÚAssertionError) r r r r ÚnZdecltypeÚcÚdataÚmÚnamer r r Úparse_declaration<