£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
     f9                 @   sV   d Z ddlZedjZedjZedZedZedZ[G dd	 d	Z	dS )
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               @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdZ	dd Z
d#ddZd$ddZdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"S )%
ParserBaseziParser base class which provides some common support methods used
    by the SGML/HTML and XHTML parsers.c             C   s   | j tkrtdd S )Nz)_markupbase.ParserBase must be subclassed)	__class__r   RuntimeError)self r   0/opt/alt/python37/lib64/python3.7/_markupbase.py__init__   s    
zParserBase.__init__c             C   s   t dd S )Nz.subclasses of ParserBase must override error())NotImplementedError)r   messager   r   r   error    s    zParserBase.errorc             C   s   d| _ d| _d S )N   r   )linenooffset)r   r   r   r   reset$   s    zParserBase.resetc             C   s   | j | jfS )z&Return current line number and offset.)r   r   )r   r   r   r   getpos(   s    zParserBase.getposc             C   sb   ||kr|S | j }|d||}|rN| j| | _|d||}||d  | _n| j| | | _|S )N
r   )rawdatacountr   rindexr   )r   ijr   Znlinesposr   r   r   	updatepos0   s    zParserBase.updatepos c       
      C   s  | j }|d }|||d  dkr*|d S |||d  dkrBdS t|}|||d  dkrh| |S || dkr~| |S | ||\}}|dk r|S |d	krd
| _x||k r|| }|dk r||d | }|d	kr| | n
| | |d S |dkr&t||}|sdS |	 }n|dkrB| ||\}	}nt|| jkrX|d }n^|dkr|d	kr~| 
|d |}n$|dkr| d|  n
| d n| d||   |dk r|S qW dS )N   r   >)-r   z--[r   Zdoctyper   z"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>   attlistelementlinklinktypez&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)r   lenparse_commentparse_marked_section
_scan_name_decl_othercharsZhandle_declunknown_decl_declstringlit_matchend_parse_doctype_subsetr   )
r   r   r   r   nZdecltypecdatamnamer   r   r   parse_declaration@   sX    











zParserBase.parse_declarationr   c             C   s   | j }| |d |\}}|dk r&|S |dkr@t||d }n4|dkrZt||d }n| d||d |   |s|dS |r|d}| ||d |  |dS )N   r   >   rcdatatempincludeignorecdata>   elseifendifz+unknown status keyword %r in marked sectionr   )	r   r&   _markedsectionclosesearch_msmarkedsectioncloser   startr(   r*   )r   r   reportr   ZsectNamer   matchr   r   r   r%      s    
zParserBase.parse_marked_sectionc             C   sj   | j }|||d  dkr$| d t||d }|s<dS |r`|d}| ||d |  |dS )N   z<!--z"unexpected call to parse_comment()r   r   )r   r   _commentcloser<   r>   Zhandle_commentr*   )r   r   r?   r   r@   r   r   r   r   r$      s    

zParserBase.parse_commentc       
      C   s4  | j }t|}|}x||k r.|| }|dkr4|||d  }|dkrNdS |dkrt| ||d  | d|  |d |krdS |d |krdS |||d  dkr| j|d	d
}|d	k r|S q| |d |\}}|dkrdS |dkr| ||d  | d|  t| d| }	|	||}|d	k r,|S q|dkr|d |krPdS | |d |\}}|d	k rr|S || dkr,|d }q|dkr|d }x&||k r||  r|d }qW ||k r|| dkr|S | || | d ndS q| r|d }q| || | d|  qW dS )N<r   r   z<!r   z*unexpected char in internal subset (in %r)rA   z<!--r   )r?   >   r   entitynotationr    z)unknown declaration %r in internal subsetZ_parse_doctype_%;]r   z%unexpected char after internal subsetz%unexpected char %r in internal subset)r   r#   r   r   r$   r&   getattrisspace)
r   r   declstartposr   r,   r   r-   sr0   Zmethr   r   r   r+      sn    











z ParserBase._parse_doctype_subsetc             C   sF   |  ||\}}|dkrdS | j}d||d  krB|d|d S dS )Nr   r   r   )r&   r   find)r   r   rK   r0   r   r   r   r   r   _parse_doctype_element   s    z!ParserBase._parse_doctype_elementc             C   s  | j }| ||\}}|||d  }|dkr2dS |dkrB|d S xv| ||\}}|dk rb|S |||d  }|dkr~dS |dkrd||d  kr|d|d }ndS x |||d   r|d }qW ||d  sdS n| ||\}}|||d  }|s
dS |dkrLt||}|r.| }ndS |||d  }|sLdS |d	kr||d  d	krldS | |d |\}}|dk r|S |||d  }|sdS |dkrF|d S qFW d S )
Nr   r   r   r   r   ()z'"#)r   r&   rM   rJ   r)   r*   )r   r   rK   r   r0   r   r-   r/   r   r   r   _parse_doctype_attlist  sZ    




z!ParserBase._parse_doctype_attlistc             C   s   |  ||\}}|dk r|S | j}xl|||d  }|s<dS |dkrL|d S |dkrpt||}|sfdS | }q$|  ||\}}|dk r$|S q$W d S )Nr   r   r   r   z'")r&   r   r)   r*   )r   r   rK   r0   r   r   r-   r/   r   r   r   _parse_doctype_notation=  s$    

z"ParserBase._parse_doctype_notationc             C   s   | j }|||d  dkrV|d }x6|||d  }|s<dS | rN|d }q$P q$W n|}| ||\}}|dk rv|S xp| j ||d  }|sdS |dkrt||}|r| }qdS qx|dkr|d S | ||\}}|dk rx|S qxW d S )Nr   rF   r   r   z'"r   )r   rJ   r&   r)   r*   )r   r   rK   r   r   r-   r0   r/   r   r   r   _parse_doctype_entityT  s8    


z ParserBase._parse_doctype_entityc             C   s   | j }t|}||krdS t||}|r\| }| }|t| |krLdS | | fS | || | d|||d    d S )N)Nr   zexpected name token at %r   )	r   r#   _declname_matchgroupstriplowerr*   r   r   )r   r   rK   r   r,   r/   rL   r0   r   r   r   r&   x  s    
zParserBase._scan_namec             C   s   d S )Nr   )r   r.   r   r   r   r(     s    zParserBase.unknown_declN)r   )r   )__name__
__module____qualname____doc__r   r   r   r   r   r'   r1   r%   r$   r+   rN   rR   rS   rT   r&   r(   r   r   r   r   r      s"   R

C9$r   )
r]   recompiler@   rV   r)   rB   r;   r=   r   r   r   r   r   <module>   s   


