3
[Z                 @   s\   d Z ddlZddlmZ dd Ze ZddgZejd	ejej	B ej
B Zd
d ZepVeZdS )zJSON token scanner
    N   )JSONDecodeErrorc              C   s*   yddl m}  | S  tk
r$   d S X d S )Nr   )make_scanner)Z	_speedupsr   ImportError)r    r   4/usr/lib/python3/dist-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}y| | }W n  t k
r0   t|| |Y nX |dkrL| |d S |dkrp
| |d f S |dkr| |d f S |dkr| ||d  dkrd |d fS |d	kr| ||d  d
krd|d fS |dko| ||d  dkrd|d fS | |}|d k	rd|j \}}}|s2|rP||p>d |pHd }n	|}||j 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|| |d S )NzExpecting value"r   {[n   ZnullttrueTf   ZfalseF N   ZNaNI   ZInfinity-	   z	-Infinity)
IndexErrorr   groupsend)	stringidxerrmsgZnextcharmZintegerZfracZ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!   "   s@    

   z#py_make_scanner.<locals>._scan_oncec          
      s.   |dk rt d| |z
 | |S j  X d S )Nr   zExpecting value)r   clear)r   r   )r!   r$   r   r   	scan_onceH   s
    
z"py_make_scanner.<locals>.scan_once)r+   r'   r,   	NUMBER_REmatchr"   r-   r)   r*   r(   r%   r&   r$   )contextr/   r   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   py_make_scanner   s    $&r3   )__doc__reerrorsr   r   Zc_make_scanner__all__compileVERBOSE	MULTILINEDOTALLr0   r3   r   r   r   r   r   <module>   s   A