Current File : //usr/lib/python3/dist-packages/jmespath/__pycache__/lexer.cpython-312.pyc
�

��0b~!��F�ddlZddlZddlmZddlmZmZGd�de�Zy)�N)�loads)�
LexerError�EmptyExpressionErrorc��eZdZeej
dz�Zeej
ejzdz�Zeej�Z	ed�Z
ddddddd	d
ddd
�
Zd�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�Lexer�_z 	

�dot�star�rbracket�comma�colon�current�lparen�rparen�lbrace�rbrace)
�.�*�]�,�:�@�(�)�{�}c#�	K�|j|�|j��L|j|jvrS|j|j|j|j|jdzd���|j	��n�|j|j
vrw|j}|j}|j	�|jvr,||jz
}|j	�|jvr�,d|||t|�zd����nD|j|jvr|j	��n|jdk(rp|j}|j	�}|dk(r|j	�dd||dzd����n�|d	k(r|j	�d
d||dzd����n�dd||dzd����n�|jd
k(r|j����nx|jdk(r|jddd����nR|jdk(r|jddd����n,|jdk(r|j����n	|j|jvr<|j}|j�}dt|�||t|�zd����n�|jdk(r[|j}|j�}t|�dkDr dt|�||t|�zd����n\t||d|z���|jdk(r|j!����n(|jdk(r|jddd����n|jdk(r|jddd ���n�|jd!k(r|jdd"d#���n�|jdk(rz|j	�dk(r1d$d%|jdz
|jd���|j	�ne|j�
|j}n|jdz
}t|dd&���t|j|jd'|jz���|j���Ld(d)|j"|j"d���y�w)*N���type�value�start�end�unquoted_identifier�[r�flattenz[]��?�filterz[?�lbracket�'�|�or�pipe�&�and�expref�`�number�-zUnknown token '%s'��lexer_position�lexer_value�message�"�<�=�lte�lt�>�gte�gt�!�ne�not�eqz==zUnknown token '='zUnknown token %s�eof�)�_initialize_for_expression�_current�
SIMPLE_TOKENS�	_position�_next�START_IDENTIFIER�VALID_IDENTIFIER�len�
WHITESPACE�_consume_raw_string_literal�_match_or_else�_consume_literal�VALID_NUMBER�_consume_number�intr�_consume_quoted_identifier�_length)�self�
expressionr"�buff�	next_char�positions      �0/usr/lib/python3/dist-packages/jmespath/lexer.py�tokenizezLexer.tokenizes�����'�'�
�3��m�m�'��}�}�� 2� 2�2�#�1�1�$�-�-�@� $�
�
� $���t�~�~��7I�K�K��
�
�����$�"7�"7�7������}�}���j�j�l�d�&;�&;�;��D�M�M�)�D��j�j�l�d�&;�&;�;�4�t� %�e�c�$�i�.?�A�A����$�/�/�1��
�
�����#�%����� �J�J�L�	���#��J�J�L�#,�t�$)�%�!�)�=�=��#�%��J�J�L�#+�d�$)�%�!�)�=�=�$.��$)�%�!�)�=�=����#�%��6�6�8�8����#�%��)�)�#�t�V�<�<����#�%��)�)�#�u�h�?�?����#�%��+�+�-�-����$�"3�"3�3������+�+�-��'�#�d�)� %�e�c�$�i�.?�A�A����#�%������+�+�-���t�9�q�=�#+�c�$�i�$)�%�#�d�)�2C�E�E�%�E�15�-A�D�-H�J�J����#�%��5�5�7�7����#�%��)�)�#�u�d�;�;����#�%��)�)�#�u�d�;�;����#�%��)�)�#�t�U�;�;����#�%��:�:�<�3�&�#'�$�!%���!�!3�D�N�N�L�L��J�J�L��}�}�,�$(�>�>��#'�>�>�A�#5��$�'/�$'� 3�5�5�
!����-1�]�]�);�d�m�m�)K�M�M�_�m�m�'�d�r����T�\�\�;�	;�s�DR�M'R�-Rc���|j}|j}|j�|jvr,||jz
}|j�|jvr�,|S)N)rJrHrKrS)rXr"rZs   r]rTzLexer._consume_numberqsQ�������}�}���j�j�l�d�/�/�/��D�M�M�!�D��j�j�l�d�/�/�/���c���|s
t��d|_||_t|j�|_|j|j|_t
|j�|_y)Nr)rrJ�_expression�list�_charsrHrNrW)rXrYs  r]rGz Lexer._initialize_for_expressionxsU���&�(�(����%����4�+�+�,������D�N�N�3��
��4�+�+�,��r`c���|j|jdz
k(rd|_|jS|xjdz
c_|j|j|_|jS)Nr)rJrWrHrd)rXs r]rKzLexer._next�sX���>�>�T�\�\�A�-�-� �D�M��}�}��
�N�N�a��N� �K�K����7�D�M��}�}�r`c�z�|j}d}|j�|j|k7r}|jdk(r|dz
}|j�|j�t||j|dd|z���||jz
}|j�|j|k7r�}|j�|S)NrF�\zUnclosed %s delimiterr5)rJrKrHrrb)rX�	delimiterr"rZs    r]�_consume_untilzLexer._consume_until�s����������
�
���m�m�y�(��}�}��$������
�
���}�}�$� ��-1�-=�-=�e�f�-E�)@�9�)L�N�N�
�D�M�M�!�D��J�J�L��m�m�y�(�	
�
�
���r`c��|j}|jd�jdd�}	t|�}|j|z
}d|||d�S#t$rf	td|j�z�}t
jdt�n+#t$rt||j|dd|z���wxYwY��wxYw)	Nr2z\`z"%s"z deprecated string literal syntaxzBad token %sr5�literalr)rJri�replacer�
ValueError�lstrip�warnings�warn�PendingDeprecationWarningrrb)rXr"�lexeme�parsed_json�	token_lens     r]rRzLexer._consume_literal�s��������$�$�S�)�1�1�%��=��
	B���-�K��N�N�U�*�	�!�K��y�2�	2���
	B�	
B�$�F�V�]�]�_�$<�=���
�
�@�7�9���
B� ��-1�-=�-=�e�f�-E�)7�&�)@�B�B�
B��9�
	B�s)�A�	B?�6B�B?�(B9�9B?�>B?c��|j}d|jd�zdz}	|j|z
}dt|�||d�S#t$r0}t	|�jd�d}t
|||���d}~wwxYw)Nr9�quoted_identifierrrrr5)rJrirrm�str�splitr)rXr"rrrt�e�
error_messages      r]rVz Lexer._consume_quoted_identifier�s��������t�*�*�3�/�/�#�5��	4�����.�I�/�%��-�"�9�6�
6���	4���F�L�L��-�a�0�M��E�)/�%2�4�
4��	4�s�A�	A=�
+A8�8A=c��|j}|jd�jdd�}|j|z
}d|||d�S)Nr+z\'rkr)rJrirl)rXr"rrrts    r]rPz!Lexer._consume_raw_string_literal�sJ�������$�$�S�)�1�1�%��=���N�N�U�*�	�!�F��y�2�	2r`c��|j}|j}|j�}||k(r|j�|||z||dzd�S||||d�S)Nrr)rJrHrK)rX�expected�
match_type�	else_typer"rr[s       r]rQzLexer._match_or_else�sa�������-�-���J�J�L�	��� ��J�J�L�&��9�1D�"�5�1�9�6�
6�!�G��u�.�	.r`N)�__name__�
__module__�__qualname__�set�string�
ascii_lettersrL�digitsrMrSrOrIr^rTrGrKrirRrVrPrQ�r`r]rrs����6�/�/�#�5�6���6�/�/�&�-�-�?�#�E�F���v�}�}�%�L��Y��J�
�
�
�
�
�
�
�
�
�
��M�U;�n�-���*2�*4�2�	.r`r)	r�ro�jsonr�jmespath.exceptionsrr�objectrr�r`r]�<module>r�s��
���@�H.�F�H.r`