o ?Og=9@sVdZddlZedjZedjZedZedZedZ[Gdd 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@seZdZdZddZddZddZdd Zd Zd d Z d!ddZ d!ddZ ddZ ddZ ddZddZddZddZddZd S)" ParserBaseziParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.cCs|jtur tddS)Nz)_markupbase.ParserBase must be subclassed) __class__r RuntimeErrorselfr2/opt/alt/python310/lib64/python3.10/_markupbase.py__init__s zParserBase.__init__cCsd|_d|_dS)Nrlinenooffsetrrrrreset s zParserBase.resetcCs |j|jfS)z&Return current line number and offset.r rrrrgetpos$s zParserBase.getposcCsd||kr|S|j}|d||}|r(|j||_|d||}||d|_|S|j|||_|S)N r )rawdatacountr rindexr )rijrZnlinesposrrr updatepos,s zParserBase.updateposc Cs|j}|d}|||ddkr|dS|||ddvr!dSt|}|||ddkr4||S||dkr?||S|||\}}|dkrM|S|d krTd |_||kr||}|dkr~||d|}|d kru|||dS|||dS|d vrt||}|sdS| }n>|d vr|||\} }n1||jvr|d}n'|dkr|d kr| |d|}n|d vrt d|t dt d|||dkr|S||ksXdS)Nr >)-rz--[rZdoctyperz"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>linkZlinktypeattlistelementz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration) rlen parse_commentparse_marked_section _scan_name_decl_othercharsZ handle_decl unknown_decl_declstringlit_matchend_parse_doctype_subsetAssertionError) rrrrnZdecltypecdatamnamerrrparse_declaration<sZ           'zParserBase.parse_declarationr cCs|j}||d|\}}|dkr|S|dvr t||d}n|dvr-t||d}n td||d||s=dS|rO|d}|||d||dS)Nr>ZincludeZcdataZtempZrcdataignore>ifZendifelsez+unknown status keyword %r in marked sectionr) rr$_markedsectionclosesearch_msmarkedsectioncloser*startr&r()rrreportrZsectNamermatchrrrr#s"  zParserBase.parse_marked_sectioncCsh|j}|||ddkrtdt||d}|sdS|r/|d}|||d||dS)N