grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026î   f9ã@s}dZddlZejdƒjZejdƒjZejdƒZejdƒZejdƒZ[Gdd „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ÖeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd Z d d„Z ddd„Z ddd„Z dd„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.cCs"|jtkrtdƒ‚ndS)Nz)_markupbase.ParserBase must be subclassed)Ú __class__rÚ RuntimeError)Úself©rú0/opt/alt/python34/lib64/python3.4/_markupbase.pyÚ__init__szParserBase.__init__cCstdƒ‚dS)Nz.subclasses of ParserBase must override error())ÚNotImplementedError)rÚmessagerrrÚerror szParserBase.errorcCsd|_d|_dS)Nér)ÚlinenoÚoffset)rrrrÚreset$s zParserBase.resetcCs|j|jfS)z&Return current line number and offset.)r r)rrrrÚgetpos(szParserBase.getposcCs…||kr|S|j}|jd||ƒ}|rm|j||_|jd||ƒ}||d|_n|j|||_|S)NÚ r )ÚrawdataÚcountr Úrindexr)rÚiÚjrZnlinesÚposrrrÚ updatepos0s  zParserBase.updateposÚc CsR|j}|d}|||d…dkr5|dS|||d…dkrSdSt|ƒ}|||d…dkr†|j|ƒS||dkr£|j|ƒS|j||ƒ\}}|dkrË|S|d krãd|_nxh||krM||}|dkrM||d|…}|d kr8|j|ƒn |j|ƒ|dS|d kr�t||ƒ}|srdS|j ƒ}n¹|d kr¨|j||ƒ\} }n’||jkrÄ|d}nv|dkr%|d krõ|j |d|ƒ}q:|dkr|j d|ƒq:|j dƒn|j d||ƒ|dkræ|SqæWdS)Nér ú>ú-rz--ú[rZdoctypez"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÚattlistÚlinktypeÚlinkÚelementz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)rréÿÿÿÿr">úlinkrúelementrr") rÚlenÚ parse_commentÚparse_marked_sectionÚ _scan_nameÚ_decl_othercharsZ handle_declÚ unknown_declÚ_declstringlit_matchÚendÚ_parse_doctype_subsetr ) rrrrÚnZdecltypeÚcÚdataÚmÚnamerrrÚparse_declaration@sX                   zParserBase.parse_declarationr cCsè|j}|j|d|ƒ\}}|dkr5|S|d krZtj||dƒ}nD|dkrtj||dƒ}n|jd ||d|…ƒ|s¨dS|rÛ|jdƒ}|j||d|…ƒn|jdƒS)NérÚtempÚcdataÚignoreÚincludeÚrcdataÚifÚelseÚendifz+unknown status keyword %r in marked sectionr >r5r9r6úincludeúignore>úelseúifr<r") rr(Ú_markedsectioncloseÚsearchÚ_msmarkedsectioncloser Ústartr*r,)rrÚreportrZsectNamerÚmatchrrrr'’s    zParserBase.parse_marked_sectioncCs“|j}|||d…dkr3|jdƒntj||dƒ}|sSdS|r†|jdƒ}|j||d|…ƒn|jdƒS)Néz