
    `2f~!                     F    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y)    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y)Lexer_z 	
dotstarrbracketcommacoloncurrentlparenrparenlbracerbrace)
.*],:@(){}c              #   	  K   | j                  |       | j                  L| j                  | j                  v rS| j                  | j                     | j                  | j                  | j                  dz   d | j	                          n| j                  | j
                  v rw| j                  }| j                  }| j	                         | j                  v r,|| j                  z  }| j	                         | j                  v r,d|||t        |      z   d nD| j                  | j                  v r| j	                          n| j                  dk(  rp| j                  }| j	                         }|dk(  r| j	                          dd||dz   d n|d	k(  r| j	                          d
d||dz   d ndd||dz   d n| j                  dk(  r| j                          nx| j                  dk(  r| j                  ddd       nR| j                  dk(  r| j                  ddd       n,| j                  dk(  r| j                          n	| j                  | j                  v r<| j                  }| j                         }dt        |      ||t        |      z   d n| j                  dk(  r[| j                  }| j                         }t        |      dkD  r dt        |      ||t        |      z   d n\t        ||d|z        | j                  dk(  r| j!                          n(| j                  dk(  r| j                  ddd       n| j                  dk(  r| j                  ddd        n| j                  d!k(  r| j                  dd"d#       n| j                  dk(  rz| j	                         dk(  r1d$d%| j                  dz
  | j                  d | j	                          ne| j                  | j                  }n| j                  dz
  }t        |dd&      t        | j                  | j                  d'| j                  z        | j                  Ld(d)| j"                  | j"                  d y w)*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         N/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/jmespath/lexer.pytokenizezLexer.tokenize   s    ''
3mm'}} 2 22#11$--@ $ $t~~7IK K 

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

#% JJL	#JJL#,t$)%!)= =#%JJL#+d$)%!)= = $.$)%!)= =#%6688#%))#tV<<#%))#uh??#%++--$"3"33++-'#d) %ec$i.?A A#%++-t9q=#+c$i$)%#d)2CE E %E15-AD-HJ J #%5577#%))#ud;;#%))#ud;;#%))#tU;;#%::<3&#'$!%!!3DNNL LJJL}}, $(>>#'>>A#5$'/$' 35 5
 !-1]]);dmm)KM M_ mm'd rT\\; 	;s   DRM'R-Rc                     | j                   }| j                  }| j                         | j                  v r,|| j                  z  }| j                         | j                  v r,|S )N)rJ   rH   rK   rS   )rX   r"   rZ   s      r]   rT   zLexer._consume_numberq   sQ    }}jjld///DMM!D jjld///    c                     |s
t               d| _        || _        t        | j                        | _        | j                  | j                     | _        t        | j                        | _        y )Nr   )r   rJ   _expressionlist_charsrH   rN   rW   )rX   rY   s     r]   rG   z Lexer._initialize_for_expressionx   sU    &((%4++,DNN34++,r`   c                     | j                   | j                  dz
  k(  rd | _        | j                  S | xj                   dz  c_         | j                  | j                      | _        | j                  S )Nr   )rJ   rW   rH   rd   )rX   s    r]   rK   zLexer._next   sX    >>T\\A-- DM }} NNaN KK7DM}}r`   c                 z   | j                   }d}| j                          | j                  |k7  r}| j                  dk(  r|dz  }| j                          | j                  t        || j                  |d  d|z        || j                  z  }| j                          | j                  |k7  r}| j                          |S )NrF   \zUnclosed %s delimiterr5   )rJ   rK   rH   r   rb   )rX   	delimiterr"   rZ   s       r]   _consume_untilzLexer._consume_until   s     

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

}}$ -1-=-=ef-E)@9)LN N DMM!DJJL mmy( 	

r`   c                    | j                   }| j                  d      j                  dd      }	 t        |      }| j                   |z
  }d|||dS # t        $ rf 	 t        d|j                         z        }t        j                  dt               n+# t        $ r t        || j                  |d  d|z        w xY wY w xY w)	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-K NNU*	!Ky2 	2  
	B	B $FV]]_$<=@79 B -1-=-=ef-E)7&)@B BB9
	Bs)   A 	B?6BB?(B99B?>B?c                     | j                   }d| j                  d      z   dz   }	 | j                   |z
  }dt        |      ||dS # t        $ r0}t	        |      j                  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 	4FLL-a0ME)/%24 4	4s   A 	A=+A88A=c                     | j                   }| j                  d      j                  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   sJ    $$S)11%=NNU*	!Fy2 	2r`   c                     | j                   }| j                  }| j                         }||k(  r| j                          |||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   sa    --JJL	 JJL&91D"519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    6//#566//&--?#EFv}}%LYJMU;n-*2*42	.r`   r   )	r   ro   jsonr   jmespath.exceptionsr   r   objectr   r   r`   r]   <module>r      s       @H.F H.r`   