B VXY @s\dZddlZddlmZddZeZddgZed ejej Bej BZ d d Z epVe Z dS) zJSON token scanner N)JSONDecodeErrorcCs*yddlm}|Stk r$dSXdS)Nr) make_scanner)Z _speedupsr ImportError)rrE/opt/alt/python37/lib64/python3.7/site-packages/simplejson/scanner.py_import_c_make_scanners  rrrz)(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?c s~|j |j|j tj|j|j |j|j |j |j |j |j  f ddfdd}|S)Nc sd}y ||}Wn tk r0t|||YnX|dkrL ||d S|dkrp ||df S|dkr||dfS|dkr|||ddkrd|dfS|d kr|||dd krd |dfS|d kr|||d dkrd|d fS||}|dk rf|\}}}|s4|rR||p@d|pJd}n |}||fS|dkr|||ddkrd|dfS|dkr|||ddkrƈd|dfS|dkr|||ddkrd|dfSt|||dS)NzExpecting value"r{[nZnullttrueTfZfalseFNZNaNIZInfinity- z -Infinity) IndexErrorrgroupsend) stringidxerrmsgZnextcharmZintegerZfracZexpZres) _scan_onceencoding match_numbermemo object_hookobject_pairs_hook parse_arrayparse_constant parse_float parse_int parse_object parse_stringstrictrrr "s@             z#py_make_scanner.._scan_oncecs.|dkrtd||z ||SXdS)NrzExpecting value)rclear)rr)r r#rr scan_onceHs   z"py_make_scanner..scan_once) r*r&r+ NUMBER_REmatchr!r,r(r)r'r$r%r#)contextr.r) r r!r"r#r$r%r&r'r(r)r*r+r,rpy_make_scanners$& r2)__doc__reerrorsrrZc_make_scanner__all__compileVERBOSE MULTILINEDOTALLr/r2rrrrrs A