o
    È·e›  ã                   @   s\   d Z ddlZddlmZ dd„ Zeƒ ZddgZe d	ejej	B ej
B ¡Zd
d„ Zep+eZdS )zJSON token scanner
é    Né   )ÚJSONDecodeErrorc                  C   s(   z	ddl m}  | W S  ty   Y d S w )Nr   ©Úmake_scanner)Ú	_speedupsr   ÚImportErrorr   © r   úI/var/www/ideatree/venv/lib/python3.10/site-packages/simplejson/scanner.pyÚ_import_c_make_scanner   s   ÿr
   r   r   z)(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?c                    s~   | j ‰
| j‰| j‰tj‰| j‰| j‰| j‰| j‰	| j	‰| j
‰| j‰| j‰‡ ‡‡‡‡‡‡‡‡‡	‡
‡‡fdd„‰ ‡ ‡fdd„}|S )Nc           	         sâ  d}z| | }W n t y   t|| |ƒ‚w |dkr#ˆ| |d ˆˆƒS |dkr5ˆ
| |d fˆˆˆ ˆˆˆƒS |dkrBˆ| |d fˆ ƒS |dkrV| ||d … dkrVd |d fS |d	krj| ||d … d
krjd|d fS |dkr~| ||d … dkr~d|d fS ˆ| |ƒ}|d ur©| ¡ \}}}|s’|rŸˆ||p—d |p›d ƒ}nˆ	|ƒ}|| ¡ fS |dkr¿| ||d … dkr¿ˆdƒ|d fS |dkrÕ| ||d … dkrÕˆdƒ|d fS |dkrë| ||d … dkrëˆdƒ|d fS t|| |ƒ‚)NúExpecting valueú"r   Ú{ú[Úné   ÚnullÚtÚtrueTÚfé   ÚfalseFÚ ÚNé   ÚNaNÚIé   ÚInfinityú-é	   z	-Infinity)Ú
IndexErrorr   ÚgroupsÚend)	ÚstringÚidxÚerrmsgÚnextcharÚmÚintegerÚfracÚexpÚres©Ú
_scan_onceÚencodingÚmatch_numberÚmemoÚobject_hookÚobject_pairs_hookÚparse_arrayÚparse_constantÚparse_floatÚ	parse_intÚparse_objectÚparse_stringÚstrictr   r	   r-   "   sD   ÿÿ
z#py_make_scanner.<locals>._scan_oncec                    s4   |dk r
t d| |ƒ‚z
ˆ | |ƒW ˆ ¡  S ˆ ¡  w )Nr   r   )r   Úclear)r#   r$   )r-   r0   r   r	   Ú	scan_onceH   s
   
z"py_make_scanner.<locals>.scan_once)r7   r3   r8   Ú	NUMBER_REÚmatchr.   r9   r5   r6   r4   r1   r2   r0   )Úcontextr;   r   r,   r	   Úpy_make_scanner   s   $&r?   )Ú__doc__ÚreÚerrorsr   r
   Úc_make_scannerÚ__all__ÚcompileÚVERBOSEÚ	MULTILINEÚDOTALLr<   r?   r   r   r   r   r	   Ú<module>   s    þA