3 \9 ã @ sV d Z ddlZejdƒjZejdƒjZejdƒZejdƒZejdƒ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 d„ ZdZ d d„ Z d#dd„Zd$dd„Zdd„ Z dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"S )%Ú ParserBaseziParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.c C s | j tkrtdƒ‚d S )Nz)_markupbase.ParserBase must be subclassed)Ú __class__r ÚRuntimeError)Úself© r ú#/usr/lib64/python3.6/_markupbase.pyÚ__init__ s zParserBase.__init__c C s t dƒ‚d S )Nz.subclasses of ParserBase must override error())ÚNotImplementedError)r Úmessager r r Úerror s zParserBase.errorc C s d| _ d| _d S )Né r )ÚlinenoÚoffset)r r r r Úreset$ s zParserBase.resetc C s | j | jfS )z&Return current line number and offset.)r r )r r r r Úgetpos( s zParserBase.getposc C sb ||kr|S | j }|jd||ƒ}|rN| j| | _|jd||ƒ}||d | _n| j| | | _|S )NÚ r )ÚrawdataÚcountr Úrindexr )r ÚiÚjr ZnlinesÚposr r r Ú updatepos0 s zParserBase.updateposÚ c C sä | j }|d }|||… dks&tdƒ‚|||d … dkrB|d S |||d … dkrZdS t|ƒ}|||d … dkr€| j|ƒS || d kr–| j|ƒS | j||ƒ\}}|d k r²|S |dkrÀd| _�x||k �rÞ|| }|dk�r||d |… }|dk�r| j|ƒ n | j|ƒ |d S |dk�r@t ||ƒ}|�s6dS |j ƒ }n�|d k�r\| j||ƒ\} }nt|| jk�rr|d }n^|d k�r¾|dk�r˜| j|d |ƒ}n$|dk�r²| jd| ƒ n | jdƒ n| jd|| ƒ |d k rÄ|S qÄW dS )Né z