�
Ϫ�f�$ � � � d Z ddlmZ G d� de� Z G d� d� Z G d� d� Z G d � d
� Z G d� d� Zd
� Z G d� d� Z
G d� d� Z G d� d� Z G d� d� Z
G d� d� Zi Zd� Zd� Zd� Zd� Zd� Zy)z�
XPath query support.
This module provides L{XPathQuery} to match
L{domish.Element<twisted.words.xish.domish.Element>} instances against
XPath-like expressions.
� )�StringIOc � � e Zd Zd� Zy)�LiteralValuec � � | S �N� ��self�elems �:/usr/lib/python3/dist-packages/twisted/words/xish/xpath.py�valuezLiteralValue.value s � ��� N)�__name__�
__module__�__qualname__r
r r r r r s � �r r c � � e Zd Zd� Zd� Zy)�
IndexValuec �* � t |� dz
| _ y )N� )�int�index)r
r s r �__init__zIndexValue.__init__ s � ���Z�!�^��
r c �4 � |j | j S r )�childrenr r s r r
zIndexValue.value s � ��}�}�T�Z�Z�(�(r N)r r r r r
r r r r r s � �$�)r r c � � e Zd Zd� Zd� Zd� Zy)�AttribValuec �T � || _ | j dk( r| j | _ y y )N�xmlns)�
attribname�value_nsr
)r
r s r r zAttribValue.__init__ s% � �$����?�?�g�%����D�J� &r c � � |j S r )�urir s r r zAttribValue.value_ns% s � ��x�x�r c �f � | j |j v r|j | j S y r )r �
attributesr s r r
zAttribValue.value( s( � ��?�?�d�o�o�-��?�?�4�?�?�3�3�r N)r r r r r r
r r r r r s � �'�
�r r c � � e Zd Zd� Zd� Zd� Zy)�CompareValuec �p � || _ || _ |dk( r| j | _ y | j | _ y )N�=)�lhs�rhs�
_compareEqualr
�_compareNotEqual�r
r) �opr* s r r zCompareValue.__init__0 s1 � �������
��9��+�+�D�J��.�.�D�Jr c �p � | j j |� | j j |� k( S r �r) r
r* r s r r+ zCompareValue._compareEqual8 �' |