
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
dÚàY‰'  ã               @   s–   d dl Z e jdƒZddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Z	eeeeee	dœZ
i Zdd„ Zddd„Zddd„Zddd„Zd dd„ZdS )!é    NzY('[^']*'|"[^"]*"|::|//?|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|\s+c             c   sÎ   |r|j d ƒnd }x¶tj| ƒD ]¨}|d }|rÀ|d dkrÀd|krœ|jddƒ\}}y&|s\t‚|d d|| |f fV  W q¾ tk
r˜   td| ƒ‚Y q¾X qÆ|r¸|d d||f fV  qÆ|V  q|V  qW d S )Né   r   ú{ú:z{%s}%sz!prefix %r not found in prefix map)ÚgetÚxpath_tokenizer_reÚfindallÚsplitÚKeyErrorÚSyntaxError)ÚpatternÚ
namespacesZdefault_namespaceÚtokenÚtagÚprefixZuri© r   ú$/usr/lib64/python3.6/_elementpath.pyÚxpath_tokenizerF   s     r   c                s   |d ‰ ‡ fdd„}|S )Nr   c             3   s,   x&| D ]}x|j ˆ ƒD ]
}|V  qW qW d S )N)Úiterchildren)ÚresultÚelemÚe)r   r   r   Úselect]   s    
zprepare_child.<locals>.selectr   )Únextr   r   r   )r   r   Úprepare_child[   s    r   c             C   s   dd„ }|S )Nc             s   s,   x&| D ]}x|j dƒD ]
}|V  qW qW d S )NÚ*)r   )r   r   r   r   r   r   r   d   s    
zprepare_star.<locals>.selectr   )r   r   r   r   r   r   Úprepare_starc   s    r   c             C   s   dd„ }|S )Nc             S   s   | S )Nr   )r   r   r   r   r   k   s    zprepare_self.<locals>.selectr   )r   r   r   r   r   r   Úprepare_selfj   s    r   c                sB   | ƒ }|d dkrd‰ n|d s*|d ‰ nt dƒ‚‡ fdd„}|S )Nr   r   r   zinvalid descendantc             3   s,   x&| D ]}x|j ˆ ƒD ]
}|V  qW qW d S )N)Ziterdescendants)r   r   r   )r   r   r   r   w   s    
z"prepare_descendant.<locals>.select)r
   )r   r   r   r   )r   r   Úprepare_descendanto   s    
r   c             C   s   dd„ }|S )Nc             s   s(   x"| D ]}|j ƒ }|d k	r|V  qW d S )N)Ú	getparent)r   r   Úparentr   r   r   r   ~   s    
zprepare_parent.<locals>.selectr   )r   r   r   r   r   r   Úprepare_parent}   s    r    c                s*  d}g }xp| ƒ }|d dkrP |dkr(q
|d rX|d d d… dkrXd|d dd… f}||d pdd7 }|j |d ƒ q
W |dkrš|d ‰‡fd	d
„}|S |dkrÄ|d ‰|d ‰‡‡fdd
„}|S |dkrötjd|d ƒ rö|d ‰‡fdd
„}|S |dk�s|dk�rTtjd|d ƒ �rT|d ‰|d  ‰ˆ�rD‡‡fdd
„}n‡fdd
„}|S |dk�sr|dk�sr|dk�r|dk�r´t|d ƒd ‰ ˆ dk �rˆ d!k�rªtdƒ‚ntdƒ‚nZ|d dk�rÊtdƒ‚|dk�r
yt|d ƒd ‰ W n tk
�r   tdƒ‚Y nX nd"‰ ‡ fdd
„}|S tdƒ‚d S )#NÚ r   ú]r   z'"ú'ú-z@-c             3   s&   x | D ]}|j ˆ ƒd k	r|V  qW d S )N)r   )r   r   )Úkeyr   r   r   ›   s    
z!prepare_predicate.<locals>.selectz@-='c             3   s&   x | D ]}|j ˆ ƒˆkr|V  qW d S )N)r   )r   r   )r%   Úvaluer   r   r   ¤   s    
z-?\d+$c             3   s.   x(| D ] }x|j ˆ ƒD ]}|V  P qW qW d S )N)r   )r   r   Ú_)r   r   r   r   ¬   s    
z.='z-='c             3   s@   x:| D ]2}x,|j ˆ ƒD ]}dj|jƒ ƒˆkr|V  P qW qW d S )Nr!   )r   ÚjoinÚitertext)r   r   r   )r   r&   r   r   r   ·   s
    
c             3   s*   x$| D ]}dj |jƒ ƒˆ kr|V  qW d S )Nr!   )r(   r)   )r   r   )r&   r   r   r   ¾   s    
z-()z-()-z3indices in path predicates are 1-based, not 0-basedzpath index >= 1 expectedZlastzunsupported functioné   zunsupported expressionc             3   s`   xZ| D ]R}|j ƒ }|d krqy&t|j|jƒƒ}|ˆ  |kr@|V  W q tk
rV   Y qX qW d S )N)r   Úlistr   r   Ú
IndexError)r   r   r   Zelems)Úindexr   r   r   Ø   s    

zinvalid predicate)r!   r!   éÿÿÿÿr.   r.   r.   r.   )ÚappendÚreÚmatchÚintr
   Ú
ValueError)r   r   Z	signatureZ	predicater   r   )r-   r%   r   r&   r   Úprepare_predicate…   sf    (




r4   )r!   r   Ú.z..z//ú[c          +   C   s¬  | dd… dkr| d7 } | f}|rxd|kr2t dƒ‚d|krd||d fttdd„ |jƒ D ƒƒƒ 7 }n|tt|jƒ ƒƒ7 }yt| S  tk
r”   Y nX ttƒd	krªtjƒ  | dd… dkrÂtd
ƒ‚t	t
| |ƒƒ}y
|j}W n tk
rô   |j}Y nX y
|ƒ }W n tk
�r   tdƒ‚Y nX g }xzy|jt|d  ||ƒƒ W n tk
�r`   tdƒ‚Y nX y|ƒ }|d dk�r~|ƒ }W n tk
�r˜   P Y nX �q&W |t|< |S )zcompile selector patternr   Nú/r   r!   zCempty namespace prefix must be passed as None, not the empty stringc             s   s   | ]}|d  dk	r|V  qdS )r   Nr   )Ú.0Úitemr   r   r   ú	<genexpr>  s    z'_build_path_iterator.<locals>.<genexpr>éd   z#cannot use absolute path on elementzempty path expressionr   zinvalid pathr.   )r3   ÚtupleÚsortedÚitemsÚ_cacher	   ÚlenÚclearr
   Úiterr   r   ÚAttributeErrorÚ__next__ÚStopIterationr/   Úops)Úpathr   Z	cache_keyÚstreamZ_nextr   Úselectorr   r   r   Ú_build_path_iteratorö   sR    


rJ   c             C   s.   t ||ƒ}t| fƒ}x|D ]}||ƒ}qW |S )N)rJ   rB   )r   rG   r   rI   r   r   r   r   r   Úiterfind+  s
    


rK   c             C   s.   t | ||ƒ}yt|ƒS  tk
r(   d S X d S )N)rK   r   rE   )r   rG   r   Úitr   r   r   Úfind6  s
    rM   c             C   s   t t| ||ƒƒS )N)r+   rK   )r   rG   r   r   r   r   r   A  s    r   c             C   s&   t | ||ƒ}|d kr|S |jp dS d S )Nr!   )rM   Útext)r   rG   Údefaultr   Zelr   r   r   ÚfindtextH  s    rP   )N)N)N)N)NN)r0   Úcompiler   r   r   r   r   r   r    r4   rF   r?   rJ   rK   rM   r   rP   r   r   r   r   Ú<module>8   s*   
c5


