
    eN                         U d Z ddlZddlmZmZ dddddd	d
dddd
Zeeef   ed<   dee   defdZdedefdZ	ddZ
edk(  r e
        yy)z<Safely evaluate Python string literals without using eval().    N)DictMatch
	'"\)
abfnrtvr   r   r   simple_escapesmreturnc                    | j                  dd      \  }}|j                  d      sJ t        j                  |      }||S |j                  d      r9|dd  }t	        |      dk  rt        d|z        	 t        |d      }t        |      S 	 t        |d      }t        |      S # t
        $ r t        d|z        d w xY w# t
        $ r t        d	|z        d w xY w)
Nr      r   x   z!invalid hex string escape ('\%s')      z#invalid octal string escape ('\%s'))group
startswithr   getlen
ValueErrorintchr)r   alltaileschexesis         9/usr/lib/python3/dist-packages/blib2to3/pgen2/literals.pyescaper,      s    1IC>>$


T
"C

sQRu:>ADHII	TE2A q6M		VD!A q6M  	TADHItS	T
  	VCdJKQUU	Vs   5B$ C  $B= Csc                    | j                  d      s$| j                  d      sJ t        | d d              | d   }| d d |dz  k(  r|dz  }| j                  |      sJ t        | t        |       d               t        |       dt        |      z  k\  sJ | t        |      t        |        } t	        j
                  dt        |       S )Nr   r   r   r      r   z)\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3}))r    reprendswithr"   resubr,   )r-   qs     r+   
evalStringr5   -   s    <<S 1>4"1;>1	!A!uA~E::a=,$q#a&|,,=q6QQZ	#a&CF7A66>JJ    c                      t        d      D ]7  } t        |       }t        |      }t        |      }||k7  s*t	        | |||       9 y )N   )ranger%   r0   r5   print)r*   cr-   es       r+   testr=   8   sE    3Z FGqM6!Q1r6   __main__)r   N)__doc__r2   typingr   r   r   str__annotations__r,   r5   r=   __name__ r6   r+   <module>rE      s    C 	  
								
"S#X eCj S ,K# K# K zF r6   