\d=9dZddlZejdjZejdjZejdZejdZejdZ[Gdd 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*>cneZdZdZdZdZdZdZdZdZ dd Z dd Z d Z d Z d ZdZdZdZdZdS) ParserBaseziParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.c@|jturtddS)Nz)_markupbase.ParserBase must be subclassed) __class__r RuntimeErrorselfs ..\python\lib\_markupbase.py__init__zParserBase.__init__s, >Z ' ';== = ( 'c"d|_d|_dS)Nrlinenooffsetrs r resetzParserBase.reset s  r c|j|jfS)z&Return current line number and offset.rrs r getposzParserBase.getpos$s{DK''r c||kr|S|j}|d||}|r4|j|z|_|d||}||dzz |_n|j|z|z |_|S)N r)rawdatacountrrindexr)r ijrnlinesposs r updateposzParserBase.updatepos,s 66H,tQ**  ,+.DK..q!,,CSU)DKK+/!+DKr c|j}|dz}|||dks Jd|||dzdkr|dzS|||dzdvrdSt|}|||dzdkr||S||d kr||S|||\}}|d kr|S|d krd |_||kr||}|dkrC||dz|}|d kr||n|||dzS|d vr)t||}|sdS| }n|dvr|||\} }nr||jvr|dz}nc|d krE|d kr| |dz|}n=|dvrtd|ztdtd||z|d kr|S||kdS)N)-rz--[rdoctyperz"'4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>linkattlistelementlinktypez&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration) rlen parse_commentparse_marked_section _scan_name_decl_otherchars handle_decl unknown_decl_declstringlit_matchend_parse_doctype_subsetAssertionError) r rrrndecltypecdatamnames r parse_declarationzParserBase.parse_declaration<s, Eqs|t###%K### 1QqS5>S q5L 1QqS5>Y & &2 LL 1QqS5>T ! !%%a(( ( QZ3   ,,Q// ///!Q//KHa q55H y $&D !!ee ACxxqs1u~y(($$T**** %%d+++1u Ezz(!442EEGGLLL//!Q//aad+++Ecy((221q5!<tempcdataignorercdatainclude>ifelseendifz+unknown status keyword %r in marked sectionr%) rr0_markedsectionclosesearch_msmarkedsectioncloser7startr3r5)r rreportrsectNamermatchs r r/zParserBase.parse_marked_sections"q1u~&&&(S&&&ooqsA// ! q55H G G G&--gqs;;EE 0 0 0(//1==EE =!AN  2  / AA   gac1fo . . .yy||r c,|j}|||dzdkrtdt||dz}|sdS|r5|d}|||dz||dS)N