f9c@s}dZddlZejdjZejdjZejdZejdZejdZ[Gdd d Z dS( uShared 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. iNu[a-zA-Z][-_.a-zA-Z0-9]*\s*u(\'[^\']*\'|"[^"]*")\s*u--\s*>u ]\s*]\s*>u]\s*>cBs|EeZdZdZddZddZddZdd Zd d Zd Z d dZ dddZ dddZ ddZ ddZddZddZddZddZd d!Zd"S(#u ParserBaseuiParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.cCs"|jtkrtdndS(Nu)_markupbase.ParserBase must be subclassed(u __class__u ParserBaseu RuntimeError(uself((u0/opt/alt/python33/lib64/python3.3/_markupbase.pyu__init__suParserBase.__init__cCstddS(Nu.subclasses of ParserBase must override error()(uNotImplementedError(uselfumessage((u0/opt/alt/python33/lib64/python3.3/_markupbase.pyuerror suParserBase.errorcCsd|_d|_dS(Nii(ulinenouoffset(uself((u0/opt/alt/python33/lib64/python3.3/_markupbase.pyureset$s uParserBase.resetcCs|j|jfS(u&Return current line number and offset.(ulinenouoffset(uself((u0/opt/alt/python33/lib64/python3.3/_markupbase.pyugetpos(suParserBase.getposcCs||kr|S|j}|jd||}|rm|j||_|jd||}||d|_n|j|||_|S(Nu i(urawdataucountulinenourindexuoffset(uselfuiujurawdataunlinesupos((u0/opt/alt/python33/lib64/python3.3/_markupbase.pyu updatepos0s  uParserBase.updateposuc CsR|j}|d}|||ddkr5|dS|||ddkrSdSt|}|||ddkr|j|S||dkr|j|S|j||\}}|dkr|S|d krd|_nxh||krM||}|dkrM||d|}|d kr8|j|n |j||dS|d krt||}|srdS|j }n|d kr|j||\} }n||jkr|d}nv|dkr%|d kr|j |d|}q:|dkr|j d|q:|j dn|j d|||dkr|SqWdS(Niiu>u-uu--u[iudoctypeu"'u4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZuattlistulinktypeulinkuelementu&unsupported '[' char in %s declarationu"unexpected '[' char in declarationu!unexpected %r char in declaration(u-uii>ulinktypeuattlistuelementulinki( urawdataulenu parse_commentuparse_marked_sectionu _scan_nameu_decl_othercharsu handle_declu unknown_declu_declstringlit_matchuendu_parse_doctype_subsetuerror( uselfuiurawdataujunudecltypeucudataumuname((u0/opt/alt/python33/lib64/python3.3/_markupbase.pyuparse_declaration@sX                   uParserBase.parse_declarationicCs|j}|j|d|\}}|dkr5|S|d krZtj||d}nD|dkrtj||d}n|jd ||d||sdS|r|jd}|j||d|n|jdS(Niiutempucdatauignoreuincludeurcdatauifuelseuendifu+unknown status keyword %r in marked sectioni>urcdataucdatauignoreutempuinclude>uendifuifuelsei( urawdatau _scan_nameu_markedsectioncloseusearchu_msmarkedsectioncloseuerrorustartu unknown_decluend(uselfuiureporturawdatausectNameujumatch((u0/opt/alt/python33/lib64/python3.3/_markupbase.pyuparse_marked_sections    uParserBase.parse_marked_sectioncCs|j}|||ddkr3|jdntj||d}|sSdS|r|jd}|j||d|n|jdS(Niu