B
f9 ã @ 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
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 ú0/opt/alt/python37/lib64/python3.7/_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 }| d||¡}|rN| j| | _| d||¡}||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€| |¡S || d kr–| |¡S | ||¡\}}|d
k r²|S |dkrÀd| _x||k rÞ|| }|dkr||d |… }|dkr| |¡ n
| |¡ |d S |d
kr@t ||ƒ}|s6dS |
¡ }n|dkr\| ||¡\} }nt|| jkrr|d }n^|d kr¾|dkr˜| |d |¡}n$|dkr²| d| ¡ n
| d¡ n| d|| ¡ |d
k rÄ|S qÄW dS )Né z