³ò
4ÒÇIc           @   su   d  d k  Z  e  i d ƒ i Z d d d „  ƒ  YZ d d d „  ƒ  YZ h  Z d „  Z d „  Z d d	 „ Z
 d
 „  Z d S(   iÿÿÿÿNsF   (::|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/:\[\]\(\)@=\s]+)|\s+t   xpath_descendant_or_selfc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyR    <   s   t   Pathc           B   s/   e  Z d  „  Z d „  Z e d „ Z d „  Z RS(   c         C   s©  t  | ƒ } g  |  _ d  |  _ | o% | d d d j o t d ƒ ‚ n xà | oØ | i d ƒ \ } } | p | d j o |  i i | p | ƒ nI | d j o n8 | d j o |  i i t ƒ  ƒ qM n t d | ƒ ‚ | oA | i d ƒ \ } } | d j o t d | p | ƒ ‚ q(qM qM W|  i o' t |  i d t ƒ o t d	 ƒ ‚ n t	 |  i ƒ d
 j o1 t |  i d t
 d ƒ ƒ o |  i d |  _ n d  S(   Ni    t   /s#   cannot use absolute path on elementt   *t   .s   unsupported path syntax (%s)s   expected path separator (%s)iÿÿÿÿs   path cannot end with //i   t    (   t   xpath_tokenizert   patht   Nonet   tagt   SyntaxErrort   popt   appendR    t
   isinstancet   lent   type(   t   selfR	   t   tokenst   opR   (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyt   __init__G   s0    		
!!3c         C   sm   |  i  } | d  j o* |  i | ƒ } | p d  Sn | d Sn x& | D] } | i  | j o | SqG qG Wd  S(   Ni    (   R   R
   t   findall(   R   t   elementR   t   nodesett   elem(    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyt   findg   s    	 c         C   s   |  i  } | d  j o4 |  i | ƒ } | p | Sn | d i p d Sn x0 | D]( } | i  | j o | i p d SqQ qQ W| S(   Ni    R   (   R   R
   R   t   text(   R   R   t   defaultR   R   R   (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyt   findtextv   s    	 c   	   
   C   s„  | g } d } xny |  i  | } | d } Wn t j
 o | Sn Xg  } t | t ƒ o» y; |  i  | } t | t d ƒ ƒ p
 d  } n | d } Wn t j
 o d  } n Xx± | D]U } t | i | ƒ ƒ } | o& | d | j o | i | d ƒ q» | i | ƒ q» WnQ xM | D]E } x< | D]4 } | d j p | i	 | j o | i
 | ƒ q,q,WqW| p g  Sn | } q d  S(   Ni    i   R   R   (   R	   t
   IndexErrorR   R    R   R
   t   listt   getiteratort   extendR   R   (	   R   R   R   t   indexR	   t   setR   t   nodet   new(    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyR   …   s@    		
   (   R   R   R   R   R
   R   R   (    (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyR   B   s   	 	c         C   s_   t  i |  ƒ } | d  j	 o | Sn t |  ƒ } t t  ƒ d j o t  i ƒ  n | t  |  <| S(   Nid   (   t   _cachet   getR
   R   R   t   clear(   R	   t   p(    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyt   _compile¬   s    
c         C   s   t  | ƒ i |  ƒ S(   N(   R*   R   (   R   R	   (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyR   ¹   s    c         C   s   t  | ƒ i |  | ƒ S(   N(   R*   R   (   R   R	   R   (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyR   ¿   s    c         C   s   t  | ƒ i |  ƒ S(   N(   R*   R   (   R   R	   (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pyR   Å   s    (    (    (   t   ret   compileR   R   R    R   R&   R*   R   R
   R   (    (    (    s,   /p/zhu/06/nlp/nltk/nltk/etree/ElementPath.pys   <module>6   s   e		