m
fIc           @   s  d  Z  d k Z d k Z d k Z e i d e  [ d Z d e f d     YZ d Z	 d Z
 d Z d	 Z e i d
  Z e i d  Z e i d  Z e i d e d  Z e i d e d  Z e i d  Z e i e	 d  Z e i d  Z e i e	 d e d e
 d e
 d e d  Z e i d e  Z e i e
 d  Z e i d e d e i d e i  Z e i d  Z e i e
 d  Z e i d  e d!  Z e i e  Z e i d"  Z e i d#  Z  d$ e d% Z! d& Z" d' e	 e" d( d% e	 e! d) Z# e i d* e	 d e d+ e	 e# d, e
  Z$ e i d- e	 d. e
 d e
 d/ e d% d0 e	 d1 e
 d e
 d2 e	 d3 e
 d e
 d4 e
 d5  Z% e i d6 e d% e
  Z& e i e
 d5  Z' e i d7  Z( e i d8  Z) e i d9  Z* e i+ d: d;  Z, d< Z- e i e- d  Z. e i d= e- d> e- d?  Z/ e i d@ e- dA  Z0 dB f  dC     YZ1 dD e1 f dE     YZ2 e3 dF  Z4 e5 dG j o e4   n d S(H   s8   A parser for XML, using the derived class as static DTD.Ns4   The xmllib module is obsolete.  Use xml.sax instead.s   0.3t   Errorc           B   s   t  Z RS(   N(   t   __name__t
   __module__(    (    (    t#   /mit/python/lib/python2.4/xmllib.pyR       s   s   [ 	
]+s   [ 	
]*s   [a-zA-Z_:][-a-zA-Z0-9._:]*s   (?:'[^']*'|"[^"]*")s   [^	
 -~-]s   []&<]t   &s   &(s(   |#[0-9]+|#x[0-9a-fA-F]+)[^-a-zA-Z0-9._:]s
   &(?P<name>s   )[^-a-zA-Z0-9._:]s2   &#(?P<char>[0-9]+[^0-9]|x[0-9a-fA-F]+[^0-9a-fA-F])t   $s   
s	   (?P<name>s   )(t   =s
   (?P<value>s    |[-a-zA-Z0-9.:+*%?!\(\)_#=~]+))?t   <s   (?P<slash>/?)>s   <(?P<tagname>s   )(?P<attrs>(?:s   )*)s   </t   >s
   (?:[^>'"]|s   )*>s   <!\[CDATA\[s   \]\]>s   (?P<%s>t   )sV   (?P<%s>"[-'\(\)+,./:=?;!*#@$_%% 
a-zA-Z0-9]*"|'[-\(\)+,./:=?;!*#@$_%% 
a-zA-Z0-9]*')s   (?:SYSTEM|PUBLICt   pubidt   syslits	   <!DOCTYPEs   )(?:s   )?s   <\?xmlt   versions   (?P<version>s   (?:t   encodingsF   (?P<encoding>'[A-Za-z][-A-Za-z0-9._]*'|"[A-Za-z][-A-Za-z0-9._]*"))?(?:t
   standalones+   (?P<standalone>'(?:yes|no)'|"(?:yes|no)"))?s   \?>s   <\?(?P<proc>s   <!--s   -->s   --s    
	s       s   [a-zA-Z_][-a-zA-Z0-9._]*s   (?:(?P<prefix>s   ):)?(?P<local>s   )$s   xmlns(?::(?P<ncname>s   ))?$t	   XMLParserc           B   s  t  Z h  Z h  Z d Z d Z d Z d Z d Z d   Z	 d   Z
 d   Z d   Z d   Z d   Z d	   Z d
   Z d   Z d d  Z d   Z d   Z d   Z d   Z d   Z h  d d  <d d  <d d  <Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ h  d  d! <d" d# <d$ d% <d& d' <d( d) <Z% d*   Z& d+   Z' d,   Z( d-   Z) d.   Z* d/   Z+ d0   Z, d1   Z- d2   Z. RS(3   Ni    i   c         K   s   d |  _ d | j o | d |  _ n d | j o | d |  _ n d | j o | d |  _ n d | j o | d |  _ n d | j o | d |  _ n |  i   d  S(   Ni    t   accept_unquoted_attributest   accept_missing_endtag_namet   map_caset   accept_utf8t   translate_attribute_references(	   t   selft   _XMLParser__fixedt   kwt&   _XMLParser__accept_unquoted_attributest&   _XMLParser__accept_missing_endtag_namet   _XMLParser__map_caset   _XMLParser__accept_utf8t*   _XMLParser__translate_attribute_referencest   reset(   R   R   (    (    R   t   __init__f   s    	c         C   s6   d |  _ h  |  _ |  i |  i  |  i |  i  d  S(   Ni   (   R   R   t   elementst   _XMLParser__fixdictt   __dict__t   _XMLParser__fixclasst	   __class__(   R   (    (    R   t   __fixelementst   s    		c         C   s5   |  i | i  x | i D] } |  i |  q Wd  S(   N(   R   R    t   klR!   t	   __bases__t   kR"   (   R   R%   R'   (    (    R   t
   __fixclassz   s    
 c         C   s   x | i   D] } | d  d j oV | d } |  i i | d  \ } } | d  j o  t
 |  |  | f |  i | <q q | d  d j oV | d } |  i i | d  \ } } | d  j o  | t
 |  |  f |  i | <q q q Wd  S(   Ni   t   start_i   t   end_(   NN(   NN(   t   dictt   keyst   keyt   tagR   R   t   gett   Nonet   startt   endt   getattr(   R   R+   R2   R1   R.   R-   (    (    R   t	   __fixdict   s     
$
c         C   s   d |  _ g  |  _ d |  _ d |  _ d |  _ d |  _ d  |  _ d |  _	 d |  _
 h  d d  <|  _ |  i t i j o |  i   n d  S(   Nt    i    i   t   xml(   R   t   rawdatat   stackt
   nomoretagst   literalt   linenot   _XMLParser__at_startR0   t   _XMLParser__seen_doctypet   _XMLParser__seen_starttagt   _XMLParser__use_namespacest   _XMLParser__namespacesR   R   t   _XMLParser__fixelements(   R   (    (    R   R      s    									c         C   s   d |  _ |  _ d  S(   Ni   (   R   R9   R:   (   R   (    (    R   t   setnomoretags   s    c         G   s   d |  _ d  S(   Ni   (   R   R:   (   R   t   args(    (    R   t
   setliteral   s    c         C   s!   |  i | |  _ |  i d  d  S(   Ni    (   R   R7   t   datat   goahead(   R   RE   (    (    R   t   feed   s    c         C   s.   |  i d  |  i o d |  _ |  ` n d  S(   Ni   i    (   R   RF   R   R   (   R   (    (    R   t   close   s    
	c         C   s2  |  i p | Sn d } xt i | |  } | d  j o | Sn | i d  } t
 i | |  } | d  j o |  i d  | d } q n | i d  } | i d  } d } | d d j ox | d d j o t t | d d   } n t t | d   } | | d d j o |  i d	  | d } qn | o} | |  i j o |  i | } d } q| | d d j o |  i d  | d } q q|  i d
 |  d | d } n4 | | d d j o |  i d  | d } q n | |  | | | } | o
 | } q | t |  } q Wd  S(   Ni    i   s	   bogus `&'t   #t   xi   i   t   ;s    `;' missing after char references"   reference to unknown entity `&%s;'R   (   R   R   RE   t   it   ampt   searcht   resR0   R1   t   st   reft   matcht   syntax_errorR2   t   groupt   strt   rescant   chrt   intt   allt
   entitydefst   len(   R   RE   RY   RL   RO   RP   RU   RV   (    (    R   t   translate_references   sT    
  




c         C   s4   h  } x' |  i D] \ } } } | i |  q W| S(   N(   t   nsdictR   R8   t   tt   dt   nstt   update(   R   R_   R`   R^   R]   (    (    R   t   getnamespace   s
    
 c         C   s>
  |  i } d } t |  } x| | j  o| d j o d |  _ n |  i o> | | | !} |  i |  |  i	 | i
 d  |  _	 | } Pn t i | |  } | o | i d  }
 n | }
 | |
 j  o | | |
 !} |  i o' t i |  d  j o |  i d  n d |  _ |  i o' t i |  d  j o |  i d  n |  i o! t i |  o |  i d  n |  i |  |  i	 | i
 d  |  _	 n |
 } | | j o Pn | | d j ott i | |  o |  i oA | | } |  i |  |  i	 | i
 d  |  _	 | d } q n |  i |  }	 |	 d j  o Pn d |  _ |  i	 | | |	 !i
 d  |  _	 |	 } q n t i | |  oN |  i |  }	 |	 d j  o Pn |  i	 | | |	 !i
 d  |  _	 |	 } q n t i | |  o |  i oA | | } |  i |  |  i	 | i
 d  |  _	 | d } q n |  i |  }	 |	 d j  o Pn |  i	 | | |	 !i
 d  |  _	 |	 } q n t  i | |  oN |  i! |  }	 |	 d j  o Pn |  i	 | | |	 !i
 d  |  _	 |	 } q n t" i | |  } | o |  i p |  i d  n | i# d	 d
 d  \ } } } | d d !d j o t' d   n | o | d d !} n | o | d d !} n |  i( | |  | i) d  } q n t* i | |  } | oN |  i+ |  }	 |	 d j  o Pn |  i	 | | |	 !i
 d  |  _	 |	 } q n t, i | |  } | o|  i oA | | } |  i |  |  i	 | i
 d  |  _	 | d } q n |  i- o |  i d  n |  i o |  i d  n |  i. |  }	 |	 d j  o Pn | i# d  |  _- |  i/ o |  i- i0   |  _- n |  i	 | | |	 !i
 d  |  _	 |	 } q qn| | d j o|  i o( | | } |  i |  | d } q n t1 i | |  } | d  j	 o | i) d  } | | d d j o |  i d  | d } n |  i p |  i d  n |  i2 | i# d  d   |  i	 | i# d  i
 d  |  _	 q n t3 i | |  } | d  j	 o | i) d  } | | d d j o |  i d  | d } n | i# d  } |  i/ o | i0   } n | |  i5 j oL | | i d   |  i5 | | | |  _ } t |  } | i d  } n |  i6 |  |  i	 | i# d  i
 d  |  _	 q qn | | d j o |  i o( | | } |  i |  | d } q n | | d j  o Pn t7 i | |  o |  i d  n |  i | |  | d } q n t' d   Pq W| d j o d |  _ n | o | | j  o | | } |  i d |  |  i o! t i |  o |  i d  n |  i |  |  i	 | i
 d  |  _	 | | d |  _ |  i8 |  Sn | | |  _ | od |  i p |  i d  n |  i o; |  i d  x+ |  i o |  i9 |  i d d  q
Wq:
n d  S(   Ni    s   
s   illegal data at start of files   data not in contents   illegal character in contentR   i   s,   <?xml?> declaration not at start of documentR   R   R   is   1.0s   only XML version 1.0 supporteds   multiple DOCTYPE elementss$   DOCTYPE not at beginning of documentt   nameR   RK   s   `;' missing in charreft   chars   `;' missing in entityreft   ]i   s   bogus `]]>'s   neither < nor & ??s
   bogus `%s's   no elements in files   missing end tags(:   R   R7   RL   R[   t   nR<   R9   RE   t   handle_dataR;   t   countt   interestingRN   RO   R1   t   jt   spaceRR   R0   RS   R8   R   t   illegalt   starttagopenR:   t   parse_starttagR'   R>   t
   endtagopent   parse_endtagt   commentopent   parse_commentt	   cdataopent   parse_cdatat   xmldeclRT   R   R   R   R    t
   handle_xmlR2   t   procopent
   parse_proct   doctypeR=   t   parse_doctypeR   t   lowert   charreft   handle_charreft	   entityrefRc   RZ   t   unknown_entityreft
   cdatacloseRF   t   finish_endtag(   R   R2   R   RO   R   RE   Rc   R   RL   R'   Rj   Rf   R7   (    (    R   RF      st   	 
 	! 


 	   


    
	    




 
 



"
-"






 
c         C   s,  |  i } | | | d !d j o t d   n t i | | d  } | d  j o d Sn t i | | d | i	 d   o |  i
 d  n | | i	 d  d d j o |  i
 d	  n |  i o4 t i | | d | i	 d   o |  i
 d
  n |  i | | d | i	 d  ! | i d  S(   Ni   s   <!--s!   unexpected call to handle_commentii    s   `--' inside commenti   t   -s"   comment cannot end in three dashess   illegal character in comment(   R   R7   RL   R    t   commentcloseRN   RO   R0   t
   doubledashR1   RS   R   Rl   t   handle_commentR2   (   R   RL   RO   R7   (    (    R   Rr     s    	#.!c         C   s  |  i }
 t |
  } | i d  } |  i o | i   } n | i d d  \ } }	 | d  j	 o& | d d !} d i | i    } n |	 d  j	 o |	 d d !}	 n | i d  } } | | j o d Sn |
 | d j odd } | d } d } } xG| | j  o5|
 | } | o | d	 j o | } n | o | d
 j o | } n | p | o n | d j oj | d j o] t i |
 | d  } | d  j o d Sn |  i | | |	 |
 | d | ! | i d  SnU | d j o | d } n: | d j o, | d } | d j  o |  i d  q1n | d } q Wn t i |
 |  } | d  j o d Sn t i |
 |  d  j o |  i d  n |  i | | |	 d   | i d  S(   NRc   R
   R   i   it    i    t   [t   "t   'Re   R   R   s   bogus `>' in DOCTYPEs   garbage in DOCTYPE(   R   R7   R[   Rf   RO   RT   Rc   R   R{   R
   R   R0   t   joint   splitR2   Rj   R'   t   levelt   dqt   sqt   ct
   endbracketRR   t   handle_doctypeRS   t   endbracketfind(   R   RO   R   Rj   Rc   R   R
   R   Rf   R   R7   R'   R   (    (    R   Rz     s^    	
 

 
!
c         C   s   |  i } | | | d !d j o t d   n t i | | d  } | d  j o d Sn |  i o4 t	 i | | d | i
 d   o |  i d  n |  i p |  i d  n |  i | | d | i
 d  ! | i d  S(   Ni	   s	   <![CDATA[s   unexpected call to parse_cdataii    s   illegal character in CDATAs   CDATA not in content(   R   R7   RL   R    R   RN   RO   R0   R   Rl   R1   RS   R8   t   handle_cdataR2   (   R   RL   RO   R7   (    (    R   Rt     s    	.
!t   nst   srct   prefixc         C   s  |  i } t i | |  } | d  j o d Sn | i d  } |  i	 o+ t
 i | | d |  o |  i d  n t i | | d  }	 |	 d  j o t d   n |	 i d  } |	 i d  } |  i o | i   } n | d j oQ|  i d  d |  _ |  i p
 |  i o |  i d  n |  i | | |  \ }
 } } | o |  i d	  n x9 |
 i   D]+ } | |  i j o |  i d
 |  qkqkWd |
 j p d |
 j o |  i d  n |
 i d  } t  i |  d  j o |  i d  | i d  Sn | |  i! j o |  i d  n |
 d |  i! | <n< | i   d j o |  i d  n |  i" | | | | ! | i d  S(   Nii    i   s+   illegal character in processing instructions   unexpected call to parse_procs   xml:namespaces#   old-fashioned namespace declarations.   xml:namespace declaration too late in documents2   namespace declaration inside namespace declarations+   unknown attribute `%s' in xml:namespace tagR   R   s)   xml:namespace without required attributess"   xml:namespace illegal prefix values   xml:namespace prefix not uniqueR6   s*   illegal processing instruction target name(#   R   R7   t	   proccloseRN   RL   R2   R0   R1   Rj   R   Rl   RS   t   tagfindRR   RO   R    R'   RT   Rc   R   R{   R?   R=   R>   t   parse_attributest   attrdictt	   namespaceR,   t   attrnamet$   _XMLParser__xml_namespace_attributesR/   R   t   ncnameR@   t   handle_proc(   R   RL   R2   Rc   Rj   R   R   R   R7   RO   R   R'   (    (    R   Rx     sN    	%
	 c         C   s  |  i } h  }
 h  } x| | j  ot i | |  } | d  j o Pn | i
 d d  \ } }	 |  i o | i   } n | i d  } |	 d  j o |  i d |  | }	 n} |	 d  d j o |	 d j n p& |	 d  d j o |	 d j n o |	 d d !}	 n  |  i p |  i d	 |  n t i |  } | d  j	 oR | i
 d
  } |	 p d  | | p d <|  i p t |  i  d |  _ q q n d |	 j o |  i d  n | |
 j o |  i d |  n |	 i t  }	 |  i |	  |
 | <q W|
 | | f S(   NRc   t   valuei    s%   no value specified for attribute `%s'i   R   iR   s   attribute `%s' value not quotedR   R5   R   s   `<' illegal in attribute values   attribute `%s' specified twice(   R   R7   R   R   RL   Rj   t   attrfindRR   RO   R0   RT   R   t	   attrvalueR   R{   R2   RS   R   t   xmlnsR   R?   R[   R8   t	   translatet	   attrtransR\   (   R   R.   RL   Rj   R   RO   R   R   R7   R   R   (    (    R   R   )  sB    	 

L

c         C   s  |  i } t i | | d  } | d  j o d Sn t i | |  } | d  j p | i d  | i d  j o |  i	 d  | i d  Sn | i
 d  } } |  i o | i   } } n |  i o+ |  i o! | |  i j o |  i	 d  n |  i o |  i o |  i	 d  n | i d  \ } } |  i | | |  \ } } } |  i i | | | f  |  i o t i |  }
 n d  }
 |
 d  j	 o |
 i
 d	 d
  \ } } | d  j o
 d } n d  } x5 |  i D]* \ } } } | | j o | | } qqW| d  j o# | d j o |  i! i" |  } n | d  j	 o | d | } n  | d j o | d | } n | | | f |  i d <n h  } x | i$   D] } | | | <qW|  i o8h  } x%| i'   D]\ } }	 | } t i |  }
 |
 d  j	 o |
 i
 d	 d
  \ } } |  i o | i   } n | d  j	 o d  } x5 |  i D]* \ } } } | | j o | | } qOqOW| d  j o |  i! i" |  } n | d  j	 o | d | } q| d | } qn |	 | | <| | | <qW| } n |  i, i" |  } | d  j	 o x@ | i$   D]2 } | | j o |  i	 d | | | f  q#q#WxF | i'   D]4 \ } }	 |	 d  j	 o | | j o |	 | | <qfqfWn |  i- i" | d  d } |  i/ | | |  | i
 d  d j o |  i0 |  n | i d  S(   Ni   ii    s   garbage in starttagt   tagnames   starttag does not match DOCTYPEs   multiple elements on top levelt   attrsR   t   localR5   R   t   :s"   unknown attribute `%s' in tag `%s't   slasht   /(   NN(1   R   R7   R   RR   RL   R2   R0   t   starttagmatchR.   RS   RT   t   nstagR   R   R{   R>   R=   R8   t   spanR'   Rj   R   R   R]   t   appendR?   t   qnameRO   R   R   R^   R_   R`   R@   R/   t   attrnamemapR,   R-   t	   nattrdictt   itemst   valt   okeyt   aprefixt   anst
   attributesR   t   methodt   finish_starttagR   (   R   RL   R   R   R.   R   R   R`   R2   R   RO   R   R   R   R   R   R^   R   R-   R_   R'   Rj   R7   R   R   R]   (    (    R   Rn   N  s    	,
%


  
 

 

 # c         C   s  |  i } t i | | d  } | d  j o d Sn t i | | d  } | d  j oa |  i	 o |  i
 | |  | d Sn |  i p |  i d  n |  i d d } | d } n | i d  } |  i o | i   } n |  i	 oD |  i p | |  i d d j o |  i
 | |  | d Sq/n | i d  } t i | |  d  j o |  i d  n |  i |  | i d  S(   Ni   ii   s   no name specified in end tagi    s   garbage in end tag(   R   R7   R   RR   RL   R2   R0   R   RO   R:   Rg   R   RS   R8   R.   R'   RT   R   R{   R   R   (   R   RL   R2   RO   R.   R7   R'   (    (    R   Rp     s2    	



#c         C   s8   | d  j	 o |  i | | |  n |  i | |  d  S(   N(   R   R0   R   t   handle_starttagR   R   t   unknown_starttag(   R   R   R   R   (    (    R   R     s    c         C   s  d |  _ | pF |  i d  t |  i  d } | d j  o |  i |  d  Sq nk d } x? t t |  i   D]( } | |  i | d j o
 | } qr qr W| d j o |  i d  d  Sn x t |  i  | j o | t |  i  d j  o  |  i d |  i d d  n |  i d d } |  i i | d  d } | d  j	 o |  i | |  n |  i |  |  i t |  i  j o d |  _ n |  i d =q Wd  S(	   Ni    s   name-less end tagi   is   unopened end tags   missing close tag for %si   (   NN(   R   R:   R.   RS   R[   R8   t   foundt   unknown_endtagt   rangeRL   R   R   R/   R0   R   t   handle_endtagR?   (   R   R.   RL   R   R   R   (    (    R   R     s6    	   c         C   s   d  S(   N(    (   R   R   R   (    (    R   Rv     s    c         C   s   d  S(   N(    (   R   R.   R
   R   RE   (    (    R   R     s    c         C   s   | |  d  S(   N(   R   R   (   R   R.   R   R   (    (    R   R     s    c         C   s   |   d  S(   N(   R   (   R   R.   R   (    (    R   R     s    c         C   s   y8 | d d j o t | d d  } n t |  } Wn$ t j
 o |  i |  d  Sn Xd | j o
 d j n p |  i |  d  Sn |  i t |   d  S(   Ni    RJ   i   i   i   (   Rc   RX   Rf   t
   ValueErrorR   t   unknown_charrefRg   RW   (   R   Rc   Rf   (    (    R   R}     s    	t   lts   &#60;t   gts   &#62;RM   s   &#38;t   quots   &#34;t   aposs   &#39;c         C   s   d  S(   N(    (   R   RE   (    (    R   Rg   	  s    c         C   s   d  S(   N(    (   R   RE   (    (    R   R     s    c         C   s   d  S(   N(    (   R   RE   (    (    R   R     s    c         C   s   d  S(   N(    (   R   Rc   RE   (    (    R   R     s    c         C   s   t  d |  i | f   d  S(   Ns   Syntax error at line %d: %s(   R    R   R;   t   message(   R   R   (    (    R   RS     s    c         C   s   d  S(   N(    (   R   R.   R   (    (    R   R     s    c         C   s   d  S(   N(    (   R   R.   (    (    R   R     s    c         C   s   d  S(   N(    (   R   RQ   (    (    R   R     s    c         C   s   |  i d |  d  S(   Ns"   reference to unknown entity `&%s;'(   R   RS   Rc   (   R   Rc   (    (    R   R      s    (/   R   R   R   R   R   R   R   R   R   R   RA   R"   R    R   RB   RD   RG   RH   R\   Rb   RF   Rr   Rz   Rt   R0   R   Rx   R   Rn   Rp   R   R   Rv   R   R   R   R}   RZ   Rg   R   R   R   RS   R   R   R   R   (    (    (    R   R   Z   sX   									2					0	!	-	%	R								3								t   TestXMLParserc           B   s   t  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z d   Z d   Z d   Z RS(   Nc         K   s   d |  _ t i |  |  d  S(   NR5   (   R   t   testdataR   R   R   (   R   R   (    (    R   R   &  s    	c         C   s   |  i   d G| Gd G| GHd  S(   Ns   xml: encoding =s   standalone =(   R   t   flushR   R   (   R   R   R   (    (    R   Rv   *  s    
c         C   s!   |  i   d G| Gt |  GHd  S(   Ns   DOCTYPE:(   R   R   R.   t   reprRE   (   R   R.   R
   R   RE   (    (    R   R   .  s    
c         C   s>   |  i | |  _ t t |  i   d j o |  i   n d  S(   NiF   (   R   R   RE   R[   R   R   (   R   RE   (    (    R   Rg   2  s    c         C   s0   |  i } | o d |  _ d Gt |  GHn d  S(   NR5   s   data:(   R   R   RE   R   (   R   RE   (    (    R   R   7  s    		c         C   s   |  i   d Gt |  GHd  S(   Ns   cdata:(   R   R   R   RE   (   R   RE   (    (    R   R   =  s    
c         C   s!   |  i   d G| Gt |  GHd  S(   Ns   processing:(   R   R   Rc   R   RE   (   R   Rc   RE   (    (    R   R   A  s    
c         C   sP   |  i   t |  } t |  d j o | d  d | d } n d G| GHd  S(   NiD   i    s   ...is   comment:(   R   R   R   RE   t   rR[   (   R   RE   R   (    (    R   R   E  s
    
c         C   s   d |  i G| GHd  S(   Ns   error at line %d:(   R   R;   R   (   R   R   (    (    R   RS   L  s    c         C   sd   |  i   | p d | d GHn? d | Gx. | i   D]  \ } } | d d | d Gq7 Wd GHd  S(   Ns   start tag: <R   R   R   (   R   R   R   R.   R   Rc   R   (   R   R.   R   R   Rc   (    (    R   R   O  s    
 c         C   s   |  i   d | d GHd  S(   Ns   end tag: </R   (   R   R   R.   (   R   R.   (    (    R   R   Y  s    
c         C   s   |  i   d | d GHd  S(   Ns   *** unknown entity ref: &RK   (   R   R   RQ   (   R   RQ   (    (    R   R   ]  s    
c         C   s   |  i   d | d GHd  S(   Ns   *** unknown char ref: &#RK   (   R   R   RQ   (   R   RQ   (    (    R   R   a  s    
c         C   s   t  i |   |  i   d  S(   N(   R   RH   R   R   (   R   (    (    R   RH   e  s    (   R   R   R   Rv   R   Rg   R   R   R   R   RS   R   R   R   R   RH   (    (    (    R   R   $  s   										
			c         C   s  d  k  } d  k } d k l } |  p | i d }  n | i |  d  \ } }  t } d } xB | D]: \ } } | d j o
 t } qb | d j o
 d } qb qb W|  o |  d } n d } | d j o | i }
 nF y t | d	  }
 Wn/ t j
 o# } | Gd
 G| GH| i d  n X|
 i   } |
 | i j	 o |
 i   n |   } |   } yN | o | i |  | i   n) x | D] }	 | i |	  qW| i   WnH t j
 o< } |   } | GH| o d | | GHn | i d  n X|   } | o d | | GHn d  S(   N(   s   timei   t   sti    s   -ss   -ts   test.xmlR   R   R   s   total time: %g(   t   syst   getoptt   timeRC   t   argvt   optsR   t   klasst   do_timet   ot   aR   t   filet   stdint   ft   opent   IOErrort   msgt   exitt   readRE   RH   RJ   t   t0RG   R   R    t   t1(   RC   R   R   R   R   R   R   RE   R   R   R   R   R   R   R   RJ   R   (    (    R   t   testi  sZ     
		 		t   __main__(6   t   __doc__t   ret   stringt   warningst   warnt   DeprecationWarningR   t   RuntimeErrorR    t   _St   _opSt   _Namet   _QStrt   compileRl   Ri   RM   RQ   R~   R|   Rk   t   newlineR   Rm   t   starttagendt   patternR   Ro   R   R   R   Rs   R   t   _SystemLiteralt   _PublicLiteralt   _ExternalIdRy   Ru   Rw   R   Rq   R   R   t	   maketransR   t   _NCNameR   R   R   R   R   R0   R   R   (-   Rm   R   R   R   R   R   R   R   Ru   R   R   Rk   R   Rl   R   R   R   R   R   R   RQ   Rs   R   R   R   R   R   R|   R   R   R   R   R    Rq   RM   Ro   R   R   R   Ry   R   R~   Ri   Rw   R   (    (    R   t   ?   sf   			3)"/k
  E7