
    /Jf~!                     N    d dl Z d dlZd dlmZ d dlmZmZ  G d de          ZdS )    N)loads)
LexerErrorEmptyExpressionErrorc                       e Zd Z eej        dz             Z eej        ej        z   dz             Z eej                  Z	 ed          Z
ddddddd	d
ddd
Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )Lexer_z 	
dotstarrbracketcommacoloncurrentlparenrparenlbracerbrace)
.*],:@(){}c              #   f  K   |                      |           | j        | j        | j        v rA| j        | j                 | j        | j        | j        dz   dV  |                                  n| j        | j        v ri| j        }| j        }|                                 | j        v r%|| j        z  }|                                 | j        v %d|||t          |          z   dV  n0| j        | j        v r|                                  n| j        dk    ry| j        }|                                 }|dk    r"|                                  dd||dz   dV  n|d	k    r"|                                  d
d||dz   dV  ndd||dz   dV  n| j        dk    r| 	                                V  ne| j        dk    r| 
                    ddd          V  n?| j        dk    r| 
                    ddd          V  n| j        dk    r|                                 V  n| j        | j        v rC| j        }|                                 }dt          |          ||t          |          z   dV  n| j        dk    rk| j        }|                                 }t          |          dk    r(dt          |          ||t          |          z   dV  nDt          ||d|z            | j        dk    r|                                 V  n| j        dk    r| 
                    ddd          V  n| j        dk    r| 
                    ddd           V  n| j        d!k    r| 
                    dd"d#          V  n| j        dk    rn|                                 dk    r+d$d%| j        dz
  | j        dV  |                                  nO| j        | j        }n
| j        dz
  }t          |dd&          t          | j        | j        d'| j        z            | j        d(d)| j        | j        dV  d S )*N   typevaluestartendunquoted_identifier[r   flattenz[]   ?filterz[?lbracket'|orpipe&andexpref`number-zUnknown token '%s'lexer_positionlexer_valuemessage"<=ltelt>gtegt!nenoteqz==zUnknown token '='zUnknown 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         Q/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/jmespath/lexer.pytokenizezLexer.tokenize   sy     ''
333m'} 222#1$-@ $ $t~7IK K K K K 

$"777}jjlld&;;;DM)D jjlld&;;;4t %ec$ii.?A A A A A A$/11

#%% JJLL	##JJLLL#,t$)%!)= = = = = =#%%JJLLL#+d$)%!)= = = = = = $.$)%!)= = = = = =#%%66888888#%%))#tV<<<<<<#%%))#uh??????#%%++------$"333++--'#d)) %ec$ii.?A A A A A A#%%++--t99q==#+c$ii$)%#d))2CE E E E E E %E15-AD-HJ J J J #%%55777777#%%))#ud;;;;;;#%%))#ud;;;;;;#%%))#tU;;;;;;#%%::<<3&&#'$!%!!3DNL L L L LJJLLLL}, $(>#'>A#5$'/$' 35 5 5 5
 !-1]);dm)KM M M M_ m'd rT\; ; 	; 	; 	; 	; 	;    c                     | j         }| j        }|                                 | j        v r%|| j        z  }|                                 | j        v %|S )N)rJ   rH   rK   rS   )rX   r"   rZ   s      r]   rT   zLexer._consume_numberq   sO    }jjlld///DM!D jjlld///r_   c                     |st                      d| _        || _        t          | j                  | _        | j        | j                 | _        t          | j                  | _        d S )Nr   )r   rJ   _expressionlist_charsrH   rN   rW   )rX   rY   s     r]   rG   z Lexer._initialize_for_expressionx   s]     	)&(((%4+,,DN34+,,r_   c                     | j         | j        dz
  k    rd | _        n'| xj         dz  c_         | j        | j                  | _        | j        S )Nr   )rJ   rW   rH   rd   )rX   s    r]   rK   zLexer._next   sG    >T\A--- DMMNNaNN K7DM}r_   c                 j   | j         }d}|                                  | j        |k    rv| j        dk    r|dz  }|                                  | j        "t          || j        |d          d|z            || j        z  }|                                  | j        |k    v|                                  |S )NrF   \zUnclosed %s delimiterr5   )rJ   rK   rH   r   rb   )rX   	delimiterr"   rZ   s       r]   _consume_untilzLexer._consume_until   s     

my((}$$

}$ -1-=eff-E)@9)LN N N N DM!DJJLLL my(( 	

r_   c                    | j         }|                     d                              dd          }	 t          |          }n# t          $ rs 	 t          d|                                z            }t          j        dt                     n0# t          $ r# t          || j
        |d          d|z            w xY wY nw xY w| j         |z
  }d|||dS )	Nr2   z\`z"%s"z deprecated string literal syntaxzBad token %sr5   literalr   )rJ   ri   replacer   
ValueErrorlstripwarningswarnPendingDeprecationWarningr   rb   )rX   r"   lexemeparsed_json	token_lens        r]   rR   zLexer._consume_literal   s#   $$S))11%==	B--KK 
	B 
	B 
	B	B $FV]]__$<==@79 9 9 9 B B B -1-=eff-E)7&)@B B B BB9 9
	B NU*	!Ky2 2 	2s)   A 
B?>BB?-B99B?>B?c                    | j         }d|                     d          z   dz   }	 | j         |z
  }dt          |          ||dS # t          $ r?}t	          |                              d          d         }t          |||          d }~ww xY w)Nr9   quoted_identifierr   r   r   r5   )rJ   ri   r   rm   strsplitr   )rX   r"   rr   rt   eerror_messages         r]   rV   z Lexer._consume_quoted_identifier   s    t**3///#5	4.I/%--"96 6 6 	4 	4 	4FFLL--a0ME)/%24 4 4 4	4s   A 
B:BBc                     | j         }|                     d                              dd          }| j         |z
  }d|||dS )Nr+   z\'rk   r   )rJ   ri   rl   )rX   r"   rr   rt   s       r]   rP   z!Lexer._consume_raw_string_literal   sQ    $$S))11%==NU*	!Fy2 2 	2r_   c                     | j         }| j        }|                                 }||k    r!|                                  |||z   ||dz   dS ||||dS )Nr   r   )rJ   rH   rK   )rX   expected
match_type	else_typer"   r   r[   s          r]   rQ   zLexer._match_or_else   sp    -JJLL	  JJLLL&91D"5196 6 6!Gu. . 	.r_   N)__name__
__module____qualname__setstringascii_lettersrL   digitsrM   rS   rO   rI   r^   rT   rG   rK   ri   rR   rV   rP   rQ    r_   r]   r   r      s       s6/#566s6/&-?#EFF3v}%%LYJ MU; U; U;n  - - -    *2 2 2*4 4 42 2 2	. 	. 	. 	. 	.r_   r   )	r   ro   jsonr   jmespath.exceptionsr   r   objectr   r   r_   r]   <module>r      s            @ @ @ @ @ @ @ @H. H. H. H. H.F H. H. H. H. H.r_   