;
Ęâ"Ic               @   sz   d  Z  d d l Z e j d  j Z e j d  j Z e j d  Z e j d  Z e j d  Z [ Gd   d	  Z	 d S(
   uÎ   Shared 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.

i    Nu   [a-zA-Z][-_.a-zA-Z0-9]*\s*u   (\'[^\']*\'|"[^"]*")\s*u   --\s*>u	   ]\s*]\s*>u   ]\s*>c             B   s§   |  Ee  Z d  Z d   Z d   Z d   Z d   Z d   Z d Z d   Z	 d d	  Z
 d d
  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d S(   ui   Parser base class which provides some common support methods used
    by the SGML/HTML and XHTML parsers.c             C   s$   |  j  t k o t d   n d  S(   Nu)   _markupbase.ParserBase must be subclassed(   u	   __class__u
   ParserBaseu   RuntimeError(   u   self(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   __init__   s    c             C   s   t  d   d  S(   Nu.   subclasses of ParserBase must override error()(   u   NotImplementedError(   u   selfu   message(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   error    s    c             C   s   d |  _  d |  _ d  S(   Ni   i    (   u   linenou   offset(   u   self(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   reset$   s    	c             C   s   |  j  |  j f S(   u&   Return current line number and offset.(   u   linenou   offset(   u   self(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   getpos(   s    c             C   s   | | k o | S|  j  } | j d | |  } | o: |  j | |  _ | j d | |  } | | d |  _ n |  j | | |  _ | S(   Nu   
i   (   u   rawdatau   countu   linenou   rindexu   offset(   u   selfu   iu   ju   rawdatau   nlinesu   pos(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu	   updatepos0   s    	u    c       
      C   s  |  j  } | d } | | |  d k p t d   | | | d  d k o	 | d S| | | d  d k o d St |  } | | | d  d	 k o |  j |  S| | d
 k o |  j |  S|  j | |  \ } } | d k  o | S| d k o d |  _ n x~| | k  op| | } | d k oH | | d |  } | d k o |  j |  n |  j |  | d S| d k o+ t	 | |  } | p d S| j
   } nÄ | d k o |  j | |  \ }	 } n | |  j k o | d } n} | d
 k oZ | d k o |  j | d |  } q}| d k o |  j d |  q}|  j d  n |  j d | |  | d k  o | SqWd S(   Ni   u   <!u$   unexpected call to parse_declarationi   u   >u   -u    i˙˙˙˙u   --u   [i    u   doctypeu   "'u4   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZu   attlistu   linktypeu   linku   elementu&   unsupported '[' char in %s declarationu"   unexpected '[' char in declarationu!   unexpected %r char in declaration(   u   -u    (   u   attlistu   linktypeu   linku   element(   u   rawdatau   AssertionErroru   lenu   parse_commentu   parse_marked_sectionu
   _scan_nameu   _decl_othercharsu   handle_declu   unknown_declu   _declstringlit_matchu   endu   _parse_doctype_subsetu   error(
   u   selfu   iu   rawdatau   ju   nu   decltypeu   cu   datau   mu   name(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   parse_declaration@   s\    	
$	 
	
i   c             C   s  |  j  } | | | d  d k p t d   |  j | d |  \ } } | d k  o | S| d k o t j | | d  } nG | d k o t j | | d  } n  |  j d | | d |   | p d S| o. | j d  } |  j | | d |   n | j	 d  S(   Ni   u   <![u)   unexpected call to parse_marked_section()i    u   tempu   cdatau   ignoreu   includeu   rcdatau   ifu   elseu   endifu+   unknown status keyword %r in marked sectioni˙˙˙˙(   u   tempu   cdatau   ignoreu   includeu   rcdata(   u   ifu   elseu   endif(
   u   rawdatau   AssertionErroru
   _scan_nameu   _markedsectioncloseu   searchu   _msmarkedsectioncloseu   erroru   startu   unknown_declu   end(   u   selfu   iu   reportu   rawdatau   sectNameu   ju   match(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   parse_marked_section   s     	(c             C   s   |  j  } | | | d  d k o |  j d  n t j | | d  } | p d S| o. | j d  } |  j | | d |   n | j d  S(   Ni   u   <!--u"   unexpected call to parse_comment()i˙˙˙˙i    (   u   rawdatau   erroru   _commentcloseu   searchu   startu   handle_commentu   end(   u   selfu   iu   reportu   rawdatau   matchu   j(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   parse_comment¤   s    	c       
      C   sű  |  j  } t |  } | } xŮ| | k  oË| | } | d k om| | | d  } | d k o d S| d k o) |  j | | d  |  j d |  n | d | k o d S| d | k o d S| | | d  d k o. |  j | d	 d
 } | d
 k  o | Sq n |  j | d |  \ } } | d k o d S| d k o) |  j | | d  |  j d |  n t |  d |  }	 |	 | |  } | d
 k  o | Sq | d k og | d | k o d S|  j | d |  \ } } | d
 k  o | S| | d k o | d } qňq | d k o | d } x- | | k  o | | j   o | d } q=W| | k  o7 | | d k o | S|  j | |  |  j d  qňd Sq | j   o | d } q |  j | |  |  j d |  q Wd S(   Nu   <i   i˙˙˙˙u   <!i   u*   unexpected char in internal subset (in %r)i   u   <!--u   reporti    u   attlistu   elementu   entityu   notationu)   unknown declaration %r in internal subsetu   _parse_doctype_u   %u   ;u   ]u   >u%   unexpected char after internal subsetu%   unexpected char %r in internal subset(   u   attlistu   elementu   entityu   notation(   u   rawdatau   lenu	   updateposu   erroru   parse_commentu
   _scan_nameu   getattru   isspace(
   u   selfu   iu   declstartposu   rawdatau   nu   ju   cu   su   nameu   meth(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   _parse_doctype_subset˛   sr    	 
	
 c             C   sc   |  j  | |  \ } } | d k o d S|  j } d | | d   k o | j d |  d Sd S(   Ni˙˙˙˙u   >i   (   u
   _scan_nameu   rawdatau   find(   u   selfu   iu   declstartposu   nameu   ju   rawdata(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   _parse_doctype_elementő   s    	c             C   sd  |  j  } |  j | |  \ } } | | | d  } | d k o d S| d k o	 | d Sx |  j | |  \ } } | d k  o | S| | | d  } | d k o d S| d k o| d | | d   k o | j d |  d } n d Sx* | | | d  j   o | d } qő W| | d   p d Sn |  j | |  \ } } | | | d  } | p d S| d k oN t | |  } | o | j   } n d S| | | d  } | p d Sn | d	 k on | | d   d	 k o d S|  j | d |  \ } } | d k  o | S| | | d  } | p d Sn | d k o	 | d Sq` d  S(
   Ni   u    i˙˙˙˙u   >i    u   (u   )u   '"u   #(   u   rawdatau
   _scan_nameu   findu   isspaceu   _declstringlit_matchu   end(   u   selfu   iu   declstartposu   rawdatau   nameu   ju   cu   m(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   _parse_doctype_attlist   s\    		 			c             C   sŐ   |  j  | |  \ } } | d k  o | S|  j } x | | | d  } | p d S| d k o	 | d S| d k o+ t | |  } | p d S| j   } q6 |  j  | |  \ } } | d k  o | Sq6 d  S(   Ni    i   i˙˙˙˙u   >u   '"(   u
   _scan_nameu   rawdatau   _declstringlit_matchu   end(   u   selfu   iu   declstartposu   nameu   ju   rawdatau   cu   m(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   _parse_doctype_notation9  s$    		c             C   sL  |  j  } | | | d  d k oP | d } xI | | | d  } | p d S| j   o | d } q1 Pq1 n | } |  j | |  \ } } | d k  o | SxĄ |  j  | | d  } | p d S| d k o. t | |  } | o | j   } qEd Sq§ | d k o	 | d S|  j | |  \ } } | d k  o | Sq§ d  S(   Ni   u   %i˙˙˙˙i    u   '"u   >(   u   rawdatau   isspaceu
   _scan_nameu   _declstringlit_matchu   end(   u   selfu   iu   declstartposu   rawdatau   ju   cu   nameu   m(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   _parse_doctype_entityP  s8    	
	c             C   sť   |  j  } t |  } | | k o d St | |  } | oK | j   } | j   } | t |  | k o d S| j   | j   f S|  j | |  |  j	 d | | | d   d  S(   Ni˙˙˙˙u   expected name token at %ri   (   Ni˙˙˙˙(   Ni˙˙˙˙(
   u   rawdatau   lenu   Noneu   _declname_matchu   groupu   stripu   loweru   endu	   updateposu   error(   u   selfu   iu   declstartposu   rawdatau   nu   mu   su   name(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu
   _scan_namet  s    		c             C   s   d  S(   N(    (   u   selfu   data(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   unknown_decl  s    N(   u   __name__u
   __module__u   __doc__u   __init__u   erroru   resetu   getposu	   updateposu   _decl_othercharsu   parse_declarationu   parse_marked_sectionu   parse_commentu   _parse_doctype_subsetu   _parse_doctype_elementu   _parse_doctype_attlistu   _parse_doctype_notationu   _parse_doctype_entityu
   _scan_nameu   unknown_decl(   u
   __locals__(    (    u(   /mit/python/lib/python3.0/_markupbase.pyu
   ParserBase   s"   
						N	C		9		$	u
   ParserBase(
   u   __doc__u   reu   compileu   matchu   _declname_matchu   _declstringlit_matchu   _commentcloseu   _markedsectioncloseu   _msmarkedsectioncloseu
   ParserBase(    (    (    u(   /mit/python/lib/python3.0/_markupbase.pyu   <module>   s   