o
    bcc                     @   sT   d Z ddlZddddddd	d
ddd
Zdd Zdd Zdd Zedkr(e  dS dS )z<Safely evaluate Python string literals without using eval().    N
	'"\)
abfnrtvr	   r
   r   c                 C   s   |  dd\}}|dsJ t|}|d ur|S |drJ|dd  }t|dk r1td| z
t|d}W t|S  tyI   td| d w z
t|d}W t|S  tyb   td	| d w )
Nr      r   x   z!invalid hex string escape ('\%s')      z#invalid octal string escape ('\%s'))group
startswithsimple_escapesgetlen
ValueErrorintchr)malltaileschexesi r&   -/usr/lib/python3.10/lib2to3/pgen2/literals.pyescape   s*   

r(   c                 C   s   |  ds|  dsJ t| d d | d }| d d |d kr&|d }| |s8J t| t| d  t| dt| ksDJ | t|t|  } tdt| S )Nr	   r
   r   r      r   z)\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3}))r   reprendswithr   resubr(   )sqr&   r&   r'   
evalString(   s   ($r0   c                  C   s@   t dD ]} t| }t|}t|}||krt| ||| qd S )N   )ranger   r*   r0   print)r%   cr.   er&   r&   r'   test2   s   r6   __main__)__doc__r,   r   r(   r0   r6   __name__r&   r&   r&   r'   <module>   s&   
	
