
    Rhy	                         d Z ddlZ	 ddlmZ dgZ ej                  dej                  ej                  z  ej                  z        Zd Zexs eZy# e$ r dZY Mw xY w)zJSON token scanner
    N)make_scannerr   z)(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?c                 Z  	
 | j                   | j                  | j                  t        j                  | j
                  | j                  	| j                  
| j                  | j                  | j                  | j                  	
fdfd}|S )Nc                    	 | |   }|dk(  r | |dz         S |dk(  r | |dz   f
      S |dk(  r | |dz   f      S |dk(  r| ||dz    dk(  rd |dz   fS |dk(  r| ||dz    d	k(  rd
|dz   fS |dk(  r| ||dz    dk(  rd|dz   fS  	| |      }|I|j                         \  }}}|s|r ||xs dz   |xs dz         }n |      }||j                         fS |dk(  r| ||dz    dk(  r d      |dz   fS |dk(  r| ||dz    dk(  r d      |dz   fS |dk(  r| ||dz    dk(  r d      |dz   fS t        |      # t         $ r t        |      d w xY w)N"   {[n   nullttrueTf   falseF N   NaNI   Infinity-	   z	-Infinity)
IndexErrorStopIterationgroupsend)stringidxnextcharmintegerfracexpres
_scan_oncematch_numbermemoobject_hookobject_pairs_hookparse_arrayparse_constantparse_float	parse_intparse_objectparse_stringstricts           #/usr/lib/python3.12/json/scanner.pyr'   z#py_make_scanner.<locals>._scan_once   s   	/c{H s?a88_q 16K):DB B_a0*==_C!G!4!>q= _C!G!4!>q= _C!G!4!?#'>!%=!"GT3s!'TZR"8CI2"FG(<_C!G!4!=!%(#'11_C!G!4
!B!*-sQw66_C!G!4!C!+.a77$$A  	/$$.	/s   D? ?Ec                 b    	  | |      j                          S # j                          w xY w)N)clear)r   r    r'   r)   s     r3   	scan_oncez"py_make_scanner.<locals>.scan_onceA   s%    	fc*JJLDJJLs    .)r0   r,   r1   	NUMBER_REmatchr2   r.   r/   r-   r*   r+   r)   )contextr6   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   s     @@@@@@@@@@@@r3   py_make_scannerr:      s    ''L%%K''L??L^^F%%K!!I++N%%K11<<D#% #%J     )__doc__re_jsonr   c_make_scannerImportError__all__compileVERBOSE	MULTILINEDOTALLr7   r:    r;   r3   <module>rG      st    	4 
BJJ0ZZ",,*-	8t 0G  Ns   A AA