й¼]Ä&ã @sddlZejdƒZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Zdd„Z dd„Z dededede dede iZ iZ Gdd„dƒZ ddd„Zddd„Zddd „Zddd!d"„ZdS)#éNzY('[^']*'|"[^"]*"|::|//?|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|\s+c cs¼xµtj|ƒD]¤}|d}|r¯|ddkr¯d|kr¯yE|jddƒ\}}|sit‚|dd|||ffVWq´tk r«td|ƒ‚Yq´Xq|VqWdS)Nérú{ú:z{%s}%sz!prefix %r not found in prefix map)Úxpath_tokenizer_reÚfindallÚsplitÚKeyErrorÚ SyntaxError)ÚpatternÚ namespacesÚtokenÚtagÚprefixZuri©rú0/opt/alt/python35/lib64/python3.5/ElementPath.pyÚxpath_tokenizerIs "! rcCs[|j}|dkrWi|_}x2|jjƒD]!}x|D]}|||.selectr)Únextr rr)r rÚ prepare_child`s rcCsdd„}|S)Ncssx|D]}|EdHqWdS)Nr)rrrrrrrjs zprepare_star..selectr)rr rrrrÚ prepare_staris rcCsdd„}|S)Ncss |EdHdS)Nr)rrrrrrpszprepare_self..selectr)rr rrrrÚ prepare_selfos rc sxy |ƒ}Wntk r%dSYnX|ddkr?d‰n#|dsV|d‰n tdƒ‚‡fdd†}|S)NrÚ*rzinvalid descendantc3s@x9|D]1}x(|jˆƒD]}||k r|VqWqWdS)N)r)rrrr)r rrrs  z"prepare_descendant..select)Ú StopIterationr )rr rr)r rÚprepare_descendantts       r"cCsdd„}|S)NcssXt|ƒ}i}x?|D]7}||kr||}||krd||<|VqWdS)N)r)rrrZ result_maprÚparentrrrr‡s      zprepare_parent..selectr)rr rrrrÚprepare_parent†s r$c s¾g}g}x¡y |ƒ}Wntk r4dSYnX|ddkrFP|dr„|ddd…dkr„d|ddd…f}|j|dp—dƒ|j|dƒqWdj|ƒ}|dkrë|d‰‡fd d †}|S|d kr$|d‰|d‰‡‡fd d †}|S|dkrgtjd |dƒ rg|d‰‡fdd †}|S|dkr·tjd |dƒ r·|d‰|d‰‡‡fdd †}|S|dksÛ|dksÛ|dkr®|dkrt|dƒd‰ˆdkr˜tdƒ‚n‚|ddkr2tdƒ‚|dkr’yt|dƒd‰Wntk rvtdƒ‚YnXˆdkr˜tdƒ‚nd‰‡fdd †}|Stdƒ‚dS) Nrú]rz'"ú'ú-Úz@-c3s/x(|D] }|jˆƒdk r|VqWdS)N)Úget)rrr)Úkeyrrr©s z!prepare_predicate..selectz@-='c3s/x(|D] }|jˆƒˆkr|VqWdS)N)r))rrr)r*Úvaluerrr²s z\-?\d+$c3s/x(|D] }|jˆƒdk r|VqWdS)N)Úfind)rrr)r rrrºs z-='c3sPxI|D]A}x8|jˆƒD]'}dj|jƒƒˆkr|VPqWqWdS)Nr()rÚjoinZitertext)rrrr)r r+rrrÃs  z-()z-()-zXPath position >= 1 expectedZlastzunsupported functionézunsupported expressionz)XPath offset from last() must be negativec 3swt|ƒ}xd|D]\}y;||}t|j|jƒƒ}|ˆ|krS|VWqttfk rnYqXqWdS)N)rÚlistrr Ú IndexErrorr)rrrrr#Zelems)ÚindexrrrÝs    zinvalid predicateéÿÿÿÿr2r2éþÿÿÿr2)r!Úappendr-ÚreÚmatchÚintr Ú ValueError)rr Z signatureÚ predicaterr)r1r*r r+rÚprepare_predicate“sd   $     # #  $       r:r(r Ú.z..z//ú[c@s"eZdZdZdd„ZdS)Ú_SelectorContextNcCs ||_dS)N)r)ÚselfrrrrÚ__init__øsz_SelectorContext.__init__)Ú__name__Ú __module__Ú __qualname__rr?rrrrr=ös r=c !Cs¾||dkrdntt|jƒƒƒf}|dd…dkrP|d}yt|}Wn$tk r„ttƒdkrŠtjƒ|dd…dkr¬tdƒ‚tt ||ƒƒj }y |ƒ}Wnt k rédSYnXg}xƒy"|j t |d||ƒƒWnt k r5tdƒ‚YnXy&|ƒ}|ddkr[|ƒ}Wqót k rqPYqóXqóW|t|;s,      Y  )