o
    €Ýh›  ã                   @   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)Z	_speedupsr   ÚImportErrorr   © r   úZ/var/www/html/magazine_api/magazine_env/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,   r/   r   r   Ú	scan_onceH   s
   
z"py_make_scanner.<locals>.scan_once)r6   r2   r7   Ú	NUMBER_REÚmatchr-   r8   r4   r5   r3   r0   r1   r/   )Ú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