�`^c@s�dZddlZi
dd6dd6dd6d d
6dd6d
d6dd6dd6dd6dd6Zd�Zd�Zd�Zedkr�e�ndS(s<Safely evaluate Python string literals without using eval().i�Nstastbstfs
tns
trs ttstvt't"s\cCs|jdd�\}}|jd�s-t�tj|�}|dk rL|S|jd�r�|d}t|�dkr�td|��nyt|d�}Wq�k
r�td|��q�7yt|d�}Wn!tk
r�td |��nXt |�S(
Niis\txis!invalid hex string escape ('\%s')iis#invalid octal string escape ('\%s')(
tgroupt
startswithtAssertionErrortsimple_escapestgettNonetlent
ValueErrortinttchr(tmtallttailtescthexesti((s7/usr/stallion/src/cpython/Lib/lib2to3/pgen2/literals.pytescapes$
cCs�|jd�s4|jd�s4tt|d ���|d}|d |dkr_|d}n|j|�s�tt|t|����t|�dt|�ks�t�|t|�t|�!}tjdt|�S(NRRiiiis)\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})(RRtreprtendswithRtretsubR(tstq((s7/usr/stallion/src/cpython/Lib/lib2to3/pgen2/literals.pyt
evalString(s4
,"cCs_xXtd�D]J}t|�}t|�}t|�}||kr
|G|G|G|GHq
q
WdS(Ni(trangeRRR!(RtcRte((s7/usr/stallion/src/cpython/Lib/lib2to3/pgen2/literals.pyttest2st__main__(t__doc__RR
RR!R%t__name__(((s7/usr/stallion/src/cpython/Lib/lib2to3/pgen2/literals.pyt<module>s
|