a
    g	g\                     @   s   U d Z ddlZddlmZmZmZ dddddd	d
dddd
Zeeef ed< ee edddZeedddZ	ddddZ
edkre
  dS )z<Safely evaluate Python string literals without using eval().    N)DictMatchText
	'"\)
abfnrtvr   r   r   simple_escapes)mreturnc                 C   s   |  dd\}}|dsJ t|}|d ur4|S |dr|dd  }t|dk rbtd| zt|d}W q ty   td| d Y q0 n0zt|d}W n  ty   td	| d Y n0 t|S )
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escZhexesi r)   Z/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/blib2to3/pgen2/literals.pyescape   s$    

r+   )sr   c                 C   s   |  ds(|  ds(J t| d d | d }| d d |d krL|d }| |spJ t| t| d  t| dt| ksJ | 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+   )r,   qr)   r)   r*   
evalString/   s    ($r3   )r   c                  C   s@   t dD ]2} t| }t|}t|}||krt| ||| qd S )N   )ranger$   r.   r3   print)r(   cr,   er)   r)   r*   test:   s    r9   __main__)__doc__r0   typingr   r   r   r   __annotations__r+   r3   r9   __name__r)   r)   r)   r*   <module>   s$   	