o
9j=9 @ sV d Z ddlZedjZedjZedZedZedZ[G dd d Z dS )
zShared 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!ddZ
d!ddZdd 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 tdd S )Nz)_markupbase.ParserBase must be subclassed) __class__r RuntimeErrorself r "/usr/lib/python3.10/_markupbase.py__init__ s
zParserBase.__init__c C s d| _ d| _d S )N r linenooffsetr 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
)rawdatacountr rindexr
)r ijr nlinesposr r r updatepos, s zParserBase.updatepos c
C s | j }|d }||| dksJ d|||d dkr!|d S |||d dv r-dS t|}|||d dkr@| |S || d krK| |S | ||\}}|d
k rY|S |dkr`d| _||k r|| }|dkr||d | }|dkr| | |d S | | |d S |d
v rt||}|sdS | }n>|dv r| ||\} }n1|| jv r|d }n'|d kr|dkr|
|d |}n|dv rtd| tdtd|| |d
k r|S ||k sddS )N