File: //lib64/python3.8/__pycache__/_markupbase.cpython-38.opt-1.pyc
U
e5d9 ã @ 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 ú#/usr/lib64/python3.8/_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Ú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 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 }|||d … dkr*|d S |||d … dkrBdS t|ƒ}|||d … dkrh| |¡S || dkr~| |¡S | ||¡\}}|dk rš|S |d kr¨d
| _||k r¾|| }|dkrø||d |… }|d kræ| |¡ n
| |¡ |d S |dkr t||ƒ}|sdS | ¡ }n|dkr<| ||¡\} }nt|| jkrR|d }n^|dkrž|d krx|
|d |¡}n$|d
kr’| d| ¡ n
| d¡ n| d|| ¡ |dk r¨|S q¨dS )Né r
ú>)ú-r éÿÿÿÿz--ú[r Zdoctyper z"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ> ÚlinktypeÚattlistÚelementÚlinkz&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_subsetr )
r r r r ÚnZdecltypeÚcÚdataÚmÚnamer r r Úparse_declaration@ sZ
ÿzParserBase.parse_declarationr
c C sª | j }| |d |¡\}}|dk r&|S |dkr@t ||d ¡}n4|dkrZt ||d ¡}n| d||d |… ¡ |s|dS |r | d¡}| ||d |… ¡ | d¡S )Né r > ÚrcdataÚtempÚignoreÚcdataÚinclude> ÚendifÚelseÚifz+unknown status keyword %r in marked sectionr ) r r( Ú_markedsectioncloseÚsearchÚ_msmarkedsectioncloser Ústartr* r, )r r Úreportr ZsectNamer Úmatchr r r r' ’ s
zParserBase.parse_marked_sectionc C sj | j }|||d … dkr$| d¡ t ||d ¡}|s<dS |r`| d¡}| ||d |… ¡ | d¡S )Né ú<!--z"unexpected call to parse_comment()r r )r r Ú
_commentcloser>