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}|||dksJd|||ddkr!|dS|||ddvr-dSt|}|||ddkr@||S||d krK||S|||\}}|d krY|S|d kr`d |_||kr||}|dkr||d|}|d kr|||dS|||dS|d vrt||}|sdS| }n>|dvr|||\} }n1||jvr|d}n'|d kr|d kr| |d|}n|dvrt d|t dt d|||d kr|S||ksddS)N)-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<s\           'zParserBase.parse_declarationr cCs|j}|||ddksJd||d|\}}|dkr!|S|dvr.t||d}n|dvr;t||d}n td||d||sKdS|r]|d}|||d||dS) NzZincludeZcdataZtempZrcdataignore>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