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 }|||d … dkr*|d S |||d … dkrBdS t|ƒ}|||d … dkrh| j|ƒS || dkr~| j|ƒS | j||ƒ\}}|dk rš|S |d kr¨d| _�x||k �rÄ|| }|dk� rþ||d |… }|d krì| j|ƒ n | j|ƒ |d S |d k�r&t||ƒ}|�sdS |j ƒ }n�|dk�rB| j||ƒ\} }nt|| jk�rX|d }n^|dk�r¤|d k�r~| j |d |ƒ}n$|dk�r˜| jd| ƒ n | jdƒ n| jd|| ƒ |dk r¬|S q¬W dS )Né r ú>ú-r z--ú[r Zdoctypez"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÚattlistÚlinktypeÚlinkÚelementz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)r r éÿÿÿÿr" > r r r r! r" )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@ sX zParserBase.parse_declarationr c C sª | j }| j|d |ƒ\}}|dk r&|S |d kr@tj||d ƒ}n4|dkrZtj||d ƒ}n| jd||d |… ƒ |s|dS |r |jdƒ}| j||d |… ƒ |jdƒS )Né r ÚtempÚcdataÚignoreÚincludeÚrcdataÚifÚelseÚendifz+unknown status keyword %r in marked sectionr > r6 r4 r7 r3 r5 > r8 r9 r: r" ) r r&